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

 
 
> 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
SII
сообщение Oct 18 2013, 13:13
Сообщение #4


Знающий
****

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



Цитата(demiurg_spb @ Oct 18 2013, 16:41) *
Можно переосмыслить на BX.


Можно, да, но размер кода чуть больше, чем если вектор обработчика прямо в таблице векторов лежит (когда вообще никаких команд для вызова не требуется).

Цитата(megajohn @ Oct 18 2013, 17:00) *
Предистория, нужно было перелезть с CM3 на CM0


У Cortex-M3 реализована система команд Thumb-2, а у Cortex-M0 -- только Thumb. В последней нет 32-разрядных команд (не считая BL, которая изначально, ещё в версии ARMv4T, была "оформлена" как пара 16-разрядных инструкций), а поэтому с дальними переходами возникают проблемы. Правда, всё равно непонятно, почему компоновщик не сгенерировал veneer. Возможно, он просто не умеет это делать для Тумбы-1.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 18 2013, 13:30
Сообщение #5


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

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



Цитата(SII @ Oct 18 2013, 17:13) *
поэтому с дальними переходами возникают проблемы
Ваша правда!
У CM0 диапазон для B label поуже будет: −2KB to +2KB

http://infocenter.arm.com/help/index.jsp?t...a/CIHJJEIH.html


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


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


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