|
Вопрос про XLC файл IAR4.42A |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 17)
|
Jul 10 2009, 13:14
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(igorenja @ Jul 10 2009, 15:58)  Только прошивка генерируется снова с нулевого адреса..... Верните взад ROMSTART и покажите весь xcl. Кстати, простым смещением векторов вы их можете убить - они должны быть слинкованы так, чтобы работать после перемещения в нулевые адреса ремапом. Это делается примерно так: Код -DROMSTART=00101000 -DROMEND=0010FFFF
// Intvec always linked to 0x00-0x3F -Z(CODE)INTVEC=00000000-0000003F
// ROM -Z(CODE)INTVEC_I=ROMSTART-ROMEND -QINTVEC=INTVEC_I // place INTVEC image into INTVEC_I. -Z(CODE)ICODE,CODE,DIFUNCT,SWITAB=ROMSTART-ROMEND -Z(CONST)INITTAB,DATA_ID,DATA_C,CODE_ID=ROMSTART-ROMEND
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 13 2009, 06:38
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(igorenja @ Jul 13 2009, 05:31)  Показываю весь XLC: Еще раз обращаю ваше внимание на Код -Z(CODE)INTVEC_I=ROMSTART-ROMEND -QINTVEC=INTVEC_I // place INTVEC image into INTVEC_I. По каким соображениям вы выбрали формат mpds? Цитата(igorenja @ Jul 13 2009, 09:24)  В общем на данный момент у меня есть один работающий проект в котором прошивка генерируется с нужного адреса. Так может стоит сравнить их xcl? Цитата(igorenja @ Jul 13 2009, 05:31)  И ещё вопрос, что за файлы Cstartup.s79 Cstartup_SAM7.c и как их подцепить/отцепить от проекта? Раз вы спрашиваете, значит они вам пока не нужны. Линкер подтягивает их содержимое из библиотеки в уже скомпилированном виде.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 13 2009, 09:00
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(igorenja @ Jul 13 2009, 10:02)  Появляется ошибка: Fatal Error[e72]: Segment INTVEC_I must be defined in a segment definition option (-Z, -b or -P) Какая-то фигня: Как раз строчкой выше вы определяете этот сегмент опцией -Z: Код -Z(CODE)INTVEC_I=ROMSTART-ROMEND Может неточно скопировали эту строчку? P.S. пользуйтесь форматированием сообщений (кнопками  и  ), иначе их неудобно читать.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 14 2009, 02:48
|

Частый гость
 
Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488

|
Цитата(Сергей Борщ @ Jul 13 2009, 16:00)  Какая-то фигня: Как раз строчкой выше вы определяете этот сегмент опцией -Z: Код -Z(CODE)INTVEC_I=ROMSTART-ROMEND Может неточно скопировали эту строчку? P.S. пользуйтесь форматированием сообщений (кнопками  и  ), иначе их неудобно читать. Спасибо Вам большое за помощь. Решил проблему путём разбора работающего проекта. Как нибудь на досуге вернусь к этому вопросу.
|
|
|
|
|
Apr 20 2010, 17:33
|
Частый гость
 
Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691

|
Уважаемый, igorenja, у меня такая же проблема, как и у Вас. Цитата(igorenja @ Jul 14 2009, 11:03)  Суть вопроса: Во флеши лежит загрузчик и рабочая программа. Как заставить компилятор при компиляции рабочей программы не использовать область 0-3FFF а начать с адреса 4000?
Что пытался сделать: Правлю в XLC файле параметр -DROMSTART=00004000 компилирую..... и ни чего в прошивке не изменяется..... что делать.... С той лишь разницей, что компилятор IAR ARM 5.30, требуемый начальный адрес 0x2000, XLC-файл отсутствует. Но есть *.icf. Что пытался сделать? Исправил в icf-файле константы Код /*-Specials-*/ define symbol __ICFEDIT_intvec_start__ = 0x00000000; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = 0x00000044; define symbol __ICFEDIT_region_ROM_end__ = 0x0007FFFF; _intvec_start__ = 0x00000000 - на 0x00002000 ROM_start__ = 0x00000044 - на 0x00002044 - и программа не работает. Испытуемый пример - uip_webserver - из примеров к платам olimex LPC-P2378. Ткните, пожалста носом, что читать, где копать. В компиляторе keil просто надо было выставить начальный адрес IROM1=0x2000 - согласно an10759
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|