Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91RM9200 SPI boot
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Arischenko Ivan
Добрый день.

Имеется связка : AT91RM9200 +dataflash AT45DB321 + sdram 2x16 + nand flash, среда разработки IAR или GNU(yagartoo+openocd+eclipce)

В IAR есть два проекта, для AT91RM9200, взял проект для DK (он мигает одним светодиодом), версию с линковкой в sram.
ucrouter взял flash утилиту AT91RM9200-29lv160d.bin, поставил bms=1, подключится через Debug UART. В консоли пошли символы "ССССС ". Загрузил при помощи xmodem протокола утилиту в процессор, дождался второго приглашения (верно определилась dataflash и пошли буква СССС) , заслал свою программу, выставил BMS=1, передернул питание = вместо моей программы запустился загрузчик. Где я ошибся?

На форуме нашел mac файл для IAR инициализирующий SDRAM. Подключил к проекту, изменил файлы .icf, так чтобы программа линковалась в SDRAM, стек в внутренню SRAM. Никак не получается залить программу в SDRAM и там ее отладить, есть ли пример .icf файла для IAR, позволяющий отлаживать программу в SDRAM? (SDRAM инициализируется корректно, с адреса 0х20000000 память пишется, читается)

с ucrouter взял исходники boot.patch.tgz, исправил Makefile, скрипт линкера, написал скрипт openocd и gdb (eclipse) . Как результат : SDRAM инициплизируется, туда записывается приложение и запускается (выполняется по шагам). Но все работает нестабильно, запись происходит через раз. Кто нибудь может поделиться скриптом openocd и парным скриптом gdb?


С уважением Арищенко Иван.

Arischenko Ivan
Подниму тему :

В приложении два файла :

1. Проект GNU, последний yagartoo, приложение слинковано в sdram (32x). Грузится, мигает светодиодом. За основу брал проект c ucrouter пример работы с MCI картой. Make написан заново.

2. Скрипт OpenOCD (для версии 4). По команде reset init инициализируется pll, sdram и выполняется remap. (за основу взял файлы из поставки OpenOCD)

скрипт gdb :

target remote localhost:3333
monitor halt
monitor sleep 1000
monitor reset init
monitor sleep 1000
load
thbreak main


Вопрос : spi loader с инструкцией (куда должно быть слинковано приложение) и последовательность действий? Загрузчик первого уровня должен загрузить bootloader в sram и передать ему управление. bootloader должен проинициализировать sdram переписать мое приложение из dataflash в sdram и передать ему управление.

Arischenko Ivan
Ну собственно все :

Я взял загрузчик с загрузчик.

Последовательность действий :

1. В startup коде удаляется кусок, настраивающий PLL
2. Программа линкуется в SDRAM с адреса 0x21f00000 (с этого адреса в память загрузчик переписывает прикладное приложение из dataflash и запускает его)
3. BMS=1, в теминале по debug порту появляется приглашение загрузки программы по xmodem
4. Записать бинарник romboot.bin
5. Приглашение romboot :

press any key to enter bootloader

ATMEL LOADER VER 1.01 Aug 4 2004 18:24:55
*----------------------------------------*
DataFlash:AT45DB321
Nb pages: 008192
Page Size: 000528
Size=04325376 bytes
Logical address: 0xC0000000
*----------------------------------------*
1: Download Dataflash [addr]
2: Read Dataflash [addr]
3: Start U-BOOT
4: Clear bootloader section in Dataflash
*----------------------------------------*
Enter:

6. Зашить программу загрузчика в dataflash командой : 1 0xc0000000 -> появятся приглашение "CCCC" -> передать бинарник загрузчика
7. Зашить прикладную программу : 1 0хс0008000 -> появятся приглашение "CCCC" -> передать бинарник программы


Все, можно ресетить процессор и закрывать тему.
dch
Цитата(Arischenko Ivan @ Jun 23 2010, 19:41) *
ucrouter взял flash утилиту AT91RM9200-29lv160d.bin, поставил bms=1, подключится через Debug UART. В консоли пошли символы "ССССС ". Загрузил при помощи xmodem протокола утилиту в процессор, дождался второго приглашения (верно определилась dataflash и пошли буква СССС) , заслал свою программу, выставил BMS=1, передернул питание = вместо моей программы запустился загрузчик. Где я ошибся?

Таких проблемм как Вы написали, вообще то не наблюдалось.
После того как Ваша программка загрузилась, выскочит меню и там есть пункт прописать в dataflash,
если нажали правильную клавишу то ошибки быть не должно, стабильно пишется AT45DB321, AT45DB642,
другие я не ставлю у себя. На всякий случай для защиты там введён пукт меню верифицировать flash.
Те Ваша программка прогружается опять в SDRAM и содержимое SDRAM сравнивается с flash :-)

Может ресетнулись до того как в третий раз выдалось CCCC?

PS. Как говорили старые программисты позле записи полезно прочитать еще раз id flash , но в руководстве на них нет об этом ничего и я таких проблемм не наблюдал, хотя в основном шью я то параллельную а эта для образа диска используется, но при прошивке образа диска таких проблемм не наблюдалось.
slavox
Цитата(Arischenko Ivan @ Jul 8 2010, 08:56) *
Ну собственно все :
...


Здравствуйте!
Прошло 3 года- ссылки устарели, скиньте пожалуйста ссылку на загрузчик "Я взял загрузчик с загрузчик"

Спасибо.
leo_nsk
Здравствуйте!
Нужны исходники romboot'a, не могу найти, что неудивительно через столько-то времени. Прошу помощи - может быть, у кого-нибудь они остались?
DmitryM
Цитата(leo_nsk @ Jun 25 2014, 09:43) *
Здравствуйте!
Нужны исходники romboot'a, не могу найти, что неудивительно через столько-то времени. Прошу помощи - может быть, у кого-нибудь они остались?
leo_nsk
Спасибо!
Гарри
Увидел похожую связку AT91RM9200 + AT45DB321C
Есть плата от HP MSL 4048 с процессором AT91RM9200. Для это платы есть прошивки с раширением *.frm Нажмите для просмотра прикрепленного файла расширение изменено на txt.
Мне нужнро как-то вытащить бинарник с AT45DB321C, либо понять как этот файл записать на AT45DB321C.
Дело осложняется тем, что AT45DB321C не сдуть с платы, стоит на шарах, потом просто так не посадить обратно.
Может кто помочь в Москве или Зеленограде с прошивкой? Или через какую связку можно считать?
aaarrr
Заблокируйте чтение с AT45 и подключитесь через SAM-BA, ничего сдувать не придется. Представленный бинарник явно не полный, т.е. должен быть еще один загрузчик в начале AT45.
Гарри
aaarrr есть подозрение что файл сжат, хорошо бы его открыть в какой нить редакторе, чтобы структуру показал.
aaarrr
Цитата(Гарри @ May 6 2015, 10:29) *
aaarrr есть подозрение что файл сжат, хорошо бы его открыть в какой нить редакторе, чтобы структуру показал.

Да, большая часть сжата. Декомпрессор открыт (смещение 0x440+), но он не может быть напрямую загружен средствами Boot ROM RM9200, должен быть еще один загрузчик.
Гарри
aaarrr на плате стоит FM25L256, с него сдул бинарникНажмите для просмотра прикрепленного файла Там может быть загрузчик?
aaarrr
Цитата(Гарри @ May 6 2015, 11:07) *
Там может быть загрузчик?

Нет, там только данные.
Гарри
aaarrr вот бинарник с AT45DB321C, но с другой библиотеки чуток, рискнул чип отпаял Нажмите для просмотра прикрепленного файла

И вот сама пррошивка для этого, они могут только версиями отличатся. Нажмите для просмотра прикрепленного файла

А как вы эти файлы анализируете, в какой проге?
aaarrr
Цитата(Гарри @ May 6 2015, 17:16) *
aaarrr вот бинарник с AT45DB321C, но с другой библиотеки чуток, рискнул чип отпаял

И вот сама пррошивка для этого, они могут только версиями отличатся.

Первичный загрузчик в адресах 0 - 0x2f70, основная прошивка начинается с адреса 0xc3f0.

В файле MSL_1x8_G2_3.80.txt основная прошивка начинается с адреса 0x461.

Первые 38868 байт в прошивках совпадают.

Цитата(Гарри @ May 6 2015, 17:16) *
А как вы эти файлы анализируете, в какой проге?

Глазами в HEX-редакторе.
Гарри
aaarrr я примерно также) только в редакторе тритона.

Может кто предположить чем можно распаковать файл Нажмите для просмотра прикрепленного файла

в тот что на AT45DB321C Нажмите для просмотра прикрепленного файла
aaarrr
Цитата(Гарри @ May 7 2015, 14:04) *
Может кто предположить чем можно распаковать файл

Руками, или утилиту изобрести. Формат там, судя по всему, простой - перед каждым блоком стоит заголовок из восьми байт, содержащий адрес во флеш и длину (два 32 битных числа в Big Endian).
Начальный загрузчик только взять из дампа, т.к. в MSL_1x8_G2_4.30 его нет.

Только зачем все это надо, если нужный файл (AT45DB321C_HP_1_8g2_fw4_3) уже есть?
Гарри
опыты ставлю на HP MSL 1/8 G2. Для неё есть и прошивка и вот считал флеш с неё.
Есть другая библиотека SUN StorageTek SL48, копия HP MSL 4048, вот её хочу прошить в HP.

Сравнив два файла еще в конце увидел набор байтов, которых нету в прошивке. Может контрольная сумма.
aaarrr
Цитата(Гарри @ May 7 2015, 14:33) *
Сравнив два файла еще в конце увидел набор байтов, которых нету в прошивке. Может контрольная сумма.

По-моему, они идентичны. О каком наборе речь?
Гарри
разница в файле Нажмите для просмотра прикрепленного файла
aaarrr
Начиная с "FF FF FF FF 24 65 AB DF..."? Да, похоже на какой-то хеш.
Гарри
aaarrr Спасибо за наводку, поглядел, действительно в прошивке блоками файлы расположены, т.е. можно собрать прошивку. Посчитал несколько блоков, вроде совпадает всё.
Гарри
кто может помочь сохранить бинарник из бэкапа winhex? Триал версия не более 200 кб Нажмите для просмотра прикрепленного файла
Гарри
Спасибо, файл сделан.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.