|
ARM gcc, вызвать THUMB функцию из ROM |
|
|
|
Aug 27 2014, 17:02
|
Гуру
     
Группа: Свой
Сообщений: 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?
|
|
|
|
|
 |
Ответов
|
Aug 29 2014, 06:40
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Golikov A. @ Aug 29 2014, 10:31)  А у меня есть другое предложение, а что если вам сделать переход все равно какой, а переключиться на thumb режим уже внутри вашей функции? У меня задача обратная  Мне надо НЕ переключаться в ARM, при вызове ROM-функций (они находятся по фиксированным адресам в ROM (в бутлоадере) в процессоре, и все имеют thumb-код), из моего кода, который тоже THUMB. А по умолчанию gcc считает, что такая функция, объявленная заданием адреса через скрипт линкера, она ARM. При этом без излишеств, так как у меня всего 500 байт есть на весь мой код... С .thumb_set я уложился в 480 байт, но хочу сделать без него, и чтобы с тем же результатом.
|
|
|
|
Сообщений в этой теме
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 Сергей Борщ Там есть еще одна фигня - линкер может вставлять B... Aug 28 2014, 12:02 SM Цитата(Сергей Борщ @ Aug 28 2014, 16:02) ... Aug 28 2014, 12:09  jcxz Цитата(SM @ Aug 28 2014, 18:09) Хватает, ... Aug 29 2014, 02:41   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  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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|