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

 
 
> Инициализация AT91SAM7S64
SolarA
сообщение Aug 28 2008, 20:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-08-08
Пользователь №: 39 873



Всем привет!
Тут такое дело: надо данный МК проинициализировать. Опыта работы у меня с АРМами и с атмелами в часности нету. Я сдер с примера на сайте атмела инциализацию для ИАР 4.11. Тестовая прожка пошла на ура. Но когда я увеличил прогу у меня стало нехватать РАМ памяти. Я влез покопатся настроечный файл линкера .xcl. И там обнаружил такую запись

-DRAMSTART=00000000
-DRAMEND=00003FFF

-DROMSTART=00000000
-DROMEND=0000FFFF

Начитавшись мануалов я попробовал менять эти значения и у меня стала постоянно на инициализации зацикливается прога, то по Data Abort то Undefined command.

Как нада проинициализировать для ИАР 4.11 МК так чтоб использовать всю его РАМ 16кб и РОМ(флеш) 64кб?

А то я так понимаю что изза накладки сегментов я теряю кусок памяти.
Происходит это так сегмент CODE занимает такое место 1b8-607d в памяти, и тогда сегментам DATA_I, DATA_Z,DATA_N не хватает места в РАМ которая от 0000 до 3FFF. Если же пытаюсь переместить както сегменты, то вылезают разные бока.

Я просмотрел несколько примеров для ИАР и они почемуто все инициализируют память так как я писал выше. Кроме некоторых, я брал их .xcl файлы но получается та же фигня. Получается нада чтобы подходили друг другу файлы инициализации.s79 и memory_maping.xcl

Посоветуйте, пожалуйста, хоть куда копать, а то мучусь уже 2 или 3 дня
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Aug 29 2008, 06:36
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(SolarA @ Aug 28 2008, 23:19) *
Я просмотрел несколько примеров для ИАР и они почемуто все инициализируют память так как я писал выше.

twak.gif Неправда, не все. Вы смотрели в них target RAM, которая предназначена для отладки программы путем запуска ее в ОЗУ. Но если ваша программа физически не влезает в ОЗУ, то никакими ухищрениями с файлами линкера вы ее туда не засуните. Надо переходить на работу во флеш. Выберете в любом примере target FLASH - увидите разницу. Возьмите из любого примера .xcl, но не тот, чье имя оканчивается на _ram.xcl, а тот, который оканчивается на _flash.xcl. Его и мучайте. Не забудьте включить генерацию raw-binary образа прошивки в опциях прошивки и флеш-загрузчик в опциях отладчика. Как это делается, смотрите тут.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Partizzan
сообщение Aug 29 2008, 14:45
Сообщение #3





Группа: Участник
Сообщений: 8
Регистрация: 27-12-07
Пользователь №: 33 670



Точно такое может быть. Границы РАМ такие для вашего МК
// No remap
// ROMSTART
// Start address 0x0000 0000
// Size 64 Kbo 0x0001 0000
// RAMSTART
// Start address 0x0020 0000
// Size 16 Kbo 0x0000 4000
// Remap done
// RAMSTART
// Start address 0x0000 0000
// Size 16 Kbo 0x0000 4000
// ROMSTART
// Start address 0x0010 0000
// Size 64 Kbo 0x0001 0000

Сообщение отредактировал Partizzan - Aug 29 2008, 14:50
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 03:25
Рейтинг@Mail.ru


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