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

 
 
> GCC ARM - не имплементируются функции SIN, COS, arm-none-eabi
__inline__
сообщение Oct 1 2017, 07:34
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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, как решить проблему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Obam
сообщение Oct 3 2017, 11:01
Сообщение #2


Знающий
****

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



Цитата
Ну и как можно спалить чип неверной записью в регистры? (про порты ввода/вывода, фьюзы и ПЛИСы - не рассказывать!)

Можно мои 5 коп добавить? Спасибо (;
Не буду про фьюзы…
Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 11:54
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Obam @ Oct 3 2017, 14:01) *
Ошибочно отключенный (неверной записью в регистры) JTAG - это всё равно что спаленный чип (;

Что за ерунда? Я, например, вообще не использую ни JTAG, ни SWD — все STM32 шью через бутлоадер. Это намного удобней, да и не нужно лишних устройств присобачивать; а висящий на UART1 переходник после прошивки используется для отладки.
Go to the top of the page
 
+Quote Post
__inline__
сообщение Oct 3 2017, 12:03
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 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 нет sm.gif
Только в составе Линукса sm.gif
Поэтому лепить своё с оглядкой на Линукс biggrin.gif

Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке!
Ну разве что когда код в RAM исполнять - не забыть раздефайнить перенос таблицы векторов прерываний (если они используются)

Ну и там же CMSYS со всеми объявленными хедерами - регистры, константы, битовые маски.

А HAL + пресеты STM Cube - зло ))) Разве что для раскидки пинов использовать, куб идёт только в блевистах при установленной JRE, поэтому приходится идти в гости к знакомым.
Тяжела нынче жизнь аппаратчика sm.gif Приходится искать альтернативные пути, не нарушая свои принципы...

Сообщение отредактировал __inline__ - Oct 3 2017, 12:14
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 3 2017, 12:57
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(__inline__ @ Oct 3 2017, 15:03) *
Для STM32F... вообще проблем быть не должно: Keil ARM генерит достаточно внятный стартап с пресетами + куча статей на русском языке!

Я эту фигню не использую, во-первых, линуксоид, во-вторых, зачем мне под виртуалкой гонять ворованный софт, когда есть родное? IDE — geany (правда, я его тупо как редактор использую), а дальше все при помощи make делается (от компиляции до загрузки).

Цитата(Forger @ Oct 3 2017, 15:09) *
Вот уж действительно заняться нечем cranky.gif

Для 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
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 4 2017, 05:28
Сообщение #6


Гуру
******

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



Цитата(Эдди @ Oct 3 2017, 19:57) *
А кроме sdcc компиляторов под STM8 нет, к сожалению.

Не надо ля-ля. Есть IAR.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Oct 4 2017, 06:26
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(jcxz @ Oct 4 2017, 08:28) *
Не надо ля-ля. Есть IAR.

Я говорю про свободные компиляторы, а не мерзопакостную мастдайную ворованную дрянь!
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 4 2017, 07:48
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Эдди @ Oct 4 2017, 09:26) *
мерзопакостную мастдайную ворованную дрянь!


У вас есть рабочая сборка под кортекс А9 и А7 на каком-нить эклипсе с вашим любимым гнушным компилятором, чтоб я смог установить ее к себе на машину (32х битную, если что) и не плясать неделями с бубном чтоб ее настроить, прописать кучу конфигов, либ и пр...? Может поделитесь? laughing.gif
А если нет - то оставьте это мнение при себе, в моем понимании инструмент должен быть прежде всего удобным, чтоб человек мог заняться собственно программированием своей задачи, а не мучиться в настройках этого инструмента.

Сообщение отредактировал mantech - Oct 4 2017, 07:50
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- __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 страниц V   1 2 >


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:12
Рейтинг@Mail.ru


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