• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Генератор случайной последовательности

pvvx

Активный участник сообщества
Спешу поделиться благой вестью. После месяца мучений с analogRead() случайно узнал, что в esp8266 есть встроенный, но официально недокументированный аппаратный генератор случайных чисел, аж 32 битный.
Находится он по адресу 0x3FF20E44
В 2016 году, по моему реверсу, от куда и полезло то, уже было установлено что это не генератор случайных чисел, а генератор последовательности. Он по старту дров wifi/SDK инициализируется псевдослучайным числом для старта последовательности...
 

pvvx

Активный участник сообщества
По этой причине, в некоторых реализациях ПО на SDK от Espressif (в частности и Arduino) возникает беда - задается один и тот-же номер порта ответа TCP в Lwip (при старте используют этот регистр "случайных чисел"). А порт на компе (и/или в линии роутер.. NAT... и т.д.) может находится в TIME_WAIT или ещё не закрытом состоянии после последнего пересброса... Нарушение работы TCP стека по всей сети... И так много раз соединение не удается и делают пересброс ESP, получая опять это же "случайное число" (и всё что с ним связано) c очень большой вероятностью :)
Но, как примерно сказал @Юрий Ботов - та пофиг - всё равно это Arduino и ESP...
 

pvvx

Активный участник сообщества
А всё это намек, что @Юрий Ботов-у надо проверять свой генератор на повторное включение после сброса питания или reset чипа. Время исполнения одинаково до тактов (кварцованно! :)), как и последовательность установки напряжения у компаратора младшего разряда ADC.
 
Сверху Снизу