Виж темите без отговор | Виж активните теми
Дата и час: Пет Мар 29, 2024 6:56 am
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Автор |
Съобщение |
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 11:32 am Мнения: 7878 Местоположение: София
|
FPU в STM32F4
Дали поддръжката на FPU-то от GCC е автоматична, в момента, в който декларирам нещо като float? С други думи, ако напиша някъде ще бъде ли свършено от FPU-то или трябва нещо допълнително да му се бае?
|
Вто Мар 05, 2019 10:49 am |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4671
|
Re: FPU в STM32F4
не съм много запознат с ST, но по принцип "баенето" е в старт-ъпа на процесора и съответно дефиниране на Foat ABI & Float Type .... -mfloat-abi=softfp -mfpu=vfp
_________________ main[-1u]={1};
|
Вто Мар 05, 2019 11:53 am |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: FPU в STM32F4
Де да беше толкова просто. Много зависи от средата / компилатора и ОС-а (ако има такъв). На компилатора трябва изрично да му кажеш с ключове, че искаш да ползваш FPU инструкции. При мен примерно (GCC) е нещо от сорта: -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant Ако имаш прекомпилиран код/библиотеки, то те трябва също да са прекомпилирани за FPU подръжка. Това е лесното. Сложното е, че в кода трябва да се съобразяваш с FPU-то. Например при прекъсвания/таск суитч трябва да му пазиш контекста. Ако имаш ОС, той би трябвало от някъде да може да се включва на такъв режим. И да имаш предвид, че на С трябва изрично да му указваш константите като float. Например "3.14f". Пропуснеш ли "f", ще ти я шибне double и пак няма да ползва FPU-то за аритметика.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Вто Мар 05, 2019 12:49 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: FPU в STM32F4
Опциите на GCC общо взето указват какви инструкции *може* да се ползват и евентуално abi-то за допълнителни типове и начина на подаването им като параметри. GCC обаче не се занимава с математиките на ниско ниво. Това е работа на стандартните библиотеки (ако не са забранени през опциите). Има различни версии на стандартните библиотеки, обикновено се ползва newlib, но и той също има версии и настройки. Така че какво точно ще ти се сервира зависи от това как е сглобен конкретния тулчейн. Сега не знам дали си ги пооправили, но АРМ нямат никакъв съпорт и старите версии на newlib и изобщо GCC бяха на плачевно ниво. За разлика от MIPS например. Аз затова съм си изключил стандартните библиотеки тотално и не ги следя. Във всеки случай най-чисто е просто да провериш какво ти генерира като код
|
Вто Мар 05, 2019 1:38 pm |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: FPU в STM32F4
Леко около темата - виж Atollic TrueStudio - безплатен е и откъм настройки на проект, опции и т.н. е лесен за ползване.
|
Вто Мар 05, 2019 2:55 pm |
|
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 11:32 am Мнения: 7878 Местоположение: София
|
Re: FPU в STM32F4
| | | | Цецо написа: Де да беше толкова просто. Много зависи от средата / компилатора и ОС-а (ако има такъв). На компилатора трябва изрично да му кажеш с ключове, че искаш да ползваш FPU инструкции. При мен примерно (GCC) е нещо от сорта: -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant Ако имаш прекомпилиран код/библиотеки, то те трябва също да са прекомпилирани за FPU подръжка. Това е лесното. Сложното е, че в кода трябва да се съобразяваш с FPU-то. Например при прекъсвания/таск суитч трябва да му пазиш контекста. Ако имаш ОС, той би трябвало от някъде да може да се включва на такъв режим. И да имаш предвид, че на С трябва изрично да му указваш константите като float. Например "3.14f". Пропуснеш ли "f", ще ти я шибне double и пак няма да ползва FPU-то за аритметика. | | | | |
Тоест, искаш да кажеш, че е реализирано като x86/x87, копроцесора си е съвсем отделно нещо със собствени инструкции и ако ти трябва да сметнеш нещо, му предаваш флоу-а и контрола и после той като свърши се връща в изходната точка?
|
Вто Мар 05, 2019 3:57 pm |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: FPU в STM32F4
Нямам идея, в ония време пари за 387/487 нямах .
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Вто Мар 05, 2019 4:09 pm |
|
|
bobihot
Ранг: Форумен бог
Регистриран на: Сря Фев 13, 2013 2:35 pm Мнения: 1748
|
Re: FPU в STM32F4
|
Вто Мар 05, 2019 10:59 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|