реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> запись программы во флеш на отладочной плате EDB9315
Pole
сообщение May 30 2006, 20:31
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 31 2006, 11:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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" вначале?

Будет, если попросить хорошо smile.gif
Ключевое слово нужно только для загрузки из EEPROM или через UART.

Эта тема уже неоднократно обсуждалась, так что поиск рулит.
Go to the top of the page
 
+Quote Post
Pole
сообщение May 31 2006, 13:28
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 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...

Цитата
Эта тема уже неоднократно обсуждалась, так что поиск рулит.

Я искал в поиске но на нужные вопросы ответов не нашел. Там было про загрузку, но другими способами.

Цитата
Будет, если попросить хорошо smile.gif

И как это сделать?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 31 2006, 17:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pole @ May 31 2006, 17:28) *
По поводу загрузки из флеш в документации написано следующие:

To boot from FLASH, put the “CRUS” or “SURC” HeaderID at one of the
following locations...

Это для режима Internal boot. Лучше использовать External boot, тогда проблемы с ID отпадут сами собой.
Go to the top of the page
 
+Quote Post
Pole
сообщение May 31 2006, 18:20
Сообщение #5


Участник
*

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



Цитата(aaarrr @ May 31 2006, 21:05) *
Это для режима Internal boot. Лучше использовать External boot, тогда проблемы с ID отпадут сами собой.


Я бы с радостью но у меня отладочная плата EDB9315A в котором только два режима загрузки либо через UART, либо Internal boot из флешки. Остальные варианты недоступны (все намертво припаяно и джамперов нет). Вот и мучаюсь sad.gif .
Был бы очень признателен если бы мне подсказали, как откомпилировать программу в IARе чтобы её можно было таким образом загрузить. Я даже не могу загружать программу через JTAG sad.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 31 2006, 20:32
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pole @ May 31 2006, 22:20) *
Я бы с радостью но у меня отладочная плата EDB9315A в котором только два режима загрузки либо через UART, либо Internal boot из флешки. Остальные варианты недоступны (все намертво припаяно и джамперов нет). Вот и мучаюсь sad.gif .

Да, плата жутковатая. Правда, можно подтянуть EECLK на землю - получится как раз то, что нужно.

Цитата(Pole @ May 31 2006, 22:20) *
Был бы очень признателен если бы мне подсказали, как откомпилировать программу в IARе чтобы её можно было таким образом загрузить. Я даже не могу загружать программу через JTAG sad.gif

IAR я не использую, но подскажу smile.gif Достаточно в стартовом asm файле положить сигнатуру CRUS по адресу 0x00 (DCD 0x53555243). По-идее, там должен быть вектор reset, но при internal boot он все равно не может использоваться.
Go to the top of the page
 
+Quote Post
Pole
сообщение May 31 2006, 20:39
Сообщение #7


Участник
*

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



Цитата(aaarrr @ Jun 1 2006, 00:32) *
Да, плата жутковатая. Правда, можно подтянуть EECLK на землю - получится как раз то, что нужно.

Распаять можно конечно. Нужно будет над этим подумать, страшновато как-то...

Спасибо! Попробуем.
Go to the top of the page
 
+Quote Post
Pole
сообщение Jun 6 2006, 18:29
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 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 разрядная. Это может повлиять на загрузку?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 6 2006, 19:37
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 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. Может быть, поэтому и не работает.
Go to the top of the page
 
+Quote Post
Pole
сообщение Jun 6 2006, 20:19
Сообщение #10


Участник
*

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



У меня возникают следующие сомнения.

Длина команды 32 бита, а флешка 16 битная. Программа грузится из 16 разрядной флешки. Чтобы прочитать одну команду нужно два цикла чтения. может быть в этом проблема, что для загрузки нужна 32 разрядная флешка?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 6 2006, 21:07
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Сколько сделать циклов чтения контроллер разберется сам, на
основании состояния пинов CS6 и CS7.
Go to the top of the page
 
+Quote Post
MemoryTest
сообщение Jun 7 2006, 14:30
Сообщение #12


Участник
*

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



Цитата(Pole @ Jun 7 2006, 00:19) *
У меня возникают следующие сомнения.

Длина команды 32 бита, а флешка 16 битная. Программа грузится из 16 разрядной флешки. Чтобы прочитать одну команду нужно два цикла чтения. может быть в этом проблема, что для загрузки нужна 32 разрядная флешка?


У Вас есть под нее БСП ? какой нибудь? к этоц отладочной плате сиррус дает БСП под WinCE там
есть бутлоадер (eboot.nb0). посмотрите как он работает... и можно сделать так же.. но он там хитро работаетsmile.gif) ..
А чтобы заработало из иара нужно для РОМ использовать адреса с 0x60000000
а для РАМ или буффер EMACа или SDRAM но СДРАМ надо проинитить перед использованием.
Смотрите исходники на бутлоадер от цирруса smile.gif там все есть.
Go to the top of the page
 
+Quote Post
Pole
сообщение Jun 7 2006, 21:56
Сообщение #13


Участник
*

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



Спасибо. Обезательно все посмотрю smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016