|
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
|
|
|
|
|
 |
Ответов
|
Sep 29 2005, 13:59
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Ну блин, когда BMS=0, то FLASH с адреса 0x00000000 начинается, а SRAM с 0x200000. -DRAMSTART=200040 -DRAMEND=203FFF -DSDRAMSTART=20000000 -DSDRAMEND=21FFFFFF -DROMSTART=40 -DROMEND=1FFFFF Вот с таким XCL сможешь из FLASH стартануть, только не забудь в low_level_init SDRAM инициализировать. Код // INTVEC -- Exception vector table. // SWITAB -- Software interrupt vector table. // ICODE -- Startup (cstartup) and exception code. // DIFUNCT -- Dynamic initialization vectors used by C++. // CODE -- Compiler generated code. // CODE_I -- Compiler generated code declared __ramfunc (executes in RAM) // CODE_ID -- Initializer for CODE_I (ROM). // ------------- // Data segments - may be placed anywhere in memory. // ------------- // CSTACK -- The stack used by C/C++ programs (system and user mode). // IRQ_STACK -- The stack used by IRQ service routines. // SVC_STACK -- The stack used in supervisor mode // (Define other exception stacks as needed for // FIQ, ABT, UND). // HEAP -- The heap used by malloc and free in C and new and // delete in C++. // INITTAB -- Table containing addresses and sizes of segments that // need to be initialized at startup (by cstartup). // CHECKSUM -- The linker places checksum byte(s) in this segment, // when the -J linker command line option is used. // DATA_y -- Data objects. // // Where _y can be one of: // // _AN -- Holds uninitialized located objects, i.e. objects with // an absolute location given by the @ operator or the // #pragma location directive. Since these segments // contain objects which already have a fixed address, // they should not be mentioned in this linker command // file. // _C -- Constants (ROM). // _I -- Initialized data (RAM). // _ID -- The original content of _I (copied to _I by cstartup) (ROM). // _N -- Uninitialized data (RAM). // _Z -- Zero initialized data (RAM).
-carm
-DRAMSTART=200040 -DRAMEND=203FFF
-DSDRAMSTART=20000000 -DSDRAMEND=21FFFFFF
-DROMSTART=40 -DROMEND=1FFFFF
-Z(CODE)INTVEC=00-3F
-Z(CODE)ICODE,DIFUNCT=ROMSTART-ROMEND -Z(CODE)SWITAB=ROMSTART-ROMEND
-Z(CODE)CODE=ROMSTART-ROMEND
-Z(CONST)CODE_ID=ROMSTART-ROMEND
-Z(CONST)INITTAB,DATA_ID,DATA_C=ROMSTART-ROMEND -Z(CONST)CHECKSUM=ROMSTART-ROMEND
//************************************************ // Data segments. //************************************************
-Z(DATA)DATA_I,DATA_Z,DATA_N=SDRAMSTART-SDRAMEND
//************************************************ // __ramfunc code copied to and executed from RAM. //************************************************
-Z(DATA)CODE_I=SDRAMSTART-SDRAMEND
-QCODE_I=CODE_ID
//************************************************************************* // Stack and heap segments. //*************************************************************************
-D_CSTACK_SIZE=800 // -D_SVC_STACK_SIZE=10 -D_IRQ_STACK_SIZE=300 -D_HEAP_SIZE=4000
-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND // -Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND -Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE=RAMSTART-RAMEND -Z(DATA)HEAP+_HEAP_SIZE=SDRAMSTART-SDRAMEND
|
|
|
|
|
Sep 29 2005, 18:43
|
Участник

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

|
Цитата(VladislavS @ Sep 29 2005, 16:59) Вот с таким XCL сможешь из FLASH стартануть, только не забудь в low_level_init SDRAM инициализировать. Есть ну очень тупая апликейшн: только лампочками мигает - никаких там PLL,SDRAM etc. Она работает со SRAMа закружаясь по XModem'у. Если её скомпайлить с приведённым выше .xcl и прошить во FLASH - должна ли она работать (у меня не хочет) или необходимо сделать что-то ещё ? cstartup сейчас default'овый - но ведь при BMS=0 никто и не "рыщит" за первыми 8ю векторами. Кстати, похоже что этот Linker Command File Configuration Tool не "парсит" изменения в отредоктированном ручками .xcl - всё время показывает свои Region: ARM [0-3F], [800-3FFF] что вообще ни пришей ни.. И ещё: не нашёл в своём проекте .map файлов. Ни "на диске" , ни в настройках. В скачанных с инета проектах в List директории один .map, а у меня там куча .lst и .s79ых. Настораживает однако.
|
|
|
|
Сообщений в этой теме
VladislavS IAR Flashloader для AT91RM9200 + AM29LV160D Jun 20 2005, 06:56 VladislavS С вопросом номер 3 разобрался сам. Был невнимателе... Jun 20 2005, 13:57 GSG Цитата1. Помогите разобраться с тактовыми частотам... Jun 21 2005, 07:43 VladislavS Просветление потихоньку приходит. Спасибо. С часто... Jun 21 2005, 09:11 GSG Случайно примера как в IAR написать команды включе... Jun 21 2005, 09:33 VladislavS Надо отдать должное IAR за исчерпывающую документа... Jun 21 2005, 11:51 vvj А можно что-нибудь по-проще?
Не понимаю как его (f... Sep 16 2005, 14:27 VladislavS Для того чтобы использовать этот FlashLoader надо ... Sep 16 2005, 17:12 vvj Цитата(VladislavS @ Sep 16 2005, 20:12)Для то... Sep 21 2005, 10:45 VladislavS В меню настройках Debuger надо указать Use macro f... Sep 21 2005, 18:55 GSG Мы просто меняли в редакторе нех-значение 6 байта ... Sep 22 2005, 10:39 VladislavS Вопрос не в том чтобы загрузиться, это я как раз у... Sep 22 2005, 12:30 vvj Такие дела: Wiggler глючит - отложил пока, в испол... Sep 23 2005, 14:05 VladislavS Еще раз внимательно прочти страницу 88 и особенно ... Sep 23 2005, 14:24 vvj Цитата(VladislavS @ Sep 23 2005, 17:24)Кстати... Sep 23 2005, 19:15 Bender Да, аналогично
У фуджиков тоже были свои стартап... Sep 24 2005, 01:26 VladislavS Ребят, давайте мух от котлет отделять.
1. vvj, Е... Sep 24 2005, 06:04 vvj Цитата(VladislavS @ Sep 24 2005, 09:04)Насчет... Oct 6 2005, 13:52 VladislavS Как и обещал выкладываю новую версию FlashLoader-а... Sep 26 2005, 04:25 vvj извиняюсь за повтор но наболело:
Закачиваю значи... Sep 27 2005, 14:12 VladislavS Может просто неправильно инициализируешь клоки? Не... Sep 27 2005, 17:37 vvj Цитата(VladislavS @ Sep 27 2005, 20:37)А то ч... Sep 28 2005, 13:51 VladislavS JTAG по тебе плачет. Недавно только на дружественн... Sep 28 2005, 14:18 vvj Цитата(VladislavS @ Sep 28 2005, 17:18)JTAG п... Sep 28 2005, 16:30 VladislavS Ну из твоих постов не было очевидно, что ты провер... Sep 28 2005, 18:26 vvj Такой вопрос:
если посмотреть на map файлы каждой ... Sep 29 2005, 10:17 Bender Цитата(vvj @ Sep 29 2005, 21:43)И ещё: не наш... Sep 30 2005, 05:01 VladislavS Вот тебе XCL для "тупого апликэйшина", р... Sep 30 2005, 05:37 vvj Код#include "AT91RM9200.h"
unsigned long c... Sep 30 2005, 09:50 vvj Заработало, извиняюсь, видимо php здесь не сработа... Sep 30 2005, 09:52 vvj Заработало, извиняюсь, видимо php здесь не сработа... Sep 30 2005, 09:53 VladislavS Так заработало или нет?
Народ, а FlashLoader то у... Sep 30 2005, 16:16 vvj Цитата(VladislavS @ Sep 30 2005, 19:16)А то м... Oct 4 2005, 19:28 VladislavS При BMS=0 Flash начинается с адреса 0x00000000 и ... Oct 5 2005, 05:25 vvj А не могли бы пояснить с переменными: по инструкци... Oct 5 2005, 08:30 VladislavS По директиве LDR надо просто почитать о методах ад... Oct 5 2005, 13:27 VladislavS В принципе, IAR-ом c FlashLoader-ом можно прошить ... Oct 6 2005, 18:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|