国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 keil MDK配置FPU詳解

這篇具有很好參考價值的文章主要介紹了STM32 keil MDK配置FPU詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

記錄下keil對FPU的配置,及對應的宏參數(shù)。


前言

FPU單元是芯片上一個獨立于CPU處理的浮點運算單元,整個單元可以被使能和關閉。
STM32F4帶有32位單精度硬件FPU支持浮點指令集。相比Cortex-M3、Cortex-M0等無FPU的芯片高出數(shù)十倍甚至上百倍的運算性能。
STM32F7/H7及以上處理器帶有雙精度硬件FPU。
如果芯片支持FPU的話,ST公司會在驅(qū)動庫中添加對應宏定義__FPU_PRESENT。
下面這個是STM32G4系列,支持FPU
fpu stm32,stm32,單片機,嵌入式硬件

沒有FPU的芯片一般不會有這個宏定義,就像下面這個F1的
fpu stm32,stm32,單片機,嵌入式硬件


一、一些宏的說明

有效配置FPU的方法如下圖所示:
fpu stm32,stm32,單片機,嵌入式硬件
其中可以看到,真正有效的配置是一句寄存器設置,而控制這句指令是否使用的是兩個宏(__FPU_PRESENT == 1) && (__FPU_USED == 1)。前者是表示FPU功能是否存在,后者表示程序員是否要使用FPU。
所以對于有FPU的芯片,直接在C/C++的全局宏定義里添加__FPU_USED=1便可以打開FPU功能。像下面這樣:
fpu stm32,stm32,單片機,嵌入式硬件
但是這種方法不常用,也不方便。

二、勾選開啟FPU

對于使用CubeMX的用戶,如果芯片帶有FPU,會默認開啟FPU功能,即下面的勾選框:
fpu stm32,stm32,單片機,嵌入式硬件
無FPU的芯片是沒有這個選項的(附F1界面):
fpu stm32,stm32,單片機,嵌入式硬件

那么這個選項到底影響了什么?

先說結(jié)論,看庫的這段代碼:
fpu stm32,stm32,單片機,嵌入式硬件
如果用的編譯器是ARM Compiler 5,那么__CC_ARM是定義的,次一級的__TARGET_FPU_VFP就是對應上面的選擇框的,選了__TARGET_FPU_VFP就有定義,不選他就會把__FPU_USED置0,也就是不使用FPU。如果勾選了選擇框,首先會檢查是否有FPU,沒有就會報錯;有的話他會#define __FPU_USED 1U 把它置1,從而使能system_stm32xxxx.c中那句指令,開啟FPU。

以下的測試代碼是我當時為了搞明白對應關系寫的,可以有選擇地注釋掉部分報錯指令,來觀察定義關系:文章來源地址http://www.zghlxwxcb.cn/news/detail-669271.html

#if defined __TARGET_FPU_VFP
    #error "def __TARGET_FPU_VFP"
    #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
      #error "def __FPU_PRESENT == 1U"
      #define __FPU_USED       1U
      #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
        #error "FPU OK!!!"
      #endif
    #else
      #error "device without an FPU (check __FPU_PRESENT)"
      #define __FPU_USED       0U
    #endif
  #else
    #error "undef __TARGET_FPU_VFP"
    #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
      #error "def __FPU_PRESENT == 1U"
      #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
        #error "FPU OK!!!"
      #else
        #error "__FPU_PRESENT != 1   ||  __FPU_USED != 1"
      #endif
    #else
      #error "device without an FPU (check __FPU_PRESENT)"
    #endif
  #endif

到了這里,關于STM32 keil MDK配置FPU詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 專門針對數(shù)字電源相關應用,STM32G474CBT3/ STM32G474QET3/ STM32G474RBT3/ STM32G484CBT3帶有DSP和FPU指令的混合信號MCU【嵌入式】

    專門針對數(shù)字電源相關應用,STM32G474CBT3/ STM32G474QET3/ STM32G474RBT3/ STM32G484CBT3帶有DSP和FPU指令的混合信號MCU【嵌入式】

    STM32G4系列集成了運行于170 MHz的32位Arm? Cortex?-M4內(nèi)核(支持FPU和DSP指令),以及3種不同的硬件加速器:ART Accelerator?、CCM-SRAM程序執(zhí)行加速器,以及數(shù)學運算加速器。STM32G4系列還提供: 豐富的高級模擬外設(比較器、運算放大器、DAC) 支持硬件過采樣的ADC(16位分辨率) 具

    2024年01月19日
    瀏覽(32)
  • proteus結(jié)合keil-arm編譯器構(gòu)建STM32單片機項目進行仿真

    proteus結(jié)合keil-arm編譯器構(gòu)建STM32單片機項目進行仿真

    ? ? proteus是可以直接創(chuàng)建設計圖和源碼的,但是源碼編譯它需要借助keil-arm編譯器,也就是我們安裝keil-mdk之后自帶的編譯器。 ? ? 下面給出一個完整的示例,主要是做一個LED燈閃爍的效果。 ? ? 新建工程指定路徑,Schematic,PCB layout都選擇默認,在最后創(chuàng)建項目工程向?qū)У臅r

    2024年02月13日
    瀏覽(21)
  • 單片機 嵌入式開發(fā)軟件介紹對比與推薦(Keil、IAR、VSCode、Clion、STM32CubeIDE)

    單片機 嵌入式開發(fā)軟件介紹對比與推薦(Keil、IAR、VSCode、Clion、STM32CubeIDE)

    單片機 嵌入式開發(fā)軟件介紹對比與推薦(Keil、IAR、VSCode、Clion、STM32CubeIDE) KEI官網(wǎng):www.keil.com ????????Keil與MDK(Microcontroller Development Kit)是同一個軟件開發(fā)工具套件的不同名稱。 ????????Keil是一家德國公司,而MDK是他們開發(fā)的一款集成開發(fā)環(huán)境(IDE),通常稱為Keil

    2024年02月06日
    瀏覽(91)
  • 【32單片機學習】(11)STM32啟動過程詳解

    【32單片機學習】(11)STM32啟動過程詳解

    目錄 前言 一、系統(tǒng)架構(gòu) 二、啟動配置 三、啟動流程 1.首先復位MCU,獲取棧頂指針MSP和PC指針的內(nèi)容 2.根據(jù)PC的值找到復位中斷處理函數(shù)Reset_Handler 1.進入中斷處理函數(shù)Reset_Handler 2.進入SystemInit函數(shù) 3._main函數(shù) 3.進入main函數(shù) 總結(jié) ?????????通過查閱官方手冊和對實際代碼進行

    2024年02月08日
    瀏覽(25)
  • keil官網(wǎng)下載MDK的STM32芯片pack包

    keil官網(wǎng)下載MDK的STM32芯片pack包

    背景 ? ? ? ? 最近重裝了電腦系統(tǒng),重新安裝了MDK所以導致MDK芯片包需要重新下載,軟件內(nèi)下載又太慢,所以趁現(xiàn)在找到了官網(wǎng)下載方法把方法分享出來供大家參考。 1、在瀏覽器中輸入網(wǎng)址:www.keil.arm.com進入如下界面,然后點擊:Hardware -Devices 2、在Devices中選擇,在紅色方框

    2024年02月13日
    瀏覽(98)
  • MDK keil5新建STM32工程文件--實踐篇

    MDK keil5新建STM32工程文件--實踐篇

    一、先下載芯片支持包 第一步 :當然是先百度搜索我們的keil官網(wǎng)(網(wǎng)址):https://www.keil.com/ ? 第二步 :點擊首頁的Project,會跳轉(zhuǎn)如界面,再次點擊Arm Cortex-M,如圖所示: ?? 第三步 :點擊后會再次跳轉(zhuǎn),這時候我們再次點擊Public Software Packs,如圖所示: 第四步 :點擊后

    2024年02月16日
    瀏覽(101)
  • Keil MDK編程環(huán)境下的 STM32 IAP下載(學習筆記)

    Keil MDK編程環(huán)境下的 STM32 IAP下載(學習筆記)

    ICP ICP(In Circuit Programing)。在電路編程,可通過 CPU 的 Debug Access Port 燒錄代碼,比如 ARM Cortex 的 Debug Interface 主要是 SWD(Serial Wire Debug) 或 JTAG(Joint Test Action Group); ISP ISP(In System Programing)。在系統(tǒng)編程,可借助 MCU 廠商預置的 Bootloader 實現(xiàn)通過板載 UART 或 USB 接口燒錄代碼,比如

    2024年02月06日
    瀏覽(21)
  • 單片機 STM32啟動文件詳解(匯編語言解析)

    以前講了固件庫,從ST官網(wǎng)下載的固件庫里面,有許多的啟動文件(匯編語言寫的.s文件) 啟動文件 說明 startup_stm32f10x_ld.s Low Density 小容量 startup_stm32f10x_md.s Medium Density 中容量 startup_stm32f10x_hd.s High Density 高容量 startup_stm32f10x_xl.s Extra Large Density 超大容量 startup_stm32f10x_cl.s Con

    2023年04月25日
    瀏覽(31)
  • 單片機STM32看門狗詳解(嵌入式學習)

    單片機STM32看門狗詳解(嵌入式學習)

    單片機STM32的看門狗(Watchdog)是一種硬件定時器,用于監(jiān)控系統(tǒng)的運行狀態(tài)并在出現(xiàn)故障或死鎖時采取措施以恢復正常操作??撮T狗的主要功能是定期檢查系統(tǒng)是否正常運行,并在系統(tǒng)出現(xiàn)問題時觸發(fā)復位操作。 STM32系列單片機通常配備了內(nèi)置的看門狗定時器(通常稱為獨立

    2024年02月13日
    瀏覽(32)
  • MDK Keil5 創(chuàng)建Stm32工程-理論篇(這里以Stm32F103Zet6為例)

    MDK Keil5 創(chuàng)建Stm32工程-理論篇(這里以Stm32F103Zet6為例)

    整個工程可以粗略的劃分為幾個文件夾: BSP 底層驅(qū)動比如GPIOTimer等驅(qū)動文件 CMSIS 內(nèi)核相關的文件 Firmware 生成的固件下載文件 Mycode 用戶編寫的相關文件,主要編寫的文件都在這個文件夾里 Project 工程文件 startup 芯片啟動文件 STM32F10x_FWLib 標準庫文件 USER 主函數(shù)等文件 readm

    2023年04月24日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包