-
- В общем, на форуме NXP мне объяснили где загвоздка. Фактически я пытался вызвать функцию через ее указатель. Чтобы этот код, скомпиленный в gcc, заработал на кортексе, нужно добавить следующее: dimasusl(674 знак., 17.11.2010 10:47)
- Семен Семенович! Точно, Кортекс же Thumb-2 использует, а для B(L)X признак перехода на Thumb-код - единица в младшем разряде адреса. Cepгeй Бopщ(448 знак., 17.11.2010 23:11 - 23:13)
- К сожалению, без промежуточного указателя, вызывать функцию все равно не получилось, несмотря на единичку с младшем бите адреса. dimasusl(306 знак., 18.11.2010 10:51)
- Респект за ссылку на книгу! Книга -> - Evgeny_CD(17.11.2010 11:20, ссылка)
- Кстати, вот еще неплохая памятка трудящимся dimasusl(140 знак., 18.11.2010 13:48)
- Семен Семенович! Точно, Кортекс же Thumb-2 использует, а для B(L)X признак перехода на Thumb-код - единица в младшем разряде адреса. Cepгeй Бopщ(448 знак., 17.11.2010 23:11 - 23:13)
- ... но к сожалению остались вопросы. Я на самом деле и ранее так пробовал, но не получилось. Вот и сейчас попробовав сделать все как было написано в примере, функцию вызвать не удалось. dimasusl(786 знак., 11.11.2010 16:59)
- С Кортексами пока не работаю, пробовал на ARM7 и AVR Cepгeй Бopщ(2006 знак., 12.11.2010 13:22 - 13:33)
- У меня еще вот вопрос - в проекте где мы вызываем свою внешнюю функцию, нужно ли как-то расписывать секцию в линкерном скрипте для той области флеша где эта функция расположена? Или действительно достаточно указать абсолютный адрес этой функции и dimasusl(5 знак., 13.11.2010 16:37)
- Результат arm-none-eabi-objdump -hSC для моего elf dimasusl(517 знак., 13.11.2010 15:20)
- Не спец в асме кортексов, но результат похож на правду. Команда ведь правильная получилась? - Cepгeй Бopщ(13.11.2010 17:13)
- В том то и дело что выглядит правильно, но при дебаге в окне дисассемблера строках этих вызовах стоит "?Undefined". dimasusl(40 знак., 13.11.2010 17:41)
- Так это в эмуляторе. Vallav(161 знак., 15.11.2010 08:31)
- При чем тут эмулятор, если я прицепляюсь через jtag к плате? dimasusl(355 знак., 15.11.2010 12:16)
- Так я отвечал на Ваше - Vallav(331 знак., 15.11.2010 13:55)
- Попробуйте спросить на electronix.ru. Там спецов по кортексам гораздо больше. - Cepгeй Бopщ(15.11.2010 13:11)
- При чем тут эмулятор, если я прицепляюсь через jtag к плате? dimasusl(355 знак., 15.11.2010 12:16)
- Ну хорошо, а если в скрипте завести отдельную секцию по нужному адресу, положить туда пустую функцию и сравнить коды команд вызова? - Cepгeй Бopщ(13.11.2010 18:55)
- Это я попробую. dimasusl(810 знак., 13.11.2010 20:15)
- Так это в эмуляторе. Vallav(161 знак., 15.11.2010 08:31)
- В том то и дело что выглядит правильно, но при дебаге в окне дисассемблера строках этих вызовах стоит "?Undefined". dimasusl(40 знак., 13.11.2010 17:41)
- Не спец в асме кортексов, но результат похож на правду. Команда ведь правильная получилась? - Cepгeй Бopщ(13.11.2010 17:13)
- С Кортексами пока не работаю, пробовал на ARM7 и AVR Cepгeй Бopщ(2006 знак., 12.11.2010 13:22 - 13:33)
- Спасибо, коротко и ясно. - dimasusl(11.11.2010 15:53)
- В общем, на форуме NXP мне объяснили где загвоздка. Фактически я пытался вызвать функцию через ее указатель. Чтобы этот код, скомпиленный в gcc, заработал на кортексе, нужно добавить следующее: dimasusl(674 знак., 17.11.2010 10:47)