Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск программы из ROM
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Cadavre
Есть готовое устройство на AT91RM. Требуется зашить программку во внутреннюю ROM память контроллера и запускать после RESET. Заливаю программку через JTAG-отладчик и жму Go. Программа работает. Но при отсоединении JTAG и нажатии RESET программа не запускается. В чём причина может быть? Может нужно выставлять определённое значение пина BMS (Boot Mode Select), чтобы программа загружалась из внутренней ROM?
aaarrr
У AT91RM внутренняя ROM масочная и записи не подлежит.
Cadavre
Что значит масочная? Тогда как с помощью JTAG'а у меня получается запускать программу?
aaarrr
Думаю, вы запускаете ее из RAM.
Cadavre
В даташите написано про работу загрузчика и что-то про ножку BMS(Boot Mode Select). Но никак не пойму, как влияет на bootloader при подаче RESET состояние ноги BMS, которое я задаю сам? В чём отличия если подам BMS = 0 или BMS =1?

У меня подключена DataFlash AT45 на NPCS0 и выставлен BMS = 1. Получается, что АРМ должен тестить после RESET на наличие корректной таблицы векторов прерываний эту флешку, т.е. должны быть видны импульсы на осциллографе, когда тыкаюсь в MOSI/MISO контроллера или SI/SO флешки... но импульсов нет, в чём причина может быть?
aaarrr
Цитата(Cadavre @ Apr 14 2011, 14:48) *
В даташите написано про работу загрузчика и что-то про ножку BMS(Boot Mode Select). Но никак не пойму, как влияет на bootloader при подаче RESET состояние ноги BMS, которое я задаю сам? В чём отличия если подам BMS = 0 или BMS =1?

Если BMS = 1, в нулевой адрес мапится ROM с загрузчиком, если BMS = 1 - внешняя память на NCS0. То есть во втором случае загрузчик просто не запускается.

Цитата(Cadavre @ Apr 14 2011, 14:48) *
У меня подключена DataFlash AT45 на NPCS0 и выставлен BMS = 1. Получается, что АРМ должен тестить после RESET на наличие корректной таблицы векторов прерываний эту флешку, т.е. должны быть видны импульсы на осциллографе, когда тыкаюсь в MOSI/MISO контроллера или SI/SO флешки... но импульсов нет, в чём причина может быть?

Может быть любая совершенно неисправность в цепях питания, тактирования, сброса. А может, вы просто не успеваете эти импульсы заметить.
Cadavre
Много ли проблем ведёт собой неисправность цепи сброса? Я обнаружил, что сброс на ножке МК у меня не происходит вовсе, когда я нажимаю кнопку RESET на плате или при включении питаниия (при вкл-ии питания платы микросхема ADM811 должна выдавать импульс RESET'а на ножку МК).
Cadavre
Проверьте, пожалуйста, правильно ли я делаю rolleyes.gif : задаю BMS = 1 (загружается bootloader из ROM) и ведёт поиск подключенных устройств dataflash. На NCS0 подключена AT45, а на NCS1 - AT25F. С помощью оцсиллографа удалось отследить импульсы на MOSI/MISO у контроллера AT91RM, т.е. одну из флешек АРМ находит, потому-что нет буквы 'C' в окне HyperTerminal. Как мне сделать, чтобы контроллер выдавал приглашние по Xmodem? Задать на землю MISO или чипселекты, чтобы dataflash не были определены?
aaarrr
Цитата(Cadavre @ Apr 22 2011, 10:19) *
Как мне сделать, чтобы контроллер выдавал приглашние по Xmodem? Задать на землю MISO или чипселекты, чтобы dataflash не были определены?

Угу. Только "сломать" dataflash тем или иным способом.
Atridies
Цитата(aaarrr @ Apr 12 2011, 17:21) *
У AT91RM внутренняя ROM масочная и записи не подлежит.


Позвольте полюбопытствовать: а у AT91SAM9R64 - тоже ROM не подлежит перезаписи? А то я копаюсь весь день по документам - и ни слова о перезаписи ROM. И ни слова о том, что она неперезаписываемая.
aaarrr
Цитата(Atridies @ Oct 13 2011, 01:17) *
И ни слова о том, что она неперезаписываемая.

Она Read Only Memory, что само по себе намекает нам на невозможность перезаписи. Не подлежит, конечно.
DpInRock
ROM==Read Only Memory.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.