Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9XE512 - Не удается прошить внутреннюю FLASH из под IAR-а
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Alex Kuznetsov
Доброго дня всем

Что имеем:
- плата с AT91SAM9XE512 rev. A, внешней памяти нет;
- IAR v5.4, вылеченный;
- J-Link, дрова от Segger 4.08k, вылеченные;
- простой проект для моргания светодиодом;
- загрузка и отладка в SRAM проходит на ура;
- прошивание внутренней FLASH через JFlashArm – тож все хорошо.

Основная проблема:
при прошивании внутреннй FLASH загрузчиком из под IAR-а, он подвисает и ничего не прошивает. Похоже весь процесс зависает на том, что IAR грузит flashloader во внешнюю SDRAM. Это видно по адресам в логах и регистрах проца (все значения из области 0x2000 0000).

Как загрузить FLASH из под IAR-а используя flashloader, загружаемый во внутреннюю SRAM? Или может есть другие способы?
vmp
Взять готовый пример с сайта Атмела, запустить и убедиться что работает.
Затем тщательно скопировать настройки отладчика из проекта.
Alex Kuznetsov
Если бы было все так просто, я пост и не создавал бы. Все примеры на атмеле и на иаре рассчитаны на демо борду AT91SAM9XE-EK (а на ней есть внешний Flash и внешний SDRAM). Если посмотреть макрос на загрузку во ВНУТРЕННЮЮ Flash, то для SAM9XE внутреннее имя файла имеет вид "SAM9XE-SDRAM.mac".
Больше похоже на то, что поскольку у остальных процов из семейства SAM9 внутренний SRAM очень маленький, то загрузка ВНЕШНИХ (поскольку внутренних у них нет) Flash-ей предусмотрена через ВНЕШНИЙ SDRAM, и для SAM9XE ничего менять не стали, т.е. тоже попользовали загрузку ВНУТРЕННЕЙ и ВНЕШНЕЙ Flash через ВНЕШНЮЮ SDRAM.

Отсюда и вопрос вырос: так как же прошить ВНУТРЕННЮЮ Flash SAM9XE через загрузчик во ВНУТРЕННЮЮ SRAM?
Alex Kuznetsov
Сам спросил, сам и отвечу. Проблема решилась следующим образом:

1. Берем свежий IAR версии 5.40, там поправленный flashloader, макросы для загрузки и исходник flashloader'а

2. Открываем проект с исходником flashloader'а (лежит в папке $TOOLKIT_DIR$\src\flashloader\Atmel\flash\internalFlashLoader.eww)

3. Выбираем проц AT91SAM9xe512, меняем адреса расположения в памяти в свойствах проекта:
Project -> Options -> Linker -> Config -> Edit Configuration File -> на закладке memory region меняем адреса RAM на 0x300000 и 0x307FFF (это встроенная SRAM)

4. Пересобираем исходник flashloader'а (новое файло flashloader'а теперь лежит $TOOLKIT_DIR$\src\flashloader\Atmel\flash\internalFlashSAM9XE512\Exe\internalflash-sam9xe512.out)

5. Заменяем файл $TOOLKIT_DIR$\config\flashloader\ATMEL\AT91SAM9xe512-EK\internalflash-sam9xe512.out на новый, или у кого свои настройки, то указываем путь на новый flashloader

Может конечно есть и другой способ...

Модераторам: тему прошу перенести в IAR
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.