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),小伙伴們可以自行測試運算速度差別哦。

關鍵字:Keil GD32 FPU ARM DSP庫
引用地址:
如何使用Keil打開GD32 FPU及使用ARM DSP庫 ?
推薦閱讀最新更新時間:2025-07-03 11:47
【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(1)使用Keil開發GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建議安裝4.74及以上;使用Keil 5建議安裝5.20以上版本(注意:GD32E23x系列必須使用Keil5開發)。 1.1 在Keil4中添加GD32 MCU Device 1.1.1 從GD32官網下載相關系列插件。 下面以GD32F30x為例,在官網上下載MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如圖所示: 1.1.2 雙擊解壓安裝至Keil 4的目錄,一般都會默認選擇,如若同時安裝了Keil 4和Keil 5才需要手動選擇。 1.1.3 安裝成功后,重新打開Keil 4,則可以在File- Device
[單片機]
mini2440-----keil for ARM之中斷一
在篇文章中主要講講調試中斷過程中獲得的知識,也許會對大家有用。 大家應該都知道在使用S3C2440這塊芯片時,有一個十分大的問題,就是對于keil軟件自帶的初始化代碼沒有給全,在初始化代碼中主要做了以下幾件事 可以看出,也就是對I/O口進行了配置,看門狗,時鐘進行了初始化,同時也對內存塊進行了一定的配置,是十分基本的一些初始化,其中對于中斷向量表根本就沒有進行建立,因此如果要用他的文件進行中斷的實驗,必須自己去改動初始化代碼,完成他沒有完成的工作,自己嘗試了一下,沒有成功,因此就對ADS事例程序的初始化代碼進行移植(參看某大神的教程實現,) 一、ARM中斷的執行方式 這里中斷有兩種,一種外部中斷,一種內部中斷,對于兩種中斷稍有
[單片機]
GD32 ADC內部通道采樣異常原因
熟悉GD32的小伙伴都知道,ADC除了可以采集IO口上的電壓外,還有兩個內部通道,分別為內部溫度傳感器通道(ADC0_CH16)和Vrefint通道(ADC0_CH17),其中內部溫度傳感器通道可以采集芯片周圍的溫度(注意,這個溫度通道適用于采集相對溫度,如果用來測試絕對溫度,是有一定的誤差哦),Vrefint是一個穩定的帶隙基準電壓,典型值為1.2V。 有的小伙伴反饋使用這兩個內部通道時,始終得不到轉換數據,那么可能的原因有哪些呢? 原因一: 使用ADC的外部通道即IO電壓時,將IO口配置為模擬模式, 然后配置ADC就可以正常工作了,而由于內部通道不需要配置IO口,所有有的小伙伴就直接將IO口的配置去除,但此時發現
[單片機]
兆易創新GD32 MCU榮獲“中國芯”最佳市場表現產品獎
電子網報道,2017 年10 月 23日昆山,在國家工業和信息化部軟件與集成電路促進中心(簡稱“CSIP”)舉辦的第十二屆“中國芯 ? 新動能”中國集成電路產業促進大會上,北京兆易創新科技股份有限公司(GigaDevice)推出的GD32系列Cortex?-M內核32位通用微控制器產品GD32F130C6T6榮獲“中國芯”最佳市場表現產品獎。? ? 兆易創新GD32 MCU作為中國高性能通用微控制器領域的領跑者,中國第一個推出的Arm? Cortex?-M3及Cortex?-M4 內核通用MCU產品系列,已經發展成為中國32位通用MCU市場的主流之選。并以累計超過1億顆的出貨數量,超過1萬的客戶數量,19個系列300余款產品選擇所
[半導體設計/制造]
兆易創新為GD32 MCU推出全新的GD-Link編程調試工具
? ??
2015年7月21日 ——日前,業界領先的半導體供應商GigaDevice (兆易創新)推出全新的基于ARM? Cortex?-M SWD (Serial Wire Debug)信號接口的USB仿真調試與編程器GD-Link Adapter,適用于GD32 Cortex-M3內核通用32位MCU家族。GD-Link進一步強化了GD32系列微控制器高性能、低成本與易用性的產品優勢與開發生態,并為采用GD32系列MCU進行方案設計和量產燒錄提供了整體解決方案。
?
GD-Link是一個全功能的仿真調試器和編程器,集成了在線仿真、在線編程和脫機燒錄三種主要功能。可通過USB 2.0全速接口連接到電腦主機,標準即插即用
[手機便攜]
Section 1_KEIL5軟件安裝
Section 1_KEIL5軟件安裝 1.KIEL5軟件獲取 2.KEIL5軟件安裝 3.安裝STM32芯片包 4.常見問題 1.KIEL5軟件獲取 2.KEIL5軟件安裝 安裝此軟件時一定要注意幾點: (1)安裝路徑不能帶中文,必須是英文路徑。 (2)安裝目錄不能跟51的KEIL或者KEIL4沖突,三者目錄必須分開。 (3)KEIL5的安裝比起KEIL4多了一個步驟,必須添加芯片包,不然沒法選擇芯片類型。 3.安裝STM32芯片包 和以前安裝KEIL4等軟件不同的是,KEIL5需要單獨安裝芯片包,否則無法選擇芯片類型。STM32芯片包需要去KEIL的官網下載,有F0/1/2/6/4/7這幾個系列,具體下載和安裝哪個系列的包,具
[單片機]
keil項目的調試與編譯
編譯: Translate===編譯單個文件 Build====編譯當前項目,如果該項目先前編譯過1次,并且文件沒有編輯改動,則點擊時不會重新編譯 Rebuild===重新編譯,每點擊一次就重新編譯、鏈接1次 Build Output===編譯結果輸出窗口 Start/Stop Debug Session(圖標::一個放大鏡,鏡上寫著d)===調試按鈕 調試 Run===運行,處于停止狀態才有效 Stop===停止,處于運行狀態才有效 Reset===復位,程序回到最開頭處執行 Serial Windows(圖標::一個窗格上面有個刷子)===串行調試窗口,可以看到從芯片串行
[單片機]
Keil C51單片機變量的使用方法詳細介紹
引言 8051內核單片機是一種通用單片機,在國內占有較大的市場份額。在將C語言用于51內核單片機的研究方面,Keil公司做得最為成功。由于51內核單片機的存儲結構的特殊性,Keil C51中變量的使用與標準C有所不同。正確地使用變量,有利于獲得高效的目標代碼。下面詳細介紹Keil C51中變量的使用方法。 1 CPU存儲結構與變量的關系 變量都需要有存儲空間,存儲空間的不同使得變量使用時的工作效率也不同。 標準C的典型運行環境是8086(含IA-32系列)內核,其存儲結構是CPU內部有寄存器,外部有存儲器,寄存器的訪問速度大大高于存儲器的訪問速度。在標準C中,不加特別定義的變量是放在存儲器中的,使用register可以強制變量
[單片機]