-
- См. ниже. Контрольный код хранится где-то в середине прошивки,
вставляется туда через двойнную линковку и перекомпиляцию файлика с
контрольной суммой после её подсчёта (на PC для чего с помощью
objdump ELF превращается в BIN и самодельная программа считает
CRC). A потом полученный второй раз BIN программируется
бутлоадером. Вообще workflow такой: fk0легенда(1287 знак., 12.09.2020 00:48, ссылка, ссылка)
- Добавил работу с аппаратным калькулятором crc32 в либину, пока
только для stm32f407, заодно сделал полностью софтовую реализацию
этого же алгоритма. Из готового софта для расчета нашел только
srecord - evgeniy1294(15.09.2020 23:46, ссылка)
- а фрагментами можно считать ? ну типа загрузил с внешнего
интерфейса 1кб, посчитал для него, сохранил полином, загрузил
следующие продолжил с известным полиномом и так до конца файла ? - Aleksey_75(16.09.2020 00:11)
- У себя я это учитывал, есть флаг сброса в параметрах функции. - evgeniy1294(16.09.2020 00:17)
- ) а разве аппаратный crc32 stm32 умеет работать "левым" полиномом ?
разве не только с 0x04C11DB7 ??? я только по этой причине ушел на
софтверный - Aleksey_75(16.09.2020 00:21)
- На 407 нет, stm32f7xx уже умеет: "Alternatively, uses fully
programmable polynomial with programmable size (7, 8, 16, 32 evgeniy1294(100 знак., 16.09.2020 00:28)
- это клево! но под мои задачи даже f4 многовато, кроме прожектов где
нужно 3 кана.. поэтому пользую табличный софтверный, ксати и AES у
меня примерно по такому принципу шифруется/дешифруется - Aleksey_75(16.09.2020 00:28)
- stm32g0 умеет, st пихает такой crc в камни с 2015г: f7, h7, g0, g4
(l4 и l5 не помню). И aes128/256 в них есть. - evgeniy1294(16.09.2020 00:35 - 00:37)
- с G серией пока не работал, но заглядываюсь - Aleksey_75(16.09.2020 00:37)
- stm32g0 умеет, st пихает такой crc в камни с 2015г: f7, h7, g0, g4
(l4 и l5 не помню). И aes128/256 в них есть. - evgeniy1294(16.09.2020 00:35 - 00:37)
- это клево! но под мои задачи даже f4 многовато, кроме прожектов где
нужно 3 кана.. поэтому пользую табличный софтверный, ксати и AES у
меня примерно по такому принципу шифруется/дешифруется - Aleksey_75(16.09.2020 00:28)
- На 407 нет, stm32f7xx уже умеет: "Alternatively, uses fully
programmable polynomial with programmable size (7, 8, 16, 32 evgeniy1294(100 знак., 16.09.2020 00:28)
- ) а разве аппаратный crc32 stm32 умеет работать "левым" полиномом ?
разве не только с 0x04C11DB7 ??? я только по этой причине ушел на
софтверный - Aleksey_75(16.09.2020 00:21)
- У себя я это учитывал, есть флаг сброса в параметрах функции. - evgeniy1294(16.09.2020 00:17)
- а фрагментами можно считать ? ну типа загрузил с внешнего
интерфейса 1кб, посчитал для него, сохранил полином, загрузил
следующие продолжил с известным полиномом и так до конца файла ? - Aleksey_75(16.09.2020 00:11)
- хм! у меня примерно также но без всяких умных слов Aleksey_75(613 знак., 12.09.2020 01:02)
- Да, но у тебя пришлось делать заголовок в котором хранить это всё. И проверяется всё внешним бутлоадером. А у меня программа проверяет сама себя (бутлоадер ничего не проверяет, он проверяет, что на векторе резета не FFFFFF и делает туда jump, предварительно включив ватчдог). - fk0легенда(12.09.2020 01:30)
- Добавил работу с аппаратным калькулятором crc32 в либину, пока
только для stm32f407, заодно сделал полностью софтовую реализацию
этого же алгоритма. Из готового софта для расчета нашел только
srecord - evgeniy1294(15.09.2020 23:46, ссылка)
- См. ниже. Контрольный код хранится где-то в середине прошивки,
вставляется туда через двойнную линковку и перекомпиляцию файлика с
контрольной суммой после её подсчёта (на PC для чего с помощью
objdump ELF превращается в BIN и самодельная программа считает
CRC). A потом полученный второй раз BIN программируется
бутлоадером. Вообще workflow такой: fk0легенда(1287 знак., 12.09.2020 00:48, ссылка, ссылка)