1.Keil 環(huán)境下使用 FPU 的方法
GD現(xiàn)有的M4內(nèi)核MCU 均支持FPU,以下例子以Keil 為環(huán)境參考,進(jìn)行代碼修改和設(shè)置界面的配置(同理IAR的設(shè)置也是類似)。

1.在選項中找到上述的頁面,選擇使用use single precision。以下使用的是KEIL5的編譯器,其他版本的也是類似。

2.使用F3系列,需要加入兩條語句
在gd32f3xx.h中加入#define __FPU_PRESENT 1

在system_gd32f30x.c中的SystemInit()中加入
/ FPU settings / //如果庫中沒有這條語句,就需要加上
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif
如下圖所示

使用F4系列 在gd32f4xx.h中加入#define __FPU_PRESENT 1

- 打開魔法棒,在 C/C++ 選項卡處添加宏定義 __TARGET_FPU_VFP 使用 FPU 單元。

4.重新編譯下載燒錄即可。
5.檢查FPU是否打開。
a在jlink調(diào)試控制界面下,輸入語句
mem32 0XE000ED88 1
具體看下圖,得到為00F0 0000的值,證明FPU已經(jīng)開啟。

b.在GD link的調(diào)試下
在進(jìn)入仿真階段后,

點擊下方memory ,在address 中輸入0XE000ED88

出現(xiàn)上述圈中的詞證明FPU已經(jīng)打開。
2. Embedded Builder 環(huán)境下使用 FPU 的方法
- 在gd32f4xx.h中加入#define __FPU_PRESENT 1的宏

- 在工程的 properties 里添加預(yù)編譯宏 __VFP_FP__

- 選擇浮點運算類型及VFP架構(gòu)

- 在core_cm4.h文件中確認(rèn)FPU使能

- 在system_gd32f4xx.c中的SystemInit()中加入下述語句。
/ FPU settings / //如果庫中沒有這條語句,就需要加上
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif

- 用 Jlink 檢查 FPU 是否打開的方法如前文所述,在此便不贅述。
本教程由GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)
-
單片機
+關(guān)注
關(guān)注
6067文章
44982瀏覽量
650312 -
Embedded
+關(guān)注
關(guān)注
0文章
50瀏覽量
23025 -
keil
+關(guān)注
關(guān)注
69文章
1223瀏覽量
169568 -
FPU
+關(guān)注
關(guān)注
0文章
45瀏覽量
22051 -
Jlink
+關(guān)注
關(guān)注
6文章
113瀏覽量
38613
發(fā)布評論請先 登錄
GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(12)FMC 模塊介紹

《GD32 MCU原理及固件庫開發(fā)指南》+讀后感
兆易創(chuàng)新GD32 MCU選型手冊,適用于GD32全系列MCU
不同型號的GD32 MCU如何區(qū)分?

【GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(1)使用Keil開發(fā)GD32

【GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(2)使用 IAR 開發(fā) GD32

【GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(3)使用 Embedded Builder 開發(fā) GD32

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(3)脫機燒錄

【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

【GD32 MCU入門教程】GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項

評論