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

 
 
 
Reply to this topicStart new topic
> codesource флаги для cortexm4
sergey sva
сообщение Jan 13 2014, 18:43
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Указываю ключ mcpu-cortexm4, как правильнее настроить fpu hardware или software ?
У cortexm4 встроенный fpu если задать soft то аппаратный fpu не будет использоваться?
В коде используется библиотека math будут функции оптимизироваться под fpu?
Не совсем понимаю объясните плз.
Go to the top of the page
 
+Quote Post
Aaron
сообщение Jan 14 2014, 05:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Взято из readme к тулчейну:
Код
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4                    | armv7e-m |
|(No FP)   |--------------------------------------------|          |
|          | -mthumb -march=armv7e-m                    |          |
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=softfp | armv7e-m |
|(Soft FP) | -mfpu=fpv4-sp-d16                          | /softfp  |
|          |--------------------------------------------|          |
|          | -mthumb -march=armv7e-m -mfloat-abi=softfp |          |
|          | -mfpu=fpv4-sp-d16                          |          |
|----------|--------------------------------------------|----------|
|Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=hard   | armv7e-m |
|(Hard FP) | -mfpu=fpv4-sp-d16                          | /fpu     |
|          |--------------------------------------------|          |
|          | -mthumb -march=armv7e-m -mfloat-abi=hard   |          |
|          | -mfpu=fpv4-sp-d16                          |          |

По поводу использования прекомпилированных библиотек: в зависимости от ключей из таблицы линкер должен сам подхватывать соответствующую стандартную библиотеку.
Аналогично, DSP библиотеки есть прекомпилированные - и надо просто подключать нужную.
arm_cortexM4l_math.lib - No FP
arm_cortexM4lf_math.lib - Soft FP
Если нужен Hard FP, то библиотеку надо компилировать самому из исходников (по крайней мере у меня нету под hard FP либы готовой).

По поводу использования soft/hard - вы не совсем верно понимаете. Под этими словами подразумевается способ обращения к регистрам FPU. Могу немного ошибаться в теории, но примерно это означает следующее: soft FP будет использовать регистры общего назначения для доступа к FPU, а hard FP - специально выделенные для этого регистры. В обсновном в интернете и в примерах почему-то используют soft FP, сравнения производительности я не делал между этими режимами, так что подробнее прокомментировать не смогу.

Сообщение отредактировал Aaron - Jan 14 2014, 06:04
Go to the top of the page
 
+Quote Post
neiver
сообщение Jan 14 2014, 08:44
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



soft/hard отличаются только способом передачи float аргументов и возвратом значений в/из функции. В случае soft FP аргументы передаются также как и целочисленные - через регистры и стек если регистров не хватило, результат возвращается в r0. При этом вычисления всё равно идут в регистрах мат сопроцессора. Соответственно параметры функции надо скопировать из РОН в регистры сопроцессора, потом обратно.
Hard FP - все float переменные передаются непосредственно в регистрах сопроцессора.
Hard FP чуток побыстрее. У меня в текущем проекте используется много метематики с плавающей точкой, общая разница между soft/hard была около 10%. Для меня это было критично и определило выбор Hard FP.
Soft FP зато совместим с либами скомпилированными без использования мат. сопроцессора.
Go to the top of the page
 
+Quote Post
Aaron
сообщение Jan 14 2014, 08:52
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



О, хорошее объяснение sm.gif Надо тоже взять на заметку.
Go to the top of the page
 
+Quote Post

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

 


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


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