logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[stm32f4] [GCC] - Wymuszenie programowej obsługi floatów

analfabet 06 Sty 2015 23:10 771 2
REKLAMA
  • #1 14301665
    analfabet
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 4
    Witam,

    Chce porównać szybkość wykonywania algorytmu z/bez FPU. Projekt przykładowy Freddiego, kod:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    dla linijki dzielenia widzę w disassembly użycie vldr, vdiv. Chciałbym, żeby kod wynikowy został wygenerowany jak dla np. M3, tzn. zupełnie bez użycie FPU i instrukcji 'v***'. Wyobraźni starczyło mi na zmianę w makefile'u (+ wykomentowanie deklaracji __FPU_PRESENT i __FPU_USED w stm32f4xx.h):
    GLOBAL_DEFS = STM32F4XX \
    __FPU_PRESENT=0 \
    __FPU_USED=0 \
    __SOFTFP__ \


    Wciąż widzę użycie instrukcji 'v***'. Próbowałem też bawić się core_flags, ale nie uzyskałem nic sensownego. Pozostaje przerzucić kod na projekt z M3, czy da się jakoś wymusić programową obsługę floatów?

    Pozdrawiam,
  • REKLAMA
  • Pomocny post
    #2 14302403
    vonar
    Poziom 28  
    Posty: 690
    Pomógł: 151
    Ocena: 30
    W makefile (CORE_FLAGS) usuń -mfpu=fpv4-sp-d16 i zmień -mfloat-abi z hard na soft.
  • #3 14307535
    analfabet
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 4
    Wprawdzie FreeRTOSowy 'port.c' jeszcze chwilę się burzył, ale faktycznie wystarczyła zmiana podanych wyżej flag.

    Dzięki za pomoc!
REKLAMA