Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
FPU в STM32F4 http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16388 |
Страница 1 от 1 |
Автор: | Реконструктор [ Вто Мар 05, 2019 10:49 am ] | |||||||||
Заглавие: | FPU в STM32F4 | |||||||||
Дали поддръжката на FPU-то от GCC е автоматична, в момента, в който декларирам нещо като float? С други думи, ако напиша някъде
ще бъде ли свършено от FPU-то или трябва нещо допълнително да му се бае? |
Автор: | TheWizard [ Вто Мар 05, 2019 11:53 am ] |
Заглавие: | Re: FPU в STM32F4 |
не съм много запознат с ST, но по принцип "баенето" е в старт-ъпа на процесора и съответно дефиниране на Foat ABI & Float Type .... -mfloat-abi=softfp -mfpu=vfp |
Автор: | Цецо [ Вто Мар 05, 2019 12:49 pm ] | ||||||||||||||||||
Заглавие: | Re: FPU в STM32F4 | ||||||||||||||||||
Де да беше толкова просто. Много зависи от средата / компилатора и ОС-а (ако има такъв). На компилатора трябва изрично да му кажеш с ключове, че искаш да ползваш FPU инструкции. При мен примерно (GCC) е нещо от сорта: -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant Ако имаш прекомпилиран код/библиотеки, то те трябва също да са прекомпилирани за FPU подръжка. Това е лесното. Сложното е, че в кода трябва да се съобразяваш с FPU-то. Например при прекъсвания/таск суитч трябва да му пазиш контекста. Ако имаш ОС, той би трябвало от някъде да може да се включва на такъв режим. И да имаш предвид, че на С трябва изрично да му указваш константите като float. Например "3.14f". Пропуснеш ли "f", ще ти я шибне double и пак няма да ползва FPU-то за аритметика. |
Автор: | miro_atc [ Вто Мар 05, 2019 1:38 pm ] |
Заглавие: | Re: FPU в STM32F4 |
Опциите на GCC общо взето указват какви инструкции *може* да се ползват и евентуално abi-то за допълнителни типове и начина на подаването им като параметри. GCC обаче не се занимава с математиките на ниско ниво. Това е работа на стандартните библиотеки (ако не са забранени през опциите). Има различни версии на стандартните библиотеки, обикновено се ползва newlib, но и той също има версии и настройки. Така че какво точно ще ти се сервира зависи от това как е сглобен конкретния тулчейн. Сега не знам дали си ги пооправили, но АРМ нямат никакъв съпорт и старите версии на newlib и изобщо GCC бяха на плачевно ниво. За разлика от MIPS например. Аз затова съм си изключил стандартните библиотеки тотално и не ги следя. Във всеки случай най-чисто е просто да провериш какво ти генерира като код |
Автор: | gicho [ Вто Мар 05, 2019 2:55 pm ] |
Заглавие: | Re: FPU в STM32F4 |
Леко около темата - виж Atollic TrueStudio - безплатен е и откъм настройки на проект, опции и т.н. е лесен за ползване. |
Автор: | Реконструктор [ Вто Мар 05, 2019 3:57 pm ] | |||||||||||||||||||||||||||
Заглавие: | Re: FPU в STM32F4 | |||||||||||||||||||||||||||
Тоест, искаш да кажеш, че е реализирано като x86/x87, копроцесора си е съвсем отделно нещо със собствени инструкции и ако ти трябва да сметнеш нещо, му предаваш флоу-а и контрола и после той като свърши се връща в изходната точка? |
Автор: | Цецо [ Вто Мар 05, 2019 4:09 pm ] |
Заглавие: | Re: FPU в STM32F4 |
Нямам идея, в ония време пари за 387/487 нямах . |
Автор: | bobihot [ Вто Мар 05, 2019 10:59 pm ] | |||||||||
Заглавие: | Re: FPU в STM32F4 | |||||||||
487 беше вграден в 486ДХ |
Страница 1 от 1 | Часовете са според зоната UTC + 1 час [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |