Страница 1 из 1

IAR + AT91SAM9260-EK

Добавлено: Пт авг 16, 2013 16:59:16
fawkes
Здравствуйте, коты.
Недавно стал счастливым обладателем набора разработчика в виде платы AT91SAM9260-EK, отладчика SAM-ICE и компилятора IAR последней версии. До этого работал только с AVR.
И все бы ничего, да вот по началу пришлось поплясать с бубном, чтобы это чудо враждебной техники задрыгало лапами, но это я сделал, благо литература есть, да и примеры под плату в студии имеются.
Но я рано обрадовался, как выяснилось - примеры заточены под отладку в оперативной памяти контроллера, и ни в какую не хотят запускаться из NAND памяти.
А вопрос у меня вот в чём - где можно почитать, или может кто подскажет, про настройки компилятора для создания bin файла для последующей записи в NAND память (пишу Bootloader под специфическую задачу, штатный не устроил). Подозреваю, что я что то неправильно настроил или в *.icf файле, или в *.board, или прошиваю не в ту память, возможно не правильно прописал смещения. Сейчас задача прошить bootloader не стоит, хотя он и написан, просто нужно записать программу, которая моргает лампочкой по таймеру.
В datasheet на контроллер подробно расписан процесс загрузки из памяти DATAFLASH и NAND, написано, что по адресу 0x14 лежит размер загружаемого образа (в случае с DATAFLASH), но просмотрев bin файл я никакого размера там не нашел.
Дело в том, что в примерах под плату есть два варианта компиляции - под SDRAM и под NOR память. Пробовал второй залить на FLASH, но что то не запускается.
Пробовал использовать пункт Download из меню - виснет намертво, ждал по 1.5 часа, приходится перезапускать всю студию.
Для загрузки пользуюсь SAM-BA + SAM-ICE, перемычка BMS = 1.

И еще, поправьте меня, если я не прав, память ROM контроллера вообще не прошивается?
Заранее спасибо.

Re: IAR + AT91SAM9260-EK

Добавлено: Пт авг 16, 2013 23:31:21
fawkes
Как я говорю ученикам - ответ кроется в вопросе. Еще раз проанализировал варианты решения проблемы, и на половину ее решил.
Значит так, я писал не в ту память, это раз, использовал не правильные настройки линковщика, это два.
Попробовал настроить память для запуска SRAM0 а память для данных - SRAM1. Записал программу напрямую в память - заработала. До этого работала только проверка в памяти SDRAM.
Потом не меняя программу записал ее в первый сектор DATAFLASH, получилось заставить контроллер грузить программу при старте, BMS=1. Как я понял - при BMS=0 по-умолчанию будет загружаться программа из DATAFLASH, а мне это не нужно.

Теперь осталось победить загрузку из NAND. Вроде как в datasheet написано что такое возможно, подозреваю что опять напутал с адресами.

Re: IAR + AT91SAM9260-EK

Добавлено: Вс авг 18, 2013 12:26:29
fawkes
Спасибо всем за помощь, разобрался. Правда для начала отпаял управление для DATAFLASH, чтобы не мешалась. Но уже восстановил.

Резюме:
1. Достаточно скомпилировать программу для работы в SRAM (SRAM0 для констант, SRAM1 для переменных).
2. Переда прошивкой программы нужно вызвать пункт "Erase NAND Flash" или что то типа того, в общем почистить флешку.
3. Залить программу при помощи "Send Boot File" ну или в нулевой адрес NAND.
4. Положение OSCSEL и BMS не влияют на загрузку, разве что только на очередность.

Разумеется загружаемая программа не должна превышать 4096 байт, иначе работать не будет.