|
|
  |
запись программы во флеш на отладочной плате EDB9315 |
|
|
|
May 30 2006, 20:31
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
на сайте arm.cirrus.com имеется программа download которая позволяет загружать образ (.bin) во флеш на отладочной плате EDB9312/9315 через COM порт. Изначальна это программа служила для загрузок образов ОС. Можно ли откомпилировать в IAR программу с расширением .bin, а затем загрузить её таким образом в флеш, чтобы процессор затем запускался с флешки. И если можно, то что нужно писать в файле .xcl, какие адреса? И в файле .bin созданный в IAR будет ключевое слово "CRUS" или "SURC" вначале?
Сообщение отредактировал Pole - May 30 2006, 20:32
|
|
|
|
|
May 31 2006, 11:48
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pole @ May 31 2006, 00:31)  Можно ли откомпилировать в IAR программу с расширением .bin, а затем загрузить её таким образом в флеш, чтобы процессор затем запускался с флешки. И если можно, то что нужно писать в файле .xcl, какие адреса? Можно. Адреса будут 0x00 для флеш и 0xC0000000 и выше - для SDRAM. В зависимости от конфигурации и количества SDRAM, она может быть разбита на несколько страниц. SDRAM, кеширование и т.п. нужно инициализировать в стартапе. Цитата(Pole @ May 31 2006, 00:31)  И в файле .bin созданный в IAR будет ключевое слово "CRUS" или "SURC" вначале? Будет, если попросить хорошо  Ключевое слово нужно только для загрузки из EEPROM или через UART. Эта тема уже неоднократно обсуждалась, так что поиск рулит.
|
|
|
|
|
May 31 2006, 13:28
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
Цитата(aaarrr @ May 31 2006, 15:48)  Ключевое слово нужно только для загрузки из EEPROM или через UART. По поводу загрузки из флеш в документации написано следующие: To boot from FLASH, put the “CRUS” or “SURC” HeaderID at one of the following locations... Цитата Эта тема уже неоднократно обсуждалась, так что поиск рулит. Я искал в поиске но на нужные вопросы ответов не нашел. Там было про загрузку, но другими способами. Цитата Будет, если попросить хорошо  И как это сделать?
|
|
|
|
|
May 31 2006, 18:20
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
Цитата(aaarrr @ May 31 2006, 21:05)  Это для режима Internal boot. Лучше использовать External boot, тогда проблемы с ID отпадут сами собой. Я бы с радостью но у меня отладочная плата EDB9315A в котором только два режима загрузки либо через UART, либо Internal boot из флешки. Остальные варианты недоступны (все намертво припаяно и джамперов нет). Вот и мучаюсь  . Был бы очень признателен если бы мне подсказали, как откомпилировать программу в IARе чтобы её можно было таким образом загрузить. Я даже не могу загружать программу через JTAG
|
|
|
|
|
May 31 2006, 20:32
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pole @ May 31 2006, 22:20)  Я бы с радостью но у меня отладочная плата EDB9315A в котором только два режима загрузки либо через UART, либо Internal boot из флешки. Остальные варианты недоступны (все намертво припаяно и джамперов нет). Вот и мучаюсь  . Да, плата жутковатая. Правда, можно подтянуть EECLK на землю - получится как раз то, что нужно. Цитата(Pole @ May 31 2006, 22:20)  Был бы очень признателен если бы мне подсказали, как откомпилировать программу в IARе чтобы её можно было таким образом загрузить. Я даже не могу загружать программу через JTAG  IAR я не использую, но подскажу  Достаточно в стартовом asm файле положить сигнатуру CRUS по адресу 0x00 (DCD 0x53555243). По-идее, там должен быть вектор reset, но при internal boot он все равно не может использоваться.
|
|
|
|
|
May 31 2006, 20:39
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
Цитата(aaarrr @ Jun 1 2006, 00:32)  Да, плата жутковатая. Правда, можно подтянуть EECLK на землю - получится как раз то, что нужно. Распаять можно конечно. Нужно будет над этим подумать, страшновато как-то... Спасибо! Попробуем.
|
|
|
|
|
Jun 6 2006, 18:29
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
Тоесть мне нужно в стартовом asm файле прописать DCD 0x53555243? Код MODULE ?RESET COMMON INTVEC:CODE:NOROOT(2) PUBLIC __program_start EXTERN ?cstartup
EXTERN irq_handler CODE32; Always ARM mode after reset org 0x00 __program_start DCD 0x53555243; CRUS ldr pc,=?cstartup ; Absolute jump can reach 4 GByte ... И еще один вопрос. Я попробовал с помощью редактора вставить вначала бинарного файла сигнатуру CRUS. Пограмма начала загружаться, но не делает того что нужно. Может ли быть причина в том, что на плате установлена 16 битная загрузка и сама флешка 16 разрядная. Это может повлиять на загрузку?
|
|
|
|
|
Jun 6 2006, 19:37
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pole @ Jun 6 2006, 22:29)  Тоесть мне нужно в стартовом asm файле прописать DCD 0x53555243? Да. Цитата(Pole @ Jun 6 2006, 22:29)  И еще один вопрос. Я попробовал с помощью редактора вставить вначала бинарного файла сигнатуру CRUS. Пограмма начала загружаться, но не делает того что нужно. Может ли быть причина в том, что на плате установлена 16 битная загрузка и сама флешка 16 разрядная. Это может повлиять на загрузку? Похоже, я ввел Вас в заблуждение относительно адреса флеш памяти. На циррусовских платах флеш подключена к CS6, т.е. адрес будет 0x60000000, а не 0x00. Может быть, поэтому и не работает.
|
|
|
|
|
Jun 6 2006, 20:19
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 27-05-06
Пользователь №: 17 496

|
У меня возникают следующие сомнения.
Длина команды 32 бита, а флешка 16 битная. Программа грузится из 16 разрядной флешки. Чтобы прочитать одну команду нужно два цикла чтения. может быть в этом проблема, что для загрузки нужна 32 разрядная флешка?
|
|
|
|
|
Jun 7 2006, 14:30
|
Участник

Группа: Свой
Сообщений: 65
Регистрация: 25-01-05
Из: Мск регион.
Пользователь №: 2 161

|
Цитата(Pole @ Jun 7 2006, 00:19)  У меня возникают следующие сомнения.
Длина команды 32 бита, а флешка 16 битная. Программа грузится из 16 разрядной флешки. Чтобы прочитать одну команду нужно два цикла чтения. может быть в этом проблема, что для загрузки нужна 32 разрядная флешка? У Вас есть под нее БСП ? какой нибудь? к этоц отладочной плате сиррус дает БСП под WinCE там есть бутлоадер (eboot.nb0). посмотрите как он работает... и можно сделать так же.. но он там хитро работает  ) .. А чтобы заработало из иара нужно для РОМ использовать адреса с 0x60000000 а для РАМ или буффер EMACа или SDRAM но СДРАМ надо проинитить перед использованием. Смотрите исходники на бутлоадер от цирруса  там все есть.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|