GD32目前支持ARM Cortex-M和RISC-V兩種內核系列芯片,其中Cortex-M內核已經支持的有M3、M4、M23、M33、M7,這里面除了M3和M23以外,其他的都帶FPU單元。我們知道,FPU在浮點運算速度上有很大的提升,并且只有帶FPU才可以使用ARM的DSP庫。
現在就以GD32F303為例來教大家在keil中如何打開GD32 FPU以及使用ARM DSP庫的方法。
第一步:在keil-Options-Target中設置Floating Point Hardware為Single Precision(小編用的是Keil5,用Keil4的小伙伴這里應該選為Use FPU)

第二步:工程中定義 __TARGET_FPU_VFP

第三步:打開gd32f30x.h文件,設置 __FPU_PRESENT為1

做完以上三步,可以看到SystemInit函數中的SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));語句從無效變為有效了(實際上這句就是打開FPU單元)。


好了,我們來驗證下FPU是不是被打開了,我們編譯工程并下載到MCU中,在Memory窗口看下0xE000ED88地址的數,如果為0x00F00000,就說明FPU被正確打開了。

下面我們來介紹下如何使用ARM的DSP庫,首先,我們需要兩個文件:arm_cortexM4lf_math.lib 和arm_math.h,GD官方庫是不帶這兩個文件的,小伙伴們可以自行網上下載或者聯系我們提供哦。
第一步:將arm_cortexM4lf_math.lib 加入到工程中

第二步:工程中定義ARM_MATH_CM4

做好這兩步后,就可以使用ARM DSP庫了。調用的方法也很簡單,在需要調用DSP庫的文件中包含頭文件:arm_math.h

然后就可以使用DSP庫中的函數了,比如arm_sin_f32函數,下面分別用math標準庫函數和ARM DSP math庫來計算sin(π/6),小伙伴們可以自行測試運算速度差別哦。

好了,今天的內容就這些,如果還沒有學廢,那就評論區聊聊吧~記得點贊收藏加關注
-
單片機
+關注
關注
6057文章
44806瀏覽量
644047 -
ARM
+關注
關注
134文章
9262瀏覽量
373085 -
keil
+關注
關注
69文章
1217瀏覽量
168429 -
GD32
+關注
關注
7文章
418瀏覽量
24963
發布評論請先 登錄
相關推薦

什么是GD32
GD32芯片包添加步驟有哪些
GD32系列總結
GD32F系列單片機開發總結(二):GD32芯片包添加步驟

GD32和AT32哪個好?
GD32與STM32兼容嗎?
hc32和gd32的區別
【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(1)使用Keil開發GD32

評論