Страница 390 из 446
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 17:22:35
MLX90640
Да не важно как это называется, важен сам факт наличия такого аппаратного генератора случайных чисел в микроконтроллере.
Но как бы к указанному вопросу проверки целостности ячеек памяти случайные числа вообще не имеют отношения. Память проверяется не случайными числами, а послоянным шаблоном и инвертированной его копией. Таким образом проверяется каждый бит ячейки на способность хранить как 1 так и 0.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 17:28:50
КРАМ
[uquote="MLX90640",url="/forum/viewtopic.php?p=4320827#p4320827"]Память проверяется не случайными числами[/uquote]
Автор разве предлагал проверять память случайными числами?
По моему, автор предлагал ГЕНЕРИРОВАТЬ случайные числа посредством чтения неинициализированной оперативной памяти, полагая значения в ней случайными. Они не вполне случайны.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 17:36:53
MLX90640
Вероятно, я не совсем понял затею автора...
В целом, некоторую случайность чисел можно получить, используя более сложную методику чтения ОЗУ. Например, часть прочитанного значения можно испльзовать как относительное смещение для адреса следующего чтения (не забывая проверять вылет за диапазон адресов ОЗУ), и комбинируя каждый раз прочитанные результаты, можно получить подобие случайности.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 17:40:14
КРАМ
[uquote="MLX90640",url="/forum/viewtopic.php?p=4320839#p4320839"]можно получить подобие случайности.[/uquote]
Именно подобие. Назначение непонятно. Поэтому и случайность невозможно определить.
ЗЫ. Детерминированная функция не сделает массив более случайным, чем он есть. Поэтому игрища с адресами бесполезны.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 17:43:50
Eddy_Em
Ну и смысл так извращаться, если всегда есть АЦП? И здесь будет меньше шансов нарваться на одну и ту же последовательность. Особенно после старта.
Натравливаем DMA, и хай себе молотит. Знай, из памяти числа считывай…
А если более глубоко заморочиться, можно и "почти настоящий" ГСЧ замутить. Аппаратный. Если пользоваться тепловым шумом, получится что-то вроде Пуассона, а если дробовым — 1/f, немного близкое к экспоненциальному. Разбавить это еще какими-нибудь псевдослучайными числами, и получится почти кошерный Гаусс. Как "энтропия" собирается для /dev/random. Вот равномерное распределение сделать сложно, это да (пересчитывать из Гаусса - достаточно много математики)…
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 18:01:50
Dimon456
COKPOWEHEU писал(а):А если сброс по ресету или собаке?
По ресету, кнопка ресет на плате
Спойлер
1 включениеКод: Выделить всё
121
15
239
82
62
157
164
146
168
120
480060 это контрольная сумма оперативки, 32-битное значение
1 ресет 2 ресетКод: Выделить всё
60
176
219
156
237
254
20
237
229
83
451470
3 ресетКод: Выделить всё
44
120
184
235
95
238
205
139
129
149
451505
Если подскажите как собачку дернуть из кода, дернем и собачку. Eddy_Em, вы не правы, по моему расчет rand() построен по такому принципу что бы перебрать все числа из какого либо диапазона, а не как там ацп покажет.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 18:21:11
Eddy_Em
Реализация rand примитивнейшая: просто к предыдущему числу прибавляем некое большое, чтобы вышло переполнение. Потом - еще одно. И так далее. Например, вот так:
Код: Выделить всё
static uint32_t rnd = 1;
uint32_t rand(){
rnd = (rnd * 1103515245) + 12345;
return rnd;
}
void srand(uint32_t seed){
rnd = seed;
}
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 20:39:04
Dimon456
VladislavS писал(а):Возьмите старатп на Си и делайте там что угодно.
Где взять?
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 20:42:57
Eddy_Em
Dimon456,
вот, например.
Честно стырил из opencm3
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:00:36
MLX90640
Дак какая разница, от стартапа тут ничего не зависит. Если автору нужно получить генерацию случайных чисел на основе чтения SRAM, то "случайность" там так себе. При увеличении числа итераций получаемое число стремится к некоему среднему постоянному числу, потому что значения в ОЗУ после подачи питания носят некий периодический характер.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:03:42
VladislavS
[uquote="Dimon456",url="/forum/viewtopic.php?p=4321005#p4321005"]Где взять?[/uquote]
Вот немного из моих.Можно использовать с любым тулчейном. Будут слегка оптимальней чем от
Eddy_Em. Если не используете плюсы, можно закомментировать вызов конструкторов. Лучше использовать в паре с прилагаемыми линкерскриптами. Друг от друга отличаются только списком векторов прерываний, так что для любого кортекса-м переделать пара минут.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:04:18
Dimon456
Eddy_Em, не подходит, vector.h уже нету, #if defined STM32F0 это где-то объявлять надо.
Я их кучу перепробовал, то не так, то не эдак.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:06:20
VladislavS
[uquote="MLX90640",url="/forum/viewtopic.php?p=4321017#p4321017"]Если автору нужно получить генерацию случайных чисел на основе чтения SRAM, то "случайность" там так себе.[/uquote]Мне тоже кажется идея "так себе", но пусть попробует. Опять таки, XY-problem вырисовывается. Зачем такой идеальный rnd нужен не понятно.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:09:20
Eddy_Em
Dimon456, vector.h
лежит здесь. Проще сразу взять репу к себе клонировать, да на месте тренироваться. Лучше с чем-нибудь из последних, у меня там Makefile более приличный (debug нормально генерит, т.е. после make debug обычный make не вызовет make release, как раньше; контроль версий есть)…
Добавлено after 58 seconds:
Идеальный рандом для криптографии нужен. Но на STM'ках младших поколений - какая уж криптография?
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:09:43
VladislavS
[uquote="Dimon456",url="/forum/viewtopic.php?p=4321019#p4321019"]#if defined STM32F0 это где-то объявлять надо.[/uquote]Обычно такие вещи в настройках проекта задаются.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:14:34
Eddy_Em
VladislavS, в Makefile же! Какие "настройки проекта"?
Вот, кстати, в более свежем Makefile у меня появились make openocd для запуска сервера отладки и make debug…
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:20:16
VladislavS
[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 с человеческой отладкой?
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:24:28
Dimon456
VladislavS, и Eddy_Em, у мну не получается, не то не другое.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:25:38
Eddy_Em
[uquote="VladislavS",url="/forum/viewtopic.php?p=4321036#p4321036"]Нафига это надо людям, использующим IDE с человеческой отладкой?[/uquote]
Я это "человеческим" не считаю. Дрочить мышу - так себе человечность...
Re: STM32 новичку в ARM что к чему
Добавлено: Вт ноя 15, 2022 21:37:37
azhel12
[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-хосте.