ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1211676 Топик полностью
VVB (26.05.2022 12:30, просмотров: 473) ответил Dingo на Как вы образ для SPI (NAND) делаете из elf?
Ответ 

Пока что я по JTAG отлаживаюсь. С помощью NuWriter прописал инициализацию UPLL и регистров DDR2 (файл .ini; взял готовый, подходящий по размеру для данного производителя DDR2 SDRAM), и в первой исполняемой команде стоит код "0xFFFEEAFF", что означает "B ." -- бесконечное ожидание. То есть (при запуске из SPI NOR Flash) ROM код записывает некоторые регистры (описанные в .ini файле) и тупо зависает, исполняя мою команду.

Далее я подключаюсь по JTAG, гружу в DDR2 SDRAM с нулевого адреса свою программу (использую Segger Ozone и рабочий .elf файл) и запускаю её на исполнение/отладку.


Когда буду готов, то с помощью NuWriter запишу в SPI NOR Flash свою программу (бинарный файл) без каких-либо изменений; у меня начальный адрес =0 для удобства разработки. .bin получается из .hex (или .elf, по желанию) с помощью утилиты arm-none-eabi-objcopy. Я её напрямую из make-файла вызываю, но проект для Eclipse CDT на основе GNU MCU Eclipse Plugin тоже умеет её вызывать; надо где-то галку в опциях линкера поставить.


В общем-то, это всё должно быть очевидно и понятно.


Но уёбищный TRM не указывает на то, что JTAG запрещён несмотря на стартапные опции, если осуществляется "USB Boot", поэтому из-за этого уродства мне пришлось заложить разъём USB Device для начального программирования. Так как USB Device мне не нужен, то я его не хотел закладывать, а хотел на новой плате подключиться по JTAG и запрограммировать SPI NOR Flash, это оказалось в принципе невозможно при чистой SPI NOR Flash.


Там ещё много чудес, это самый говнистый камень из всех с чем мне приходилось работать.