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

 
 
> IAR ARM линкер выдает R_ARM_THM_JUMP11
megajohn
сообщение Oct 18 2013, 09:25
Сообщение #1


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

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



LPC1114 + IAR ARM6.3
в проекте вырезал уже многое.
вот с чем борюсь

Код
u32 mem_arr[2];
memset( mem_arr, 0, sizeof( mem_arr ) );

работает

меняю размер на 3 и не работает =(

Код
Error[Lp002]: relocation failed: value out of range or illegal: 0xfffff7fe
     Kind    : R_ARM_THM_JUMP11[0x66]
     Location: 0x00000f58
               Module:  I:\projects\tetra\mcu\Debug\Obj\startup_LPC11xx.o
               Section: 17 (.text)
               Offset:  0x0
     Target  : 0x0000075b
               "SysTick_Handler"
               Module:  I:\projects\tetra\mcu\Debug\Obj\other.o
               Section: 8 (.text)
               Offset:  0x1f


памяти достаточно (ROM занято 3 338+52 из 32кб, RAM занято 5 744 из 8кб )
да и на отсутсвие памяти ругается как Error[Lp011]: section placement failed: unable to allocate space for sections/blocks with a total estimated minimum size of 0x2604 bytes in <[0x10000000-0x10001fdf]> (total uncommitted space 0x1fe0).
я так понял что при линковке не может вставит инструкцию JUMP до функции SysTick_Handler ?

на IAR ARM 6.6 тоже самое

гугль пока не помог

в мап-файлах ничего выдающегося не нашел
Прикрепленный файл  2ok.txt ( 22.16 килобайт ) Кол-во скачиваний: 635
Прикрепленный файл  3fail.txt ( 22.72 килобайт ) Кол-во скачиваний: 684


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SII
сообщение Oct 18 2013, 10:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Ну, так и есть, эта самая команда B. Надо удалить эту пару строк, как и PUBWEAK SysTick_Handler, из файла; вместо последней вставить что-нибудь вроде EXTERN SysTick_Handler (что именно -- надо смотреть в документации на IARовский ассемблер) и убедиться, что в таблице векторов прерываний находится SysTick_Handler.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 18 2013, 12:41
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(SII @ Oct 18 2013, 14:28) *
Ну, так и есть, эта самая команда B.
Можно переосмыслить на BX.

Похоже, что не надо, т.к. для ARMv7-M она позволяет достаточно далеко прыгнуть, фактически на 16МБ: -16777216 to 16777214
стр. A6-40 http://web.eecs.umich.edu/~prabal/teaching...ARMv7-M_ARM.pdf


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
megajohn
сообщение Oct 18 2013, 13:00
Сообщение #4


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

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



Предистория, нужно было перелезть с CM3 на CM0
смотрю стартап в иаровских примерах cstartup_M.s Прикрепленный файл  cstartup_M_s.txt ( 7.41 килобайт ) Кол-во скачиваний: 663
и смущает запись отличная от CM3
ну думаю фигня какая, давай поишу стартапы похожие на CM3 - и нахожу таки в IAR6.6 файл startup_LPC11xx.s Прикрепленный файл  startup_LPC11xx_s.txt ( 8.9 килобайт ) Кол-во скачиваний: 171
который и привел. Проверил тестовый проект работает, а своё перетащил и нефига =(

Вернул обратно cstartup_M.s и все работает
единственное, что default handler меня сбил столку, но в векторах все номано


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post



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

 


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


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