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

 
 
> IAR ARM 6.3 загрузка в RAM заливает неверный код
megajohn
сообщение Feb 5 2015, 16:09
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



MCU:
LPC1778
ROM=0x0000 0000....
RAM=0x1000 0000...

Делаю загрузчик, и столкнулся что ассемблерный код в памяти не соответствует сишнику, и не соответствует коду, что для флеши.
Меняю только адрес для ROM и регистр VTOR

Debugger->run_to = выключено ( то есть после загрузки сразу встаем на вектор сброса )
и уже на этапе загрузки битые значения

поставил бряк стоит на изменение где лежит эти инструкции mem_set - нечего не выявил

что может портиться при загрузке программы в RAM через JTAG ? Кто сталкивался ?

Add: если гружу в RAM в симуляторе - то всё нормально. А через jLink беда

Add2:
включил Verify Download + Supress Download и куча ошибок
Thu Feb 05, 2015 19:22:58: Warning:
Verify error at address 0x10000001, target byte: 0xBE, byte in file: 0xA1
Thu Feb 05, 2015 19:22:58: Warning:
Verify error at address 0x10000002, target byte: 0xFE, byte in file: 0x00
Thu Feb 05, 2015 19:22:58: Warning:
Verify error at address 0x10000003, target byte: 0xE7, byte in file: 0x10
Thu Feb 05, 2015 19:22:58: Warning:
Verify error at address 0x10000004, target byte: 0x81, byte in file: 0xDD
Thu Feb 05, 2015 19:22:58: Warning:

если только Verify Download то ошибок нет и вектора нормально, а моя функция битая =(
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Feb 5 2015, 16:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Возможно у Вас какие-то косяки в командном файле линкёра (.icf) - может какие-то секции накладываются друг на друга.
Попробуйте заменить базовый адрес 0x10000000 на другую часть ОЗУ.
По-крайней мере у меня в одном проекте (LPC1768) сборка проекта для отладки делается полностью в ОЗУ. И никаких проблем. Тоже JLink.
Вот описание регионов RAM из этого проекта:
Код
define region RAM_regionA     = mem:[from 0x10000000 size 0x8000]; //main RAM
define region RAM_regionBB    = mem:[from 0x2007C000 size 0x3000];
define region RAM_regionB     = mem:[from 0x2007F000 size 0x5000]; //AHB RAM

RO-секции линкуются в RAM_regionA и RAM_regionBB, RW-секции - в RAM_regionB. Flash не используется.

ЗЫ: Как это Вы ReadOnlyMemory умудряетесь JTAG-ом шить? wink.gif
Go to the top of the page
 
+Quote Post
megajohn
сообщение Feb 5 2015, 17:07
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(jcxz @ Feb 5 2015, 19:58) *
Возможно у Вас какие-то косяки в командном файле линкёра (.icf) - может какие-то секции накладываются друг на друга.

да уже не раз всё перепроверил. Вот чуть чего файл Прикрепленный файл  LPC1778_Ram.txt ( 1.87 килобайт ) Кол-во скачиваний: 295


Цитата(jcxz @ Feb 5 2015, 19:58) *
ЗЫ: Как это Вы ReadOnlyMemory умудряетесь JTAG-ом шить? wink.gif

а как Segger->FlashCommander и IAR со снятой галкой FlashLoader заливают ? ( то что в IAR C-spy заливает в RAM свой прошивальщик знаю, но это когда стоит опция )


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 6 2015, 03:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(megajohn @ Feb 5 2015, 23:07) *
да уже не раз всё перепроверил. Вот чуть чего файл Прикрепленный файл  LPC1778_Ram.txt ( 1.87 килобайт ) Кол-во скачиваний: 295

Может у Вас секция с векторами прерываний на начало ROM_region накладывается (слишком большая)? Смотрите .map-файл.
Определите для векторов также отдельный регион, чтобы линкёр контролировал его размер, либо сделайте ROM_region от 0x10000000 и расположите в его начале секцию векторов: place in ROM_region {ro, first section .intvec, ...}.
В целом вроде всё нормально.
Цепляю Вам сюда свой ram.icf для LPC1768 - всё отлично работает. Для LPC1778 увеличить только соотв. регионы да убрать ненужные секции.
Прикрепленный файл  ram.txt ( 1.76 килобайт ) Кол-во скачиваний: 128

Цитата(megajohn @ Feb 5 2015, 23:07) *
а как Segger->FlashCommander и IAR со снятой галкой FlashLoader заливают ? ( то что в IAR C-spy заливает в RAM свой прошивальщик знаю, но это когда стоит опция )

ROM != flash

Цитата(Сергей Борщ @ Feb 5 2015, 23:56) *
Возможно глупость скажу, но у ИАРа Flash Loader - программа, которую отладчик грузит в ОЗУ, запускает и именно она заливает прошивку во флеш. Если вы грузите в ОЗУ, то Flash Loader грузить не надо.

"Use flash loader" в настройках Debugger не нужно включать ни при загрузке в RAM ни при прошивке во Flash. У меня и без неё прекрасно шьёт. На той вкладке только "Verify download" нужно вкл.

ЗЫ: А вообще совет - заменить IAR на хотя-бы 6.50. В 6.30 были глюки - неверно код компилил. Я приводил сюда примеры в своё время.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Feb 6 2015, 12:07
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(jcxz @ Feb 5 2015, 22:39) *
"Use flash loader" в настройках Debugger не нужно включать ни при загрузке в RAM ни при прошивке во Flash. У меня и без неё прекрасно шьёт. На той вкладке только "Verify download" нужно вкл.


А у меня нет, шьет плохо, с ошибками без этой галочки.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- megajohn   IAR ARM 6.3 загрузка в RAM заливает неверный код   Feb 5 2015, 16:09
|- - megajohn   АААА ! Нашел ! RAM used by Boot process p...   Feb 6 2015, 08:38
||- - jcxz   Цитата(megajohn @ Feb 6 2015, 14:38) АААА...   Feb 6 2015, 13:47
||- - megajohn   Цитата(jcxz @ Feb 6 2015, 16:47) Мимо кас...   Feb 6 2015, 15:02
||- - megajohn   Цитата(jcxz @ Feb 6 2015, 16:47) У меня н...   Feb 9 2015, 09:44
||- - jcxz   Цитата(megajohn @ Feb 9 2015, 15:44) могу...   Feb 9 2015, 10:24
||- - megajohn   Цитата(jcxz @ Feb 9 2015, 13:24) А что хо...   Feb 9 2015, 10:34
||- - jcxz   Какие именно аргументы я опроверг???? Я вообще-то ...   Feb 9 2015, 10:46
||- - jcxz   Отгадка:   Feb 9 2015, 14:34
- - Сергей Борщ   Возможно глупость скажу, но у ИАРа Flash Loader - ...   Feb 5 2015, 17:56
- - Golikov A.   кортекс м3 в каком то месте записывает контрольную...   Feb 6 2015, 16:55
- - megajohn   Цитата(Golikov A. @ Feb 6 2015, 19:55) ко...   Feb 8 2015, 06:30
- - jcxz   Цитата(Golikov A. @ Feb 6 2015, 22:55) ко...   Feb 8 2015, 06:35


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:21
Рейтинг@Mail.ru


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