Jump to content

    
Sign in to follow this  
ivan1180

AT91RM9200 SPI boot

Recommended Posts

Добрый день.

 

Имеется связка : 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?

 

 

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

 

 

Share this post


Link to post
Share on other sites

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

 

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

 

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 и передать ему управление.

 

AT91RM9200_HelloWorld.zip

openocd_at91rm9200.zip

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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" -> передать бинарник программы

 

 

Все, можно ресетить процессор и закрывать тему.

 

Share this post


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

Таких проблемм как Вы написали, вообще то не наблюдалось.

После того как Ваша программка загрузилась, выскочит меню и там есть пункт прописать в dataflash,

если нажали правильную клавишу то ошибки быть не должно, стабильно пишется AT45DB321, AT45DB642,

другие я не ставлю у себя. На всякий случай для защиты там введён пукт меню верифицировать flash.

Те Ваша программка прогружается опять в SDRAM и содержимое SDRAM сравнивается с flash :-)

 

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

 

PS. Как говорили старые программисты позле записи полезно прочитать еще раз id flash , но в руководстве на них нет об этом ничего и я таких проблемм не наблюдал, хотя в основном шью я то параллельную а эта для образа диска используется, но при прошивке образа диска таких проблемм не наблюдалось.

Edited by dch

Share this post


Link to post
Share on other sites
Ну собственно все :

...

 

Здравствуйте!

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

 

Спасибо.

Edited by IgorKossak
бездумное цитирование

Share this post


Link to post
Share on other sites

Здравствуйте!

Нужны исходники romboot'a, не могу найти, что неудивительно через столько-то времени. Прошу помощи - может быть, у кого-нибудь они остались?

Share this post


Link to post
Share on other sites
Здравствуйте!

Нужны исходники romboot'a, не могу найти, что неудивительно через столько-то времени. Прошу помощи - может быть, у кого-нибудь они остались?

Dataflashboot_1.05_AT91RM9200.tar.gz

Share this post


Link to post
Share on other sites

Увидел похожую связку AT91RM9200 + AT45DB321C

Есть плата от HP MSL 4048 с процессором AT91RM9200. Для это платы есть прошивки с раширением *.frm MSL4048_8.70.txt расширение изменено на txt.

Мне нужнро как-то вытащить бинарник с AT45DB321C, либо понять как этот файл записать на AT45DB321C.

Дело осложняется тем, что AT45DB321C не сдуть с платы, стоит на шарах, потом просто так не посадить обратно.

Может кто помочь в Москве или Зеленограде с прошивкой? Или через какую связку можно считать?

 

Share this post


Link to post
Share on other sites

Заблокируйте чтение с AT45 и подключитесь через SAM-BA, ничего сдувать не придется. Представленный бинарник явно не полный, т.е. должен быть еще один загрузчик в начале AT45.

Share this post


Link to post
Share on other sites
aaarrr есть подозрение что файл сжат, хорошо бы его открыть в какой нить редакторе, чтобы структуру показал.

Да, большая часть сжата. Декомпрессор открыт (смещение 0x440+), но он не может быть напрямую загружен средствами Boot ROM RM9200, должен быть еще один загрузчик.

Share this post


Link to post
Share on other sites

aaarrr вот бинарник с AT45DB321C, но с другой библиотеки чуток, рискнул чип отпаял AT45DB321C_HP_1_8g2.zip

 

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

 

А как вы эти файлы анализируете, в какой проге?

Edited by Гарри

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this