|
我們知道在HC32F460系列芯片當(dāng)中有FPU這個(gè)內(nèi)核模塊但應(yīng)用手冊(cè)當(dāng)中并沒(méi)有寫(xiě)出如何打開(kāi)這個(gè)功能。
可能很多初學(xué)者用不到FPU 但多學(xué)總沒(méi)有壞處。FPU是專(zhuān)門(mén)用于浮點(diǎn)計(jì)算的單元根據(jù)IEEE的浮點(diǎn)標(biāo)準(zhǔn)
原本通用CPU需要3~4個(gè)周期的計(jì)算時(shí)間現(xiàn)在只需要一個(gè)FPU指令就行。在觸摸屏,數(shù)學(xué)函數(shù)運(yùn)算時(shí)特別有用。
download.png (2.47 KB, 下載次數(shù): 90)
下載附件
2022-3-20 17:04 上傳
ok首先我們必須添加arm_math.h這個(gè)官方數(shù)學(xué)庫(kù),如果系統(tǒng)提示沒(méi)有該文件那你必須安裝CMSIS這個(gè)PACK。
這個(gè)CMSIS PACK里面有非常多ARM庫(kù),比如DSP這個(gè)庫(kù)就在其中。因?yàn)槿A大半導(dǎo)體并沒(méi)有為自己的芯片提供DSP庫(kù)
所以我們也只能用CMSIS(ST就自己優(yōu)化過(guò)的DSP庫(kù))并且我們不用擔(dān)心法律問(wèn)題Arm根據(jù)Apache 2.0許可免費(fèi)提供CMSIS 。
接下來(lái)是要添加幾個(gè)全局宏定義主要是為了打開(kāi)預(yù)編譯
K482J{([ZCGJYF8FVUCI(@7.png (14.42 KB, 下載次數(shù): 103)
下載附件
2022-3-20 17:08 上傳
__TARGET_FPU_VFP,__FPU_PRESENT,ARM_MATH_CM4
前面的兩個(gè)宏是關(guān)于FPU開(kāi)啟的后面是官方math庫(kù)開(kāi)啟的,在打開(kāi)編譯FPU開(kāi)關(guān)其實(shí)沒(méi)有必要不過(guò)還是打開(kāi)以防萬(wàn)一。
下載.png (6.47 KB, 下載次數(shù): 87)
下載附件
2022-3-20 17:10 上傳
之后再在 system_hc32f460kcta.c 的系統(tǒng)初始化函數(shù) SystemInit 添加這段代碼.
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 20) | (3UL << 22)); /* set CP10 and CP11 Full Access */
#endif
下載 (1).png (55.24 KB, 下載次數(shù): 93)
下載附件
2022-3-20 17:10 上傳
int32_t main(void)
{
float D = 0.000001;
float C = 0;
while(1)
{
C = D+C;
};
}
接下來(lái)插上仿真器開(kāi)始調(diào)試,這是反匯編的結(jié)果明顯調(diào)用了FPU指令
下載 (2).png (11.53 KB, 下載次數(shù): 104)
下載附件
2022-3-20 17:11 上傳
并且FPU模塊也被塞滿(mǎn)了數(shù)據(jù)。
下面是C的值。
下載 (3).png (3.33 KB, 下載次數(shù): 93)
下載附件
2022-3-20 17:12 上傳
ok實(shí)驗(yàn)已經(jīng)完成,細(xì)心的可能已經(jīng)發(fā)現(xiàn)了這和STM32的開(kāi)啟過(guò)程一樣為什么你還要寫(xiě)?其實(shí)內(nèi)核的東西差不了多少
只是在某平臺(tái)的作者也寫(xiě)了關(guān)于HC32打開(kāi)FPU的話(huà)題但竟然要你開(kāi)VIP才能看我相信我們的壇友也不想花這個(gè)冤枉錢(qián),
于是乎就有了這篇文章。大家可以加我的QQ群375029515一起討論關(guān)于嵌入式的話(huà)題。
下期我們使用HC32F460的ADC功能寫(xiě)一個(gè)K型熱電偶的溫度采集,討論什么是冷端補(bǔ)償和放大電路設(shè)計(jì)。
謝謝大家看到這里!!!
51hei.png (6.19 KB, 下載次數(shù): 88)
下載附件
2022-3-20 17:25 上傳
下面是工程模板:
HC32F460工程模板.zip
(536.35 KB, 下載次數(shù): 28)
2022-3-20 17:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|