1.Keil 環(huán)境下使用 FPU 的方法
GD現(xiàn)有的M4內(nèi)核MCU 均支持FPU,以下例子以Keil 為環(huán)境參考,進(jìn)行代碼修改和設(shè)置界面的配置(同理IAR的設(shè)置也是類似)。
1.在選項(xiàng)中找到上述的頁面,選擇使用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++ 選項(xiàng)卡處添加宏定義 __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)入仿真階段后,
點(diǎ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__
- 選擇浮點(diǎn)運(yùn)算類型及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)
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44378瀏覽量
628540 -
Embedded
+關(guān)注
關(guān)注
0文章
43瀏覽量
22166 -
keil
+關(guān)注
關(guān)注
68文章
1207瀏覽量
166187 -
FPU
+關(guān)注
關(guān)注
0文章
41瀏覽量
21212 -
Jlink
+關(guān)注
關(guān)注
5文章
111瀏覽量
37520
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論