關(guān)于ARM MDK使用STM32F4xx 硬件浮點單元的話題_第1頁
關(guān)于ARM MDK使用STM32F4xx 硬件浮點單元的話題_第2頁
關(guān)于ARM MDK使用STM32F4xx 硬件浮點單元的話題_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

關(guān)于ARMMDK使用STM32F4xx硬件浮點單元的話題一.前言

有工程師反應(yīng)說Keil下無法使用STM32F4xx硬件浮點單元,導(dǎo)致當(dāng)運算浮點時運算時間過長,還有一些人反應(yīng)不知如何使用芯片芯片內(nèi)部的復(fù)雜數(shù)學(xué)運算,比如三角函數(shù)運算。針對這個部分本文將詳細介紹如何使用硬件浮點單元以及相關(guān)數(shù)學(xué)運算。

二.問題產(chǎn)生原因

1.------對于KeilMDKVersion5版本,編譯器已經(jīng)完全支持STM32F4xx的FPU(浮點運算單元),可以直接使用芯片內(nèi)部的浮點運算單元。2.------對于KeilMDKVersion4版本,高版本v4,比如當(dāng)前keil官網(wǎng)可下載的v4.74.0.0版本也已經(jīng)支持FPU,可以直接使用芯片內(nèi)部浮點運算。但如果使用低版本v4,如v4.23.0.0版本,則需要對軟件進行相應(yīng)設(shè)置。

三.如何解決問題

1.查看手頭Keil版本是否支持FPU,最簡單辦法是進入Keil調(diào)試界面直接查看0xE000ED88地址單元數(shù)據(jù),如果為0x00F00000,則說明已經(jīng)支持FPU,如下圖所示:2.如果0xE000ED88地址數(shù)據(jù)為0x00000000,則需要做如下操作:

a.在system_stm32f4xx.c文件中的systeminit()函數(shù)里面添加如下代碼:/*FPUsettings------------------------------------------------------------*/

#if(__FPU_PRESENT==1)&&(__FPU_USED==1)

SCB->CPACR|=((3UL<<10*2)|(3UL<<11*2));/*setCP10andCP11FullAccess*/

#endifb.在工程選項(Project->Optionsfortarget"XXXX")中的C/C++選項卡的Define中加入

如下的語句,見下圖所示:__FPU_PRESENT=1,__FPU_USED=1。c.這樣編譯時就加入了啟動FPU的代碼,CPU也就能正確高效的使用FPU進行簡單的加減

乘除了。

3.進一步說明使用芯片復(fù)雜數(shù)學(xué)運算使用對于復(fù)雜運算,比如三角函數(shù),開方等運算,需要如下設(shè)置:

a.包含arm_math.h頭文件。

b.在工程選項的C/C++選項卡的define中繼續(xù)加入語句ARM_MATH_CM4。

c.在工程選項的C/C++選項卡的define中繼續(xù)加入語句__CC_ARM。

以使用sin,cos運算舉例,需要調(diào)用arm_sin_f32()以及arm_cos_f32(),這兩個函數(shù)定義在arm_sin_f32.c和arm_cos_f32.c中,需要在工程中加入這兩個c文件。

*在ST庫文件包中的文件目錄如下:\stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.1.0\Libraries\CMSIS\DSP_Lib\Sou

rce\FastMathFunctions

*在keil安裝目錄下的文件目錄如下:

\Keil\ARM\CMSIS\DSP_Lib\Source\FastMathFunctions當(dāng)用到更多數(shù)學(xué)運算,如開根號,三角運算,求絕對值等等,客戶也可以直接在工程中加入ARM中的數(shù)學(xué)運算庫arm_cortexM4lf_math.lib,而不需要一個個文件的添加,

*在ST庫文件包中的目錄如下:\STM32F4xx_DSP_StdPeriph_Lib_V1.6.0\STM32F4xx_DSP_StdPeriph_Lib_V1.6.0\Libraries\CMSIS\Lib\ARM

*在keil安裝目錄下的文件目錄如下:

\Keil\ARM\CMSIS\Lib\ARM

四.結(jié)語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論