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

 
 
> AT91SAM9XE512 - Не удается прошить внутреннюю FLASH из под IAR-а
Alex Kuznetsov
сообщение Sep 11 2009, 11:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-01-06
Пользователь №: 12 999



Доброго дня всем

Что имеем:
- плата с 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? Или может есть другие способы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
vmp
сообщение Sep 15 2009, 07:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Взять готовый пример с сайта Атмела, запустить и убедиться что работает.
Затем тщательно скопировать настройки отладчика из проекта.
Go to the top of the page
 
+Quote Post
Alex Kuznetsov
сообщение Sep 16 2009, 07:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-01-06
Пользователь №: 12 999



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

Отсюда и вопрос вырос: так как же прошить ВНУТРЕННЮЮ Flash SAM9XE через загрузчик во ВНУТРЕННЮЮ SRAM?
Go to the top of the page
 
+Quote Post
Alex Kuznetsov
сообщение Sep 30 2009, 06:57
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-01-06
Пользователь №: 12 999



Сам спросил, сам и отвечу. Проблема решилась следующим образом:

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
Go to the top of the page
 
+Quote Post

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

 


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


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