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

 
 
> работа с SRAM, AT91SAM7X
Sergei_K
сообщение Nov 8 2007, 10:38
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 49
Регистрация: 14-02-07
Пользователь №: 25 346



Собственно, хотелось бы работать со встроенной оперативкой SRAM для повышения производительности МК, и в связи с этим возникли вопросы..

Как я понял при прочтении даташита, по дефолту SRAM расположена в области 0x0020 0000 - 0x002F FFFF, а после ремэпа к ней можно обращаться по адресу 0x0..

Так вот.. при прошивке МК через самбу мы можем закинуть программу в SRAM, однако как дать понять МК, что он должен грузиться из памяти по адресу 0x0020 0000? В случае выполнения проги с флеш достаточно было выполнить скрипт загружаться из флеш.. для SRAM же такого скрипта нет..

Если же ремэпить, то не совсем понятна последовательность действий: нужно ли ремэпить прямо в основной программе и записывать ее в флеш.. или на флеш записать программу с ремэпом, а в SRAM кидать основную программу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Leen
сообщение Nov 12 2007, 11:26
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Посмотрел сейчас в дизассемблере (симулятор)... Скаттер примерно такой же - начало ro-региона 0x200000.
Код
0x00000000  E59FF018  LDR       PC,[PC,#0x0018]]
Т.е. адрес прыжка - 0x00000018, а не 0x00200018. Поэтому ремап делать необходимо, судя по тому что я знаю. Причем, делать его надо до go 0x200000.
Ресетовая инструкция (в моих файлах) лежит в третьей строке, первая по счету. Она не изменяется, даже если поставить начало 0x900000. Изменения начинаются (с стартап-файлом кейла для рвст) с адресов перехода на обработчики исключений - андеф, сви, и т.д., которые я не переписывал. Там стоят тоже абсолютные адреса, ибо:
тут отличий в хекс-файле нет
Код
Vectors         LDR     PC,Reset_Addr        
                LDR     PC,Undef_Addr
                LDR     PC,SWI_Addr
                LDR     PC,PAbt_Addr
                LDR     PC,DAbt_Addr
                NOP                           ; Reserved Vector
;               LDR     PC,IRQ_Addr
                LDR     PC,[PC,#-0xF20]       ; Vector From AIC_IVR
;               LDR     PC,FIQ_Addr
                LDR     PC,[PC,#-0xF20]       ; Vector From AIC_FVR

а тут есть
Код
Undef_Handler   B       Undef_Handler
SWI_Handler     B       SWI_Handler
PAbt_Handler    B       PAbt_Handler
DAbt_Handler    B       DAbt_Handler
IRQ_Handler     B       IRQ_Handler
FIQ_Handler     B       FIQ_Handler
Go to the top of the page
 
+Quote Post



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

 


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


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