|
IAR Flashloader для AT91RM9200 + AM29LV160D, Выкладываю. Может кому будет полезно. |
|
|
|
Jun 20 2005, 06:56
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Только начал работать с ARM и сразу на AT91RM9200. До этого имел дело c ATMega128. Потихоньку начал разбираться. Сначала во внутренней RAM простенькие программы запускал, шупал настройки и проникался масштабом бедствий. Потом дошло дело до Flashloader. Два дня отладчика и он заработал. В эттаче FlashLoader для AT91RM9200 + AM29LV160DB(T) с исходниками. Может кому полезно будет. Ну и попутно вопросы созрели: 1. Помогите разобраться с тактовыми частотами. PLLB = 96 МГц c выходом 48 для USB это понятно. Все остальное буду тактировать от PLLA. Какую MCK надо подать на Memory Controller, если на нем подключено AM29LV160DB 70 нc и SDRAM с CL=2 при 100 МГц. 2. Тактовая на SDRAM равна MCK? Тогда что лучше в плане производительности a) Процессор на 180 МГц и SDRAM на 90 МГц б) Процессор на 100 Мгц и SDRAM на 100 МГц Код будет исполняться из SDRAM. 3. Не совсем понял с времянкой работы FLASH на SMC. Во флэшлоадере MCK у меня 96 МГц c PLLB и все настройки SMC по умолчанию. Как это вяжется с 70 нc скоростью микросхемы AM29LV160D? Похоже, я что-то не понимаю. 4. Стоит ли стэк помещать во внутренней RAM процессора, а не в SDRAM. Получу ли я прибавку в скорости. Как к этому отнесется кэш?
FL_AT91RM9200_AM29LV160D.RAR ( 33.65 килобайт )
Кол-во скачиваний: 364
|
|
|
|
|
Jun 21 2005, 07:43
|
Участник

Группа: Свой
Сообщений: 35
Регистрация: 21-06-05
Пользователь №: 6 178

|
Цитата 1. Помогите разобраться с тактовыми частотами. PLLB = 96 МГц c выходом 48 для USB это понятно. Все остальное буду тактировать от PLLA. Какую MCK надо подать на Memory Controller, если на нем подключено AM29LV160DB 70 нc и SDRAM с CL=2 при 100 МГц.
2. Тактовая на SDRAM равна MCK? Тогда что лучше в плане производительности a) Процессор на 180 МГц и SDRAM на 90 МГц б) Процессор на 100 Мгц и SDRAM на 100 МГц Код будет исполняться из SDRAM.
3. Не совсем понял с времянкой работы FLASH на SMC. Во флэшлоадере MCK у меня 96 МГц c PLLB и все настройки SMC по умолчанию. Как это вяжется с 70 нc скоростью микросхемы AM29LV160D? Похоже, я что-то не понимаю.
4. Стоит ли стэк помещать во внутренней RAM процессора, а не в SDRAM. Получу ли я прибавку в скорости. Как к этому отнесется кэш? Ответ на первый и попутно на второй вопросы - с точки зрения производительности лучше : a) Процессор на 200 МГц и SDRAM на 100 МГц, но т.к производитель нормирует максимальную частоту работы на внешней шине всего лишь 80 Мhz, то есть ещё 2 варианта: б) Процессор на 209 МГц и SDRAM на 70(209/3) МГц; в) Процессор на 160 МГц и SDRAM на 80 МГц. ВЫбирай сам. Ответ на третий вопрос - нужно внимательно посмотреть на значение МСК и настройки SMC для нужного nCS. Ответ на четвертый вопрос - по моему мнению стэк стоит помещать во внутренней RAM процессора, а не в SDRAM, работать будет быстрее.
|
|
|
|
|
Jun 21 2005, 09:33
|
Участник

Группа: Свой
Сообщений: 35
Регистрация: 21-06-05
Пользователь №: 6 178

|
Случайно примера как в IAR написать команды включения кэшей у меня нет, а то что касается включения и настройки кэш-памяти - можно посмотреть как это делается в Linux.
|
|
|
|
|
Sep 16 2005, 14:27
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
А можно что-нибудь по-проще? Не понимаю как его (flashloader) использовать - сам пока только "лампочками мигаю" и тестирую (пишу/читаю) SDRAM. Гружусь Xmodemом (виглер бастует). Вот... А записать/прочитать флэш (такой же) ой как хочется. Об kernele конечно не может быть и речи, пока...
Не нашёл в этом loaderе даже обращения к SMC.
Ткните ПОЖАЛУЙСТА куда копать?
|
|
|
|
|
Sep 16 2005, 17:12
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Для того чтобы использовать этот FlashLoader надо подключиться по J-TAG. Не важно чем Wiggler подойдет. С его помощью можно flash прошить. Подробнее смотри EWARM User Guide страницу 232. Там все подробно. Для X-Modem это решение не идет. Подойдет вот это http://www.ucrouter.ru/download/AT91RM9200-29lv160d.binСобственно там еще много чего интересного есть.
|
|
|
|
|
Sep 21 2005, 10:45
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(VladislavS @ Sep 16 2005, 20:12) Для того чтобы использовать этот FlashLoader надо подключиться по J-TAG. Не важно чем Wiggler подойдет. С его помощью можно flash прошить. Подробнее смотри EWARM User Guide страницу 232. Там все подробно. Читал. Между делом и флэш раскочегарил - пишу, читаю, стираю. Но т.к. слишком зелёный в этом деле (начал вот читать уже с первых страниц) - непонял что конкретно подсовывать в качестве пути в диалог Override default flash loader path? FlashAT91RM9200_AM29LV160.d79? выдаёт ошибку "Overlapping address ranges" И в перспктиве осталось неясным как выполнить этот самый пункт первый "C-SPY downloads the flash loader into target RAM" ? PS> А как вообще IAR с Wigglerом совмещать надо? схема с двумя буферами и ресетами (SRst инвентирован), IAR_4.30 Я как-то пару раз вошёл в debug (CtrlD) режим без проблем. А теперь никак: "Check that all cables are connected and power is OK" Настройки wigglerа не менял, изменение последних (скорость и ресет) результатов недаёт. А OCD Commander работает... Здесь промелькала тема что IAR4.11 c Wigglerом не дружит. Ну блин это же не значит что савсем несовместим! Между прочим, насколько я теперь вспоминаю я перезапустил IAR с другим проектом. И теперь он Wiggler не видит
|
|
|
|
|
Sep 22 2005, 10:39
|
Участник

Группа: Свой
Сообщений: 35
Регистрация: 21-06-05
Пользователь №: 6 178

|
Мы просто меняли в редакторе нех-значение 6 байта и всё работало. В принципе и у тебя должно получиться.
|
|
|
|
|
Sep 23 2005, 14:05
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Такие дела: Wiggler глючит - отложил пока, в использование Embedded srvcов не въехал. Написал свой загрузчик по XModemу в SDRAM оттуда во флэш - в начало 0го сектора. Загружаю(во флэш) тестовый .bin с добавлеными вперёд 32 байтами. В шестой вектор пишу размер всего кода. Пробовал как Little так BigEndian (в отношении первых 32 бойтов). Также пробовал перекл. флэш в 8бит (пин у неё ByteModeSelect). Не грузит с флэша и всё Подскажите мож чё нетак делаю?
|
|
|
|
|
Sep 23 2005, 19:15
|
Участник

Группа: Новичок
Сообщений: 46
Регистрация: 20-01-05
Пользователь №: 2 090

|
Цитата(VladislavS @ Sep 23 2005, 17:24) Кстати, эти 32 байта не добавляются, а являются частью кода, так что лучше скомпилировать код сразу как надо. догадывался, но я то ожидал увидеть вектора в начале .bin'а, а там только первый есть, остальные - нули. Может покажете свой cstartup.s79 - ведь цивильно вектора вписываются туда как я понял из EWARM_CompilerReference.pdf (а не hex редактором). Кстати надоли тоогда что менять в.xcl ? Впринципе же эти директивы о содержимом табдицы векторов можно в любой имеющийся в проекте .s79 засунуть? Сам то я пользуюсь пока тест проектом от тов. Bender'а: там был в OBJ директории cstartup.r79 - я его потёр - ничё неизменилось. Теперь про шестой вектор. В шите говориться об установках для dataFlash. Но у меня то обычная 29LV160 от EBI через SMC. SPI нету. А стр. 95 п.7.3.3.5 упоминается размер кода в шестом векторе. Благодарю всех за исчерпывающие ответы особенно что-нибудь про этот cstartup. Как-то сам теперь удивляюсь что позади работа c 51ми TUSB3210 и 7C68013(EZ-FX2, USB2.0 поднимал - детский сад, как теперь вижу) на Keilе, а вот удалось прожить не вдаваясь в подробности cstartup'ов - ,были там какие-то - ну хрен с ними - и так работало...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|