Но как бы к указанному вопросу проверки целостности ячеек памяти случайные числа вообще не имеют отношения. Память проверяется не случайными числами, а послоянным шаблоном и инвертированной его копией. Таким образом проверяется каждый бит ячейки на способность хранить как 1 так и 0.
STM32 новичку в ARM что к чему
- Сообщения: 848
- Зарегистрирован: Ср авг 03, 2022 05:22:56
Да не важно как это называется, важен сам факт наличия такого аппаратного генератора случайных чисел в микроконтроллере.
Но как бы к указанному вопросу проверки целостности ячеек памяти случайные числа вообще не имеют отношения. Память проверяется не случайными числами, а послоянным шаблоном и инвертированной его копией. Таким образом проверяется каждый бит ячейки на способность хранить как 1 так и 0.
Но как бы к указанному вопросу проверки целостности ячеек памяти случайные числа вообще не имеют отношения. Память проверяется не случайными числами, а послоянным шаблоном и инвертированной его копией. Таким образом проверяется каждый бит ячейки на способность хранить как 1 так и 0.
- Реклама
[uquote="MLX90640",url="/forum/viewtopic.php?p=4320827#p4320827"]Память проверяется не случайными числами[/uquote]
Автор разве предлагал проверять память случайными числами?
По моему, автор предлагал ГЕНЕРИРОВАТЬ случайные числа посредством чтения неинициализированной оперативной памяти, полагая значения в ней случайными. Они не вполне случайны.
Автор разве предлагал проверять память случайными числами?
По моему, автор предлагал ГЕНЕРИРОВАТЬ случайные числа посредством чтения неинициализированной оперативной памяти, полагая значения в ней случайными. Они не вполне случайны.
- Сообщения: 848
- Зарегистрирован: Ср авг 03, 2022 05:22:56
Вероятно, я не совсем понял затею автора...
В целом, некоторую случайность чисел можно получить, используя более сложную методику чтения ОЗУ. Например, часть прочитанного значения можно испльзовать как относительное смещение для адреса следующего чтения (не забывая проверять вылет за диапазон адресов ОЗУ), и комбинируя каждый раз прочитанные результаты, можно получить подобие случайности.
В целом, некоторую случайность чисел можно получить, используя более сложную методику чтения ОЗУ. Например, часть прочитанного значения можно испльзовать как относительное смещение для адреса следующего чтения (не забывая проверять вылет за диапазон адресов ОЗУ), и комбинируя каждый раз прочитанные результаты, можно получить подобие случайности.
[uquote="MLX90640",url="/forum/viewtopic.php?p=4320839#p4320839"]можно получить подобие случайности.[/uquote]
Именно подобие. Назначение непонятно. Поэтому и случайность невозможно определить.
ЗЫ. Детерминированная функция не сделает массив более случайным, чем он есть. Поэтому игрища с адресами бесполезны.
Именно подобие. Назначение непонятно. Поэтому и случайность невозможно определить.
ЗЫ. Детерминированная функция не сделает массив более случайным, чем он есть. Поэтому игрища с адресами бесполезны.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Ну и смысл так извращаться, если всегда есть АЦП? И здесь будет меньше шансов нарваться на одну и ту же последовательность. Особенно после старта.
Натравливаем DMA, и хай себе молотит. Знай, из памяти числа считывай…
А если более глубоко заморочиться, можно и "почти настоящий" ГСЧ замутить. Аппаратный. Если пользоваться тепловым шумом, получится что-то вроде Пуассона, а если дробовым — 1/f, немного близкое к экспоненциальному. Разбавить это еще какими-нибудь псевдослучайными числами, и получится почти кошерный Гаусс. Как "энтропия" собирается для /dev/random. Вот равномерное распределение сделать сложно, это да (пересчитывать из Гаусса - достаточно много математики)…
Натравливаем DMA, и хай себе молотит. Знай, из памяти числа считывай…
А если более глубоко заморочиться, можно и "почти настоящий" ГСЧ замутить. Аппаратный. Если пользоваться тепловым шумом, получится что-то вроде Пуассона, а если дробовым — 1/f, немного близкое к экспоненциальному. Разбавить это еще какими-нибудь псевдослучайными числами, и получится почти кошерный Гаусс. Как "энтропия" собирается для /dev/random. Вот равномерное распределение сделать сложно, это да (пересчитывать из Гаусса - достаточно много математики)…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Реклама
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
По ресету, кнопка ресет на платеCOKPOWEHEU писал(а):А если сброс по ресету или собаке?
Спойлер
1 включениеКод: Выделить всё
121
15
239
82
62
157
164
146
168
120
480060 это контрольная сумма оперативки, 32-битное значение
Код: Выделить всё
64
156
18
22
229
213
217
26
143
154
451611
Код: Выделить всё
60
176
219
156
237
254
20
237
229
83
451470
Код: Выделить всё
44
120
184
235
95
238
205
139
129
149
451505
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Реализация rand примитивнейшая: просто к предыдущему числу прибавляем некое большое, чтобы вышло переполнение. Потом - еще одно. И так далее. Например, вот так:
Код: Выделить всё
static uint32_t rnd = 1;
uint32_t rand(){
rnd = (rnd * 1103515245) + 12345;
return rnd;
}
void srand(uint32_t seed){
rnd = seed;
}
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Где взять?VladislavS писал(а):Возьмите старатп на Си и делайте там что угодно.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Dimon456, вот, например.
Честно стырил из opencm3
Честно стырил из opencm3
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 848
- Зарегистрирован: Ср авг 03, 2022 05:22:56
Дак какая разница, от стартапа тут ничего не зависит. Если автору нужно получить генерацию случайных чисел на основе чтения SRAM, то "случайность" там так себе. При увеличении числа итераций получаемое число стремится к некоему среднему постоянному числу, потому что значения в ОЗУ после подачи питания носят некий периодический характер.
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Dimon456",url="/forum/viewtopic.php?p=4321005#p4321005"]Где взять?[/uquote]Вот немного из моих.Можно использовать с любым тулчейном. Будут слегка оптимальней чем от Eddy_Em. Если не используете плюсы, можно закомментировать вызов конструкторов. Лучше использовать в паре с прилагаемыми линкерскриптами. Друг от друга отличаются только списком векторов прерываний, так что для любого кортекса-м переделать пара минут.
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Eddy_Em, не подходит, vector.h уже нету, #if defined STM32F0 это где-то объявлять надо.
Я их кучу перепробовал, то не так, то не эдак.
Я их кучу перепробовал, то не так, то не эдак.
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="MLX90640",url="/forum/viewtopic.php?p=4321017#p4321017"]Если автору нужно получить генерацию случайных чисел на основе чтения SRAM, то "случайность" там так себе.[/uquote]Мне тоже кажется идея "так себе", но пусть попробует. Опять таки, XY-problem вырисовывается. Зачем такой идеальный rnd нужен не понятно.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Dimon456, vector.h лежит здесь. Проще сразу взять репу к себе клонировать, да на месте тренироваться. Лучше с чем-нибудь из последних, у меня там Makefile более приличный (debug нормально генерит, т.е. после make debug обычный make не вызовет make release, как раньше; контроль версий есть)…
Добавлено after 58 seconds:
Идеальный рандом для криптографии нужен. Но на STM'ках младших поколений - какая уж криптография?
Добавлено after 58 seconds:
Идеальный рандом для криптографии нужен. Но на STM'ках младших поколений - какая уж криптография?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Dimon456",url="/forum/viewtopic.php?p=4321019#p4321019"]#if defined STM32F0 это где-то объявлять надо.[/uquote]Обычно такие вещи в настройках проекта задаются.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
VladislavS, в Makefile же! Какие "настройки проекта"?
Вот, кстати, в более свежем Makefile у меня появились make openocd для запуска сервера отладки и make debug…
Вот, кстати, в более свежем Makefile у меня появились make openocd для запуска сервера отладки и make debug…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4321031#p4321031"]VladislavS, в Makefile же! Какие "настройки проекта"?[/uquote]Тогда уже в ключах компилятора, если быть точным. А в ключи компилятора они попадают из настроек проекта, одним из видов которого makefile можно тоже считать.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4321031#p4321031"]Вот, кстати, в более свежем Makefile у меня появились make openocd для запуска сервера отладки и make debug…[/uquote]Нафига это надо людям, использующим IDE с человеческой отладкой?
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4321031#p4321031"]Вот, кстати, в более свежем Makefile у меня появились make openocd для запуска сервера отладки и make debug…[/uquote]Нафига это надо людям, использующим IDE с человеческой отладкой?
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="VladislavS",url="/forum/viewtopic.php?p=4321036#p4321036"]Нафига это надо людям, использующим IDE с человеческой отладкой?[/uquote]
Я это "человеческим" не считаю. Дрочить мышу - так себе человечность...
Я это "человеческим" не считаю. Дрочить мышу - так себе человечность...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 145
- Зарегистрирован: Пн апр 02, 2012 15:56:23
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4321042#p4321042"]Я это "человеческим" не считаю. Дрочить мышу - так себе человечность...[/uquote]Вот же:)[uquote="Eddy_Em",url="/forum/viewtopic.php?f=59&t=185169&p=4309825#p4309825"]Пытаюсь таки впервые в жизни отладку при помощи gdb попробовать[/uquote]
Добавлено after 3 minutes 8 seconds:
Почти в тему сделаю рекламу небольшую, уже давно использую связку VSCode + Platformio, понадобилось её без интернета поднять, пришел к решению VS Code + WSL-контейнер, на котором стоит Platformio (с gcc). Оказалось, что компиляция/отладка на Linux (WSL-контейнере) примерно вдвое быстрее, чем в случае, когда все стоит на Windows-хосте.
Добавлено after 3 minutes 8 seconds:
Почти в тему сделаю рекламу небольшую, уже давно использую связку VSCode + Platformio, понадобилось её без интернета поднять, пришел к решению VS Code + WSL-контейнер, на котором стоит Platformio (с gcc). Оказалось, что компиляция/отладка на Linux (WSL-контейнере) примерно вдвое быстрее, чем в случае, когда все стоит на Windows-хосте.


