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

 
 
> IAR Flashloader для AT91RM9200 + AM29LV160D, Выкладываю. Может кому будет полезно.
VladislavS
сообщение Jun 20 2005, 06:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VladislavS
сообщение Sep 29 2005, 13:59
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - vvj   Цитата(VladislavS @ Sep 29 2005, 16:59)Вот с ...   Sep 29 2005, 18:43
- - 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


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

 


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


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