• Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу