ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1383033 Топик полностью
RxTx (16.12.2023 11:43, просмотров: 258) ответил mrVladimir на С помощью SRecord преобразовал flash0_3ffff.hex в BinaryFlash.bin
По адресу 0x00000000 лежит 00 80 00 20 что в Cortex M3 little-endian порядке байт означает 20 00 80 00, это адрес установки регистра стека. 

У этого микроконтроллера адреса 0x20000000–0x20007FFF занимает статическая память (SRAM) размером 32Кб, так что стек он устанавливает в точности в конец памяти, как и должно быть.


По адресу 0x00000004 лежит 71 04 00 00 адрес перехода. Младший бит установлен (адрес нечетый), что соответствует что код ARM Thumb.

Действительный адрес 00 00 04 70, там действительно абсолютно разумный код, начало инициализации.

Итого, начало файлов валидно. Это прошивка.


Судя по строчкам "uC/OS-III" в прошивку прилинкована Micrium RTOS а также увидел строчку "MODBUS"

Сложно сказать что находится в конце, похоже на прилинкованные картинки(?) или просто какие-то данные, но скорее всего весь файл прошивки валиден.

(Если что-то "на душе скребет", вы свой пост можете отредактировать, файлы удалить).

------------

Далее.

Выше вы писали что у станка покоробились параметры (настройки).

Но настройки хранятся не во FLASH, настройки (вероятно) хранятся в EEPROM микроконтроллера по адресам 0x40008000–0x400087FF (2Кб),

если на плате нет отдельной микросхемы EEPROM.

Содержимое EEPROM лучше было тоже сохранить, потому что помимо MODBUS регистров там может быть что-то еще.

Возможно (но не обязательно, пока гипотеза), что после зашивки кода назад, EEPROM надо будет тоже восстановить (с другой платы).


Поизучайте Datasheet или вот этот документ https://www.infineon.com/dgdl/Infineon-CY8C58LP_CY8C56LP_CY8C54LP_CY8C52LP_PSOC_5LP_DEVICE_PROGRAMMING_SPECIFICATIONS-Programming+Specifications-v06_00-EN.pdf

стр. 78

не исключено что у микроконтроллера есть еще программируемые регистры, но пока что я ничего особо интересного не увидел..


Можно попробовать зашить FLASH назад в надежде что стартанет и так. Не запустится - смотреть что с ним дальше.


Посмотрел у SEGGER'а поддержку этого камня. Есть полная поддержка.

Спасибо, князь. Вы настоящий дворянин. И программист.