|
GCC ARM - не имплементируются функции SIN, COS, arm-none-eabi |
|
|
|
Oct 1 2017, 07:34
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Здравствуйте. Скачал и поставил, затем ребутнул (для переменных окружения) GCC-тулчейн: gcc-arm-none-eabi-6-2017-q2-update-win32.exe Затем написал программу тект ниже: Код #include <math.h>
float a=1.2F; float b=3.21F; float c=0.0F;
void main(void) { c=sin(a+b); b=cos(a+c); } Построил бинарник и все необходимые файлы командами: Код arm-none-eabi-gcc -std=c99 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv4 -c fpu.c -o fpu.elf -lm arm-none-eabi-objdump -D fpu.elf > fpu.asm arm-none-eabi-objcopy -O binary fpu.elf fpu.bin При просмотре листинга видно, что функции sin( ) и cos( ) НЕ ИМПЛЕМЕНТИРОВАЛИСЬ, вместо них стоит переход: Код 18: e3403000 movt r3, #0 1c: edd37a00 vldr s15, [r3] 20: ee777a27 vadd.f32 s15, s14, s15 24: eef70ae7 vcvt.f64.f32 d16, s15 28: eeb00b60 vmov.f64 d0, d16 2c: ebfffffe bl 0 <sin> ----------------------------- !!! нет вызова 30: eef00b40 vmov.f64 d16, d0 34: eef77be0 vcvt.f32.f64 s15, d16 38: e3003000 movw r3, #0 3c: e3403000 movt r3, #0 40: edc37a00 vstr s15, [r3] 44: e3003000 movw r3, #0 48: e3403000 movt r3, #0 4c: ed937a00 vldr s14, [r3] 50: e3003000 movw r3, #0 54: e3403000 movt r3, #0 58: edd37a00 vldr s15, [r3] 5c: ee777a27 vadd.f32 s15, s14, s15 60: eef70ae7 vcvt.f64.f32 d16, s15 64: eeb00b60 vmov.f64 d0, d16 68: ebfffffe bl 0 <cos> ----------------------------- !!! нет вызова Других тулчейнов нет, пробовал soft-fpu, ничего не меняется, функции из math.h не имплементируются вообще! Залез в папки тулчейна, так там libm.a несколько штук: ...\GCCARM\arm-none-eabi\lib\libm.a ...\GCCARM\arm-none-eabi\lib\thumb\libm.a ...\GCCARM\arm-none-eabi\lib\thumb\v7-ar\libm.a ...\GCCARM\arm-none-eabi\lib\thumb\v7-ar\fpv3\hard\libm.a ...\GCCARM\arm-none-eabi\lib\hard\libm.a У меня нет слов, одни эмоции (касаемо GCC тулчейна)! Помогите плиз, нужен хардварный синус/косинус для ядра Cortex-A7, VFPv4 или NEON - для floating point, как решить проблему?
|
|
|
|
|
 |
Ответов
|
Oct 3 2017, 11:01
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!) Можно мои 5 коп добавить? Спасибо (; Не буду про фьюзы… Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Oct 3 2017, 12:03
|

Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126

|
Цитата(Эдди @ Oct 3 2017, 11:54)  Что за ерунда? Я, например, вообще не использую ни JTAG, ни SWD — все STM32 шью через бутлоадер. Это намного удобней, да и не нужно лишних устройств присобачивать; а висящий на UART1 переходник после прошивки используется для отладки. SWD очень сильно помог мне, когда нужно было сдампить большой буфер данных из памяти контроллера, которые создал кодек речи. По UART будет дольше и это - дополнительная микросхема согласования лог. уровней + терминал. А через SWD - три проводка + встроенный программатор/отладчик на плате STM Discovery на USB + Utilites + окно в котором всё видно! Цитата(Эдди @ Oct 3 2017, 11:59)  Под STM32F0, кстати, есть уже готовые сниппеты от самих ST. Жаль, что под другие линейки они не потрудились подобное накатать. А вот под V3s нет  Только в составе Линукса  Поэтому лепить своё с оглядкой на Линукс  Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке! Ну разве что когда код в RAM исполнять - не забыть раздефайнить перенос таблицы векторов прерываний (если они используются) Ну и там же CMSYS со всеми объявленными хедерами - регистры, константы, битовые маски. А HAL + пресеты STM Cube - зло ))) Разве что для раскидки пинов использовать, куб идёт только в блевистах при установленной JRE, поэтому приходится идти в гости к знакомым. Тяжела нынче жизнь аппаратчика  Приходится искать альтернативные пути, не нарушая свои принципы...
Сообщение отредактировал __inline__ - Oct 3 2017, 12:14
|
|
|
|
|
Oct 3 2017, 12:57
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(__inline__ @ Oct 3 2017, 15:03)  Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке! Я эту фигню не использую, во-первых, линуксоид, во-вторых, зачем мне под виртуалкой гонять ворованный софт, когда есть родное? IDE — geany (правда, я его тупо как редактор использую), а дальше все при помощи make делается (от компиляции до загрузки). Цитата(Forger @ Oct 3 2017, 15:09)  Вот уж действительно заняться нечем  Для STM8 это был единственный вариант, т.к. готового заголовочного файла в нормальном формате со всеми дефайнами и под лицензией, совместимой с GPLv3, я не нашел! Цитата(Forger @ Oct 3 2017, 15:24)  Дык, в штатном дейфайне на STM это уже сделано, через структуры. Что такое "штатный дефайн STM"? Не встречал. Скажем, под F0 я выдрал нужное из сниппетов от ST. А вот когда опять вернусь к F1, придется, видимо, из opencm3 выдирать. Цитата(__inline__ @ Oct 3 2017, 15:30)  Структурное описание регистров порой генерит слишком большой код Я тоже так думал, пока не проверил. Код получается абсолютно таким же, как и без структур. Все раскрывается на стадии препроцессора gcc. Конечно, выглядит по-ублюдски, но сойдет. P.S. А вот под STM8 так делать нельзя, потому как sdcc не оптимизирует код вообще никак! А кроме sdcc компиляторов под STM8 нет, к сожалению. Благо, этот МК не используется настолько часто, как более приятные STM32.
Сообщение отредактировал Эдди - Oct 3 2017, 12:58
|
|
|
|
|
Oct 4 2017, 07:48
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Эдди @ Oct 4 2017, 09:26)  мерзопакостную мастдайную ворованную дрянь! У вас есть рабочая сборка под кортекс А9 и А7 на каком-нить эклипсе с вашим любимым гнушным компилятором, чтоб я смог установить ее к себе на машину (32х битную, если что) и не плясать неделями с бубном чтоб ее настроить, прописать кучу конфигов, либ и пр...? Может поделитесь? А если нет - то оставьте это мнение при себе, в моем понимании инструмент должен быть прежде всего удобным, чтоб человек мог заняться собственно программированием своей задачи, а не мучиться в настройках этого инструмента.
Сообщение отредактировал mantech - Oct 4 2017, 07:50
|
|
|
|
Сообщений в этой теме
__inline__ GCC ARM - не имплементируются функции SIN, COS Oct 1 2017, 07:34 scifi Цитата(__inline__ @ Oct 1 2017, 10:34) Ск... Oct 1 2017, 08:00 __inline__ Цитата(scifi @ Oct 1 2017, 08:00) Попробу... Oct 1 2017, 08:40  scifi Вот здесь разъясняют. Видимо, вам надо arm-eabihf,... Oct 1 2017, 08:45 __inline__ тот тулчейн что я скачал в ридмишнике написано :
... Oct 1 2017, 08:47 scifi Цитата(__inline__ @ Oct 1 2017, 11:47) Я ... Oct 1 2017, 08:49  __inline__ Цитата(scifi @ Oct 1 2017, 08:49) Здесь н... Oct 1 2017, 08:57   aaarrr Цитата(__inline__ @ Oct 1 2017, 11:57) Ha... Oct 1 2017, 09:06    __inline__ Цитата(aaarrr @ Oct 1 2017, 09:06) Шок-аб... Oct 1 2017, 09:18     scifi Цитата(__inline__ @ Oct 1 2017, 12:18) Су... Oct 1 2017, 09:20      __inline__ Цитата(scifi @ Oct 1 2017, 09:20) Хорошо,... Oct 1 2017, 09:34       scifi Цитата(__inline__ @ Oct 1 2017, 12:34) По... Oct 1 2017, 09:49        __inline__ Цитата(scifi @ Oct 1 2017, 09:49) Короче,... Oct 1 2017, 09:59     mantech Цитата(__inline__ @ Oct 1 2017, 12:18) Ме... Oct 1 2017, 12:46      __inline__ Цитата(mantech @ Oct 1 2017, 12:46) 1) То... Oct 1 2017, 12:53       HardEgor Цитата(__inline__ @ Oct 1 2017, 19:53) Мн... Oct 1 2017, 14:34       _3m Цитата(__inline__ @ Oct 1 2017, 15:53) 2)... Oct 2 2017, 07:01        __inline__ Цитата(_3m @ Oct 2 2017, 07:01) Попробуйт... Oct 2 2017, 11:05       scifi Цитата(__inline__ @ Oct 1 2017, 15:53) Ве... Oct 2 2017, 11:46        demiurg_spb Чтобы нормально разобраться в принципах работы gcc... Oct 2 2017, 12:08       Forger Цитата(__inline__ @ Oct 1 2017, 15:53) ст... Oct 2 2017, 13:36        scifi Цитата(Forger @ Oct 2 2017, 16:36) Короче... Oct 2 2017, 14:02         Forger Цитата(scifi @ Oct 2 2017, 17:02) С точки... Oct 2 2017, 15:25          mantech Цитата(Forger @ Oct 2 2017, 18:25) Прокур... Oct 2 2017, 15:29           Forger Цитата(mantech @ Oct 2 2017, 18:29) В кон... Oct 2 2017, 15:45            jcxz Цитата(Forger @ Oct 2 2017, 22:45) Контор... Oct 2 2017, 17:35             Forger Цитата(jcxz @ Oct 2 2017, 20:35) Странная... Oct 2 2017, 17:42            mantech Цитата(Forger @ Oct 2 2017, 18:45) ... ар... Oct 2 2017, 19:44 scifi Цитата(__inline__ @ Oct 1 2017, 11:57) Ку... Oct 1 2017, 08:59 __inline__ Тут пишут https://habrahabr.ru/post/319736/ , что:... Oct 1 2017, 09:11 scifi Цитата(__inline__ @ Oct 1 2017, 10:34) По... Oct 1 2017, 09:14 __inline__ скачал gcc-linaro-6.3.1-2017.05-i686_arm-eabi.tar.... Oct 1 2017, 09:49 scifi Цитата(__inline__ @ Oct 1 2017, 12:49) ск... Oct 1 2017, 09:52 Genadi Zawidowski А с каких пор в этих процессорах хардварный синус ... Oct 1 2017, 10:00 __inline__ Цитата(Genadi Zawidowski @ Oct 1 2017, 10... Oct 1 2017, 10:03  Genadi Zawidowski Цитата(__inline__ @ Oct 1 2017, 13:03) За... Oct 1 2017, 10:09   __inline__ Цитата(Genadi Zawidowski @ Oct 1 2017, 10... Oct 1 2017, 10:14    scifi Цитата(__inline__ @ Oct 1 2017, 13:14) Кс... Oct 1 2017, 10:26   __inline__ Цитата(Genadi Zawidowski @ Oct 1 2017, 10... Oct 1 2017, 10:23 Genadi Zawidowski мэйк у меня от Atmel-овского тулчейна есть... можн... Oct 1 2017, 10:22 __inline__ Цитата(Genadi Zawidowski @ Oct 1 2017, 10... Oct 1 2017, 10:31 Genadi Zawidowski ЦитатаЗатем написал программу тект ниже
С хорошей ... Oct 1 2017, 10:33 jcxz Цитата(__inline__ @ Oct 1 2017, 14:34) Пр... Oct 1 2017, 11:59 __inline__ Цитата(jcxz @ Oct 1 2017, 11:59) Эмоции н... Oct 1 2017, 12:42  jcxz Цитата(__inline__ @ Oct 1 2017, 19:42) Ну... Oct 1 2017, 14:36 __inline__ Не переживайте!
Освоение GCC в процессе! ... Oct 2 2017, 12:23 __inline__ Поставил ARM DS-5 из дебрей интернета, так оказало... Oct 2 2017, 14:20 __inline__ С удовольствием девелопил бы и на Windows 98, но е... Oct 3 2017, 01:29 Forger Цитата(__inline__ @ Oct 3 2017, 04:29) мо... Oct 3 2017, 05:58 HardEgor Цитата(__inline__ @ Oct 3 2017, 08:29) С ... Oct 3 2017, 06:30 mantech Цитата(__inline__ @ Oct 3 2017, 04:29) С ... Oct 3 2017, 07:22  Forger Цитата(mantech @ Oct 3 2017, 10:22) В ход... Oct 3 2017, 07:33   mantech Цитата(Forger @ Oct 3 2017, 10:33) Уверен... Oct 3 2017, 08:13    __inline__ Цитата(mantech @ Oct 3 2017, 08:13) Хихик... Oct 3 2017, 08:21     mantech Цитата(__inline__ @ Oct 3 2017, 11:21) JA... Oct 3 2017, 08:25 Эдди Эти ваши си-диезы, го и прочий шлак до сих пор так... Oct 3 2017, 07:52 Forger Цитата(Эдди @ Oct 3 2017, 10:52) Эти ваши... Oct 3 2017, 08:01  mantech Цитата(Forger @ Oct 3 2017, 11:01) Ну-ну ... Oct 3 2017, 08:16   Forger Цитата(mantech @ Oct 3 2017, 11:16) Писат... Oct 3 2017, 08:23    Эдди Цитата(Forger @ Oct 3 2017, 11:23) Для ... Oct 3 2017, 11:52     __inline__ Цитата(Эдди @ Oct 3 2017, 11:52) Лучше са... Oct 3 2017, 11:56 __inline__ Цитата(Эдди @ Oct 3 2017, 07:52) Эти ваши... Oct 3 2017, 08:14 __inline__ ЦитатаОднако, в настоящее время без интернета (вых... Oct 3 2017, 08:00 HardEgor Цитата(__inline__ @ Oct 3 2017, 15:00) Ну... Oct 3 2017, 09:15 one_eight_seven ЦитатаПисателям игрушек для веба это сложно понять... Oct 3 2017, 09:20 __inline__ ЦитатаЭто уровень мелких микроконтроллеров, на бол... Oct 3 2017, 10:07 HardEgor Цитата(__inline__ @ Oct 3 2017, 17:07) Та... Oct 3 2017, 10:37  __inline__ Цитата(HardEgor @ Oct 3 2017, 10:37) Хе-х... Oct 3 2017, 11:52 _3m Цитата(__inline__ @ Oct 3 2017, 13:07) Ну... Oct 3 2017, 10:48  __inline__ Цитата(_3m @ Oct 3 2017, 10:48) Легко... Oct 3 2017, 10:52 one_eight_seven ЦитатаЭто лишь ваше мнение, которое не является пр... Oct 3 2017, 10:14 Forger Цитата(Obam @ Oct 3 2017, 14:01) Ошибочно... Oct 3 2017, 11:06  __inline__ Цитата(Forger @ Oct 3 2017, 11:06) Если J... Oct 3 2017, 11:10   Obam Цитата(__inline__ @ Oct 3 2017, 15:10) ЕМ... Oct 3 2017, 11:31  Эдди Цитата(Forger @ Oct 3 2017, 14:06) А вот ... Oct 3 2017, 11:59   Forger Цитата(Эдди @ Oct 3 2017, 14:59) Это как?... Oct 3 2017, 12:09    __inline__ Цитата(Forger @ Oct 3 2017, 12:09) Вот уж... Oct 3 2017, 12:20     Forger Цитата(__inline__ @ Oct 3 2017, 15:20) ка... Oct 3 2017, 12:24    Forger Цитата(Эдди @ Oct 3 2017, 15:57) Что тако... Oct 3 2017, 13:14      Forger Цитата(Эдди @ Oct 4 2017, 09:26) мерзопак... Oct 4 2017, 06:41 __inline__ Кстати, вот список процессов в WinXP от компа с ко... Oct 3 2017, 12:30 Forger Цитата(__inline__ @ Oct 3 2017, 15:26) Об... Oct 3 2017, 12:31 mantech Цитата(__inline__ @ Oct 3 2017, 15:30) Об... Oct 3 2017, 16:44 __inline__ Уважаемые mantech и другие пользователи!
Мне ... Oct 4 2017, 01:40 Эдди Цитата(__inline__ @ Oct 4 2017, 04:40) Да... Oct 4 2017, 05:15 Эдди Эклипсой не пользуюсь. Что нужно, писал у себя в Ж... Oct 4 2017, 08:07 mantech Цитата(Эдди @ Oct 4 2017, 11:07) И да, за... Oct 4 2017, 08:35 Эдди Не представляю себе, даже... Меня домашний компьют... Oct 4 2017, 08:37 mantech Цитата(Эдди @ Oct 4 2017, 11:37) Не предс... Oct 4 2017, 08:54 Forger Цитата(Эдди @ Oct 4 2017, 11:37) Не предс... Oct 4 2017, 09:03  mantech Цитата(Forger @ Oct 4 2017, 12:03) Поэтом... Oct 4 2017, 09:09   Forger Цитата(mantech @ Oct 4 2017, 12:09) Никог... Oct 4 2017, 09:10 Эдди ОК, все равно мне никогда психологию вендузятников... Oct 4 2017, 09:03
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|