Перейти к содержанию
    

Инициализация AT91SAM7S64

Всем привет!

Тут такое дело: надо данный МК проинициализировать. Опыта работы у меня с АРМами и с атмелами в часности нету. Я сдер с примера на сайте атмела инциализацию для ИАР 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 дня

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просмотрел несколько примеров для ИАР и они почемуто все инициализируют память так как я писал выше.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так конечно будет в DATA ABORT вылетать!

у вас границы RAM не правильно заданы.

Скорее всего вы взяли XCL файл для отладки в RAM.

А если уже памяти на код и данные не хватает надо уже прошивать программу во FLASH

А границы RAM

-DRAMSTART=00200000
-DRAMEND=00203FFF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точно такое может быть. Границы РАМ такие для вашего МК

// 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ARM начинает выполнение с адреса 0 и там находятся вектора прерываний...

по умолчанию туда отмаплен флешь ( можно отмапить RAM).

в общем проще считать что сегмент кода идет с 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за советы.

Прога моя работает пока очень криво :)

 

Зашил ее сеггер ДжейФлеш в плату и она не выполняется. При зашивании пишет что ей не хватает места начиная с 0х00000000, просит перенести все в 0х00100000. Когда переношу, то после этого она не запускается.

Тут писали что сначала РОМ находится в 0х00000000, но получается что нет?

 

Плюс если сразу запустить прогу на выполнение слетаю в бесконечный цикл default_irq_handler. Я его не прописал поэтому он и переходит на себя. Но суть не в этом, если в пошаговом режиме работать, дойти до какогото момента и оттуда запустить на дальнейшее выполнение такого не происходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...