Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR .icf для Dataflash
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Didro
Добрый день,

только начинаю программировать ARM (AT91SAM9260). Работаю с IAR.
При линковке использую стандартные файлы определения сегментов (*.icf) - для запуска программы из SDRAM (уст. на плате) использую sdram.icf

На плате также установленная энергонезависимая Dataflash - есть какой-то свой собственный .icf файл для Dataflash или можно использовать sdram.icf ?
.icf файлы использую пока по принципу указал путь до файла и забыл.

Спасибо
KRS
Цитата(Didro @ Dec 7 2009, 23:48) *
На плате также установленная энергонезависимая Dataflash - есть какой-то свой собственный .icf файл для Dataflash

Это вы про SPI Dataflash (AT45xx)? Так непосредственно из нее программу нельзя выполнять, да и к данным обращаться. Надо считывать через SPI в ОЗУ.
aaarrr
Его и быть не может, т.к. DataFlash никак не отражена в адресном пространстве процессора. Соответственно, и для линкера этой памяти как бы не существует.
Загрузку кода и данных из нее придется организовать вручную.
Didro
Цитата(aaarrr @ Dec 7 2009, 23:59) *
Его и быть не может, т.к. DataFlash никак не отражена в адресном пространстве процессора. Соответственно, и для линкера этой памяти как бы не существует.
Загрузку кода и данных из нее придется организовать вручную.


Спасибо за ответы.
А как организуется размещение программы в Dataflash при таком вариант загрузки как "DataFlash Boot" (раздел 13.4 даташита на AT91SAM9260) ?
Т.е. если просто скомпилировать программу на Си в IAR и зашить её .bin в Dataflash, то загрузчик не запустит эту программу (Не скопирует её во внутренний sram и не запустит) - как же в таком случае задавать структуру программы, если не в .icf?
aaarrr
Цитата(Didro @ Dec 8 2009, 00:08) *
Т.е. если просто скомпилировать программу на Си в IAR и зашить её .bin в Dataflash, то загрузчик не запустит эту программу (Не скопирует её во внутренний sram и не запустит) - как же в таком случае задавать структуру программы, если не в .icf?

Почему же, если прописать на месте вектора 0x14 размер кода, то скопирует и запустит. Другое дело, что объем программы будет ограничен размером SRAM. Т.е. предполагается, что это будет некий ваш собственный загрузчик, который развернет основную программу.
mdmitry
Процесс загрузки можно посмотреть на примере загрузки linux`а для отладочной платы Atmel. Там несколько стадий загрузки: инициализация RAM и минимально периферии (bootstrap), загрузка второго загрузчика с поддержкой бОльшей периферии (u-boot), загрузка приложения, то есть ядра Linux, которое уже грузит ОС.
andrewlekar
Загрузчик, будучи правильно сконфигурирован, скопирует содержимое датафлэшины в сдрам и запустит прогу на исполнение. Таким образом вам нужно пересобрать проект AT91Bootstrap, если у вас есть отличия от дефолтных параметров на вашей плате. При этом линковать программу следует так, чтобы она работала из сдрам, так как оттуда она и будет запущена.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.