一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

極海APM32F411微控制器硬件FPU使用指南

Geehy極海半導(dǎo)體 ? 來源:21ic論壇極海半導(dǎo)體專區(qū) ? 2025-06-28 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:轉(zhuǎn)載自21ic論壇極海半導(dǎo)體專區(qū)

1、前言

APM32F411是一款基于32位Arm Cortex-M4F內(nèi)核的微控制器。硬件FPU是Arm Cortex-M4F的一大優(yōu)勢(shì)。合理應(yīng)用硬件FPU可以大大縮短運(yùn)算時(shí)間。

2、如何開啟硬件FPU

在system_apm32f4xx.c文件的SystemInit()函數(shù)里,有下圖所示語句:

8adb0aea-50d0-11f0-b715-92fbcf53809c.jpg

當(dāng)__FPU_PRESENT(是否帶有FPU)和__FPU_USED(是否開啟FPU)都為1時(shí),硬件FPU才算成功開啟。

從M4權(quán)威指南手冊(cè)可以查到,SCB->CPACR的寄存器信息如下圖所示:

8ae5eae6-50d0-11f0-b715-92fbcf53809c.jpg

實(shí)際應(yīng)用中,CP10和CP11一般都設(shè)置為11。

8af55954-50d0-11f0-b715-92fbcf53809c.jpg

KEIL軟件提供了一個(gè)非常方便的開啟硬件FPU功能選項(xiàng)。如下圖所示,點(diǎn)擊KEIL的“魔法棒”菜單?!癟arget”界面中的“Floating Point Hardware”選項(xiàng)選擇“Single Precision”。點(diǎn)擊“OK”,完成硬件FPU開啟。

8b05cea6-50d0-11f0-b715-92fbcf53809c.jpg

3、測(cè)試

通過實(shí)例測(cè)試,感受一下硬件FPU的運(yùn)算速度。根據(jù)極海官網(wǎng)APM32F4xx_SDK_V1.4的的GPIO_Toggle例程修改,APM32F411系統(tǒng)時(shí)鐘設(shè)置為100MHz。

3.1 開啟和不開啟FPU測(cè)試

部分測(cè)試代碼,如下圖所示。主函數(shù)包括兩個(gè)函數(shù):LED2(PE6)引腳翻轉(zhuǎn)函數(shù)和測(cè)試函數(shù)。測(cè)試函數(shù)主要內(nèi)容是重復(fù)執(zhí)行200次data_b = data_a * 3.14159的乘法運(yùn)算。

8b81c894-50d0-11f0-b715-92fbcf53809c.png

通過邏輯分析儀抓取PE6的高低電平,評(píng)估代碼執(zhí)行時(shí)間。

不開啟硬件FPU的IO翻轉(zhuǎn)時(shí)間約207.56us,如下圖所示。

8b8f2f2a-50d0-11f0-b715-92fbcf53809c.png

開啟硬件FPU的IO翻轉(zhuǎn)時(shí)間約218.64us,如下圖所示。

8b9d89a8-50d0-11f0-b715-92fbcf53809c.png

什么情況?開啟硬件FPU的運(yùn)算時(shí)間居然比不開啟硬件FPU的運(yùn)算時(shí)間要慢。

很多人使用M4/M4F產(chǎn)品,往往會(huì)忽略一個(gè)細(xì)節(jié)。參與運(yùn)算的浮點(diǎn)型常量3.14159在C語言中默認(rèn)是double類型常量。M4/M4F的硬件FPU只對(duì)單精度浮點(diǎn)數(shù)運(yùn)算加速。所以,對(duì)double類型浮點(diǎn)數(shù)運(yùn)算無效。

為什么開啟硬件FPU的運(yùn)算時(shí)間比不開啟硬件FPU的運(yùn)算時(shí)間要慢?我們從匯編代碼可以看出,同樣的一條乘法運(yùn)算語句,不開啟硬件FPU計(jì)算需要10816 - 10627 = 189個(gè)機(jī)器周期,開啟硬件FPU計(jì)算需要10883 - 10692 = 191個(gè)機(jī)器周期,差了2個(gè)機(jī)器周期。

不開啟硬件FPU的乘法運(yùn)算匯編代碼及機(jī)器周期數(shù)如下圖所示:

8ba9af6c-50d0-11f0-b715-92fbcf53809c.png

8bbd22d6-50d0-11f0-b715-92fbcf53809c.png

開啟硬件FPU的乘法運(yùn)算匯編代碼及機(jī)器周期數(shù)如下圖所示:

8bcfef06-50d0-11f0-b715-92fbcf53809c.png

8bdeaeec-50d0-11f0-b715-92fbcf53809c.png

3.2 浮點(diǎn)型常量都加f后綴,開啟和不開啟FPU測(cè)試。

float類型數(shù)值取值范圍是

-3.402823466×1038~3.402823466×1038,可以滿足大部分應(yīng)用。測(cè)試代碼的浮點(diǎn)型常量加上后綴f,其他內(nèi)容與3.1章節(jié)一致,如下圖所示。

8beb84d2-50d0-11f0-b715-92fbcf53809c.png

不開啟硬件FPU的IO翻轉(zhuǎn)時(shí)間約73.48us,如下圖所示。

8bf716a8-50d0-11f0-b715-92fbcf53809c.png

開啟硬件FPU的IO翻轉(zhuǎn)時(shí)間約16.4us,如下圖所示。

8c037baa-50d0-11f0-b715-92fbcf53809c.jpg

這才是我們想要的效果。從匯編代碼對(duì)比,同樣的一條乘法運(yùn)算語句,不開啟硬件FPU計(jì)算需要10737 - 10677 = 60個(gè)機(jī)器周期,開啟硬件FPU計(jì)算需要11176 - 11165 = 11個(gè)機(jī)器周期,差了49個(gè)機(jī)器周期。

不開啟硬件FPU的乘法運(yùn)算匯編代碼及機(jī)器周期數(shù),如下圖所示:

8c126714-50d0-11f0-b715-92fbcf53809c.jpg

8c1f3976-50d0-11f0-b715-92fbcf53809c.jpg

開啟硬件FPU的乘法運(yùn)算匯編代碼及機(jī)器周期數(shù),如下圖所示:

8c2fa5c2-50d0-11f0-b715-92fbcf53809c.jpg

8c3b70d2-50d0-11f0-b715-92fbcf53809c.jpg

4、結(jié)論

測(cè)試結(jié)果如下表所示

硬件FPU 浮點(diǎn)型常量 運(yùn)行時(shí)間 data_b = data_a * 3.14159運(yùn)算時(shí)間
不開啟 不帶f后綴 207.56us 189個(gè)機(jī)器周期
不開啟 帶f后綴 73.48us 60個(gè)機(jī)器周期
開啟 不帶f后綴 218.64us 191個(gè)機(jī)器周期
開啟 帶f后綴 16.4us 11個(gè)機(jī)器周期

計(jì)算沒有超出float類型數(shù)值取值范圍的情況,建議浮點(diǎn)型常量都加上后綴f,可以縮短運(yùn)算時(shí)間。如果沒有float類型數(shù)值運(yùn)算,可以不開啟硬件FPU。

對(duì)于float類型數(shù)值運(yùn)算,建議開啟硬件FPU,可以大大縮短運(yùn)算時(shí)間。比如,該例程的語句乘法運(yùn)算,開啟硬件FPU的運(yùn)算比未開啟硬件FPU的運(yùn)算少了49個(gè)機(jī)器周期數(shù),運(yùn)算時(shí)間提升約81.67%。

注:文章作者在原帖中提供了例程文件,有需要請(qǐng)至原文21ic論壇下載

原文地址:https://bbs.21ic.com/icview-3329150-1-1.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7953

    瀏覽量

    155148
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9353

    瀏覽量

    377667
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41446
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64918
  • 極海半導(dǎo)體
    +關(guān)注

    關(guān)注

    0

    文章

    164

    瀏覽量

    4825

原文標(biāo)題:APM32芯得 EP.58 | APM32F411硬件FPU使用方法及注意點(diǎn)

文章出處:【微信號(hào):geehysemi,微信公眾號(hào):Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于APM32F411 DMA_ADC Handler模式分析及解決

    ADC連續(xù)轉(zhuǎn)換采集,因此,我沒過濾掉ADC采集中開啟中斷配置的信息,開啟了ADC中斷采集,因此這次以APM32F411官方例程中的DMA_ADC例程,復(fù)刻了此次出現(xiàn)的問題。
    的頭像 發(fā)表于 06-24 14:30 ?497次閱讀
    基于<b class='flag-5'>APM32F411</b> DMA_ADC Handler模式分析及解決

    APM32F411打造可自動(dòng)化的命令行工作流

    拿到APM32F411的TINY板卡后,在打開官方提供的SDK發(fā)現(xiàn),他們提供的MDK、IAR、Eclipse的工程示例。非常不錯(cuò),但是我想著有一些場(chǎng)景下在沒有安裝IDE的情況下怎么編譯程序呢?
    的頭像 發(fā)表于 07-11 10:00 ?1044次閱讀
    為<b class='flag-5'>APM32F411</b>打造可自動(dòng)化的命令行工作流

    正式發(fā)布 | APM32F411系列高適配型MCU,均衡功耗、性能與成本

    APM32F411系列高性能高適配型MCU,該系列新品基于Arm? Cortex? -M4F內(nèi)核,采用55nm工藝制程,擁有大容量Flash、SRAM以及豐富的片內(nèi)外設(shè),具有優(yōu)秀的方案適用性和可靠性。 ? 該產(chǎn)品可廣泛應(yīng)用于儀器儀表、工控設(shè)備、智能家電、基站電源、網(wǎng)關(guān)設(shè)備
    發(fā)表于 08-08 17:51 ?1061次閱讀
    正式發(fā)布 | <b class='flag-5'>極</b><b class='flag-5'>海</b><b class='flag-5'>APM32F411</b>系列高適配型MCU,均衡功耗、性能與成本

    充能新時(shí)代 | 基于APM32F411的EV交流充電樁應(yīng)用方案

    將推動(dòng)全球充電樁市場(chǎng)的快速發(fā)展,預(yù)計(jì)該市場(chǎng)年復(fù)合增長率可達(dá)36.0%,于2030年增長至1410.8億美元規(guī)模。 ? ? 面向EV交流充電樁市場(chǎng)需求,采用基于Cortex-M4F內(nèi)核的高適配型
    發(fā)表于 05-20 17:24 ?1422次閱讀
    充能新時(shí)代 | 基于<b class='flag-5'>APM32F411</b>的EV交流充電樁應(yīng)用方案

    TinyMaix框架的內(nèi)存需求超過了APM32F411的可用內(nèi)存,導(dǎo)致運(yùn)行失敗,怎么能成功優(yōu)化?

    TinyMaix框架的內(nèi)存需求超過了APM32F411的可用內(nèi)存,導(dǎo)致運(yùn)行失敗。怎么能成功優(yōu)化?
    發(fā)表于 09-27 09:44

    HPM6000系列微控制器的片上各類SRAM使用指南

    HPM6000系列微控制器片上SRAM使用指南
    發(fā)表于 06-01 06:19

    STM32F411xC和STM32F411XE微控制器的數(shù)據(jù)手冊(cè)免費(fèi)下載

    本參考手冊(cè)面向應(yīng)用程序開發(fā)人員。它提供了如何使用STM32F411xC/E微控制器的內(nèi)存和外圍設(shè)備的完整信息。STM32F411xC/E是具有不同內(nèi)存大小、封裝和外圍設(shè)備的微控制器系列
    發(fā)表于 11-11 08:00 ?91次下載
    STM32<b class='flag-5'>F411</b>xC和STM32<b class='flag-5'>F411</b>XE<b class='flag-5'>微控制器</b>的數(shù)據(jù)手冊(cè)免費(fèi)下載

    AN1080_APM32_工具鏈使用指南

    AN1080_APM32_工具鏈使用指南
    發(fā)表于 11-09 21:03 ?0次下載
    AN1080_<b class='flag-5'>APM</b>32_工具鏈<b class='flag-5'>使用指南</b>

    UM1842_STM32F411VE微控制器探索套件

    UM1842_STM32F411VE微控制器探索套件
    發(fā)表于 11-22 19:10 ?0次下載
    UM1842_STM32<b class='flag-5'>F411</b>VE<b class='flag-5'>微控制器</b>探索套件

    32位微控制器APM32F405xG/APM32F407xExG

    32位微控制器APM32F405xG/APM32F407xExG規(guī)格書免費(fèi)下載。屬于新車規(guī)型號(hào),需要樣品可以和我聯(lián)系。159947895
    發(fā)表于 12-13 11:51 ?2次下載

    支持燒錄Geehy半導(dǎo)體的32位微控制器APM32F407RET6

    芯片燒錄行業(yè)領(lǐng)導(dǎo)者-昂科技術(shù)近日發(fā)布最新的燒錄軟件更新及新增支持的芯片型號(hào)列表,其中昂科發(fā)布軟件更新支持Geehy半導(dǎo)體的32位微控制器APM32F407RET6已經(jīng)被昂科的通用燒
    的頭像 發(fā)表于 06-21 17:56 ?1565次閱讀
    支持燒錄Geehy<b class='flag-5'>極</b><b class='flag-5'>海</b>半導(dǎo)體的32位<b class='flag-5'>微控制器</b><b class='flag-5'>APM32F</b>407RET6

    半導(dǎo)體推出APM32F411系列高性能高適配型MCU

    面向能耗與成本敏感的中高端工業(yè)應(yīng)用市場(chǎng),不僅對(duì)芯片性能與功耗有更高要求,復(fù)雜的功能需求也考量著芯片的適配性與穩(wěn)定性。為平衡客戶對(duì)產(chǎn)品低功耗、高性能與高性價(jià)比等綜合需求,正式推出APM32F411
    發(fā)表于 08-06 10:32 ?835次閱讀
    <b class='flag-5'>極</b><b class='flag-5'>海</b>半導(dǎo)體推出<b class='flag-5'>APM32F411</b>系列高性能高適配型MCU

    基于半導(dǎo)體APM32F407系列MCU的伺服控制器應(yīng)用方案

    基于半導(dǎo)體APM32F407系列MCU的伺服控制器應(yīng)用方案
    的頭像 發(fā)表于 09-19 16:48 ?1630次閱讀
    基于<b class='flag-5'>極</b><b class='flag-5'>海</b>半導(dǎo)體<b class='flag-5'>APM32F</b>407系列MCU的伺服<b class='flag-5'>控制器</b>應(yīng)用方案

    APM32F072xBT7硬件兼容ST電動(dòng)車應(yīng)用方案mcu

    APM32F072xBT7硬件兼容ST電動(dòng)車應(yīng)用方案MCU 隨著電動(dòng)車市場(chǎng)的不斷發(fā)展,對(duì)于電動(dòng)車控制器的要求也越來越高。而作為電動(dòng)車
    的頭像 發(fā)表于 03-04 21:30 ?953次閱讀

    半導(dǎo)體發(fā)布EV交流充電樁應(yīng)用方案

    半導(dǎo)體針對(duì)EV交流充電樁市場(chǎng),推出了基于AAPM32F411系列MCU的應(yīng)用方案。這款基于Cortex-M4F內(nèi)核的APM32F411
    的頭像 發(fā)表于 05-23 11:38 ?1445次閱讀