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

 
 
> ARM gcc, вызвать THUMB функцию из ROM
SM
сообщение Aug 27 2014, 17:02
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Я что-то запутался... Как мне объявить внешнюю thumb функцию, расположенную по заданному статическому адресу?

Я сделал вот так:

1) arm-rom.h
Код
int rom_func (void* dev_descr, int data);


2) скрипт для линкера
Код
....
SECTIONS {
....
  rom_func = 0x123456;
}


Все тут хорошо, но линкер думает, что rom_func следует исполнять как ARM, а не как THUMB, и генерирует соотв. BLX инстукцию (при вызове из THUMB кода). А как мне указать, что он THUMB?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Aug 28 2014, 12:02
Сообщение #2


Гуру
******

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



Там есть еще одна фигня - линкер может вставлять BLX просто потому, что для BL не хватает дальности "прыжка".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 28 2014, 12:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Сергей Борщ @ Aug 28 2014, 16:02) *
Там есть еще одна фигня - линкер может вставлять BLX просто потому, что для BL не хватает дальности "прыжка".

Хватает, хватает... Только .thumb_set-ом все объявишь, сразу BL. Да и BL вроде не отличается от BLX по "дальности".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 29 2014, 02:41
Сообщение #4


Гуру
******

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



Цитата(SM @ Aug 28 2014, 18:09) *
Хватает, хватает... Только .thumb_set-ом все объявишь, сразу BL. Да и BL вроде не отличается от BLX по "дальности".

Как оно может не отличаться? если BX - косвенная адресация, соотв. -32битное смещение, а B - с адресом в команде (т.е. - явно меньше 32 бит).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SM   ARM gcc, вызвать THUMB функцию из ROM   Aug 27 2014, 17:02
- - SM   Проблему сам решил, через ж. автогеном. Сделал асс...   Aug 27 2014, 18:23
|- - jcxz   Цитата(SM @ Aug 28 2014, 00:23) Проблему ...   Aug 28 2014, 02:02
|- - SM   Цитата(jcxz @ Aug 28 2014, 06:02) for IAR...   Aug 28 2014, 05:58
|- - den_po   Цитата(SM @ Aug 28 2014, 09:58) Проверено...   Aug 28 2014, 10:20
|- - SM   Цитата(den_po @ Aug 28 2014, 14:20) И с к...   Aug 28 2014, 10:41
|- - den_po   Цитата(SM @ Aug 28 2014, 14:41) О непосре...   Aug 28 2014, 12:44
|- - SM   Цитата(den_po @ Aug 28 2014, 16:44) У вас...   Aug 28 2014, 13:09
- - den_po   можно без линкера сделать указатель на функцию, а ...   Aug 27 2014, 22:17
- - Golikov A.   ИМХО корректнее честный АСМ вызов, чем игры со сме...   Aug 28 2014, 10:05
- - scifi   Цитата(SM @ Aug 27 2014, 21:02) Я сделал ...   Aug 28 2014, 10:36
||- - SM   Цитата(jcxz @ Aug 29 2014, 06:41) если BX...   Aug 29 2014, 05:33
|- - jcxz   Цитата(Сергей Борщ @ Aug 28 2014, 18:02) ...   Aug 29 2014, 03:53
- - den_po   В общем, говорим мы о разных вещах. Если в исходни...   Aug 28 2014, 20:44
- - Golikov A.   А у меня есть другое предложение, а что если вам с...   Aug 29 2014, 06:31
|- - SM   Цитата(Golikov A. @ Aug 29 2014, 10:31) А...   Aug 29 2014, 06:40
||- - jcxz   Цитата(SM @ Aug 29 2014, 12:40) При этом ...   Aug 29 2014, 06:59
||- - SM   Цитата(jcxz @ Aug 29 2014, 10:59) то можн...   Aug 29 2014, 07:03
|- - jcxz   Цитата(Golikov A. @ Aug 29 2014, 12:31) А...   Aug 29 2014, 06:47
- - Golikov A.   да пофиг, пусть переключается, вы в функции насиль...   Aug 29 2014, 06:45
|- - SM   Цитата(Golikov A. @ Aug 29 2014, 10:45) В...   Aug 29 2014, 06:55
- - Golikov A.   А второй вопрос, если все вызовы этой функции сдел...   Aug 29 2014, 07:05
|- - SM   Цитата(Golikov A. @ Aug 29 2014, 11:05) Я...   Aug 29 2014, 07:07
|- - jcxz   Цитата(SM @ Aug 29 2014, 13:07) Не хочетс...   Aug 29 2014, 07:18
|- - SM   Цитата(jcxz @ Aug 29 2014, 11:18) Это, им...   Aug 29 2014, 07:35
|- - jcxz   Цитата(SM @ Aug 29 2014, 13:35) А чего-то...   Aug 29 2014, 07:44
|- - SM   Цитата(jcxz @ Aug 29 2014, 11:44) Мне каж...   Aug 29 2014, 07:48
|- - sasamy   Цитата(SM @ Aug 29 2014, 11:48) В общем, ...   Aug 29 2014, 09:52
- - Сергей Борщ   Увы... Максимум, что приходит в голову - засунуть ...   Aug 29 2014, 08:49


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

 


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


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