女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

來源:轉載自21ic論壇極海半導體專區

1、前言

APM32F411是一款基于32位Arm Cortex-M4F內核的微控制器。硬件FPU是Arm Cortex-M4F的一大優勢。合理應用硬件FPU可以大大縮短運算時間。

2、如何開啟硬件FPU

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

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

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

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

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

實際應用中,CP10和CP11一般都設置為11。

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

KEIL軟件提供了一個非常方便的開啟硬件FPU功能選項。如下圖所示,點擊KEIL的“魔法棒”菜單。“Target”界面中的“Floating Point Hardware”選項選擇“Single Precision”。點擊“OK”,完成硬件FPU開啟。

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

3、測試

通過實例測試,感受一下硬件FPU的運算速度。根據極海官網APM32F4xx_SDK_V1.4的的GPIO_Toggle例程修改,APM32F411系統時鐘設置為100MHz。

3.1 開啟和不開啟FPU測試

部分測試代碼,如下圖所示。主函數包括兩個函數:LED2(PE6)引腳翻轉函數和測試函數。測試函數主要內容是重復執行200次data_b = data_a * 3.14159的乘法運算。

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

通過邏輯分析儀抓取PE6的高低電平,評估代碼執行時間。

不開啟硬件FPU的IO翻轉時間約207.56us,如下圖所示。

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

開啟硬件FPU的IO翻轉時間約218.64us,如下圖所示。

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

什么情況?開啟硬件FPU的運算時間居然比不開啟硬件FPU的運算時間要慢。

很多人使用M4/M4F產品,往往會忽略一個細節。參與運算的浮點型常量3.14159在C語言中默認是double類型常量。M4/M4F的硬件FPU只對單精度浮點數運算加速。所以,對double類型浮點數運算無效。

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

不開啟硬件FPU的乘法運算匯編代碼及機器周期數如下圖所示:

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

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

開啟硬件FPU的乘法運算匯編代碼及機器周期數如下圖所示:

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

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

3.2 浮點型常量都加f后綴,開啟和不開啟FPU測試。

float類型數值取值范圍是

-3.402823466×1038~3.402823466×1038,可以滿足大部分應用。測試代碼的浮點型常量加上后綴f,其他內容與3.1章節一致,如下圖所示。

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

不開啟硬件FPU的IO翻轉時間約73.48us,如下圖所示。

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

開啟硬件FPU的IO翻轉時間約16.4us,如下圖所示。

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

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

不開啟硬件FPU的乘法運算匯編代碼及機器周期數,如下圖所示:

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

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

開啟硬件FPU的乘法運算匯編代碼及機器周期數,如下圖所示:

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

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

4、結論

測試結果如下表所示

硬件FPU 浮點型常量 運行時間 data_b = data_a * 3.14159運算時間
不開啟 不帶f后綴 207.56us 189個機器周期
不開啟 帶f后綴 73.48us 60個機器周期
開啟 不帶f后綴 218.64us 191個機器周期
開啟 帶f后綴 16.4us 11個機器周期

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

對于float類型數值運算,建議開啟硬件FPU,可以大大縮短運算時間。比如,該例程的語句乘法運算,開啟硬件FPU的運算比未開啟硬件FPU的運算少了49個機器周期數,運算時間提升約81.67%。

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7933

    瀏覽量

    154049
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9340

    瀏覽量

    376112
  • 內核
    +關注

    關注

    3

    文章

    1415

    瀏覽量

    41243
  • 函數
    +關注

    關注

    3

    文章

    4377

    瀏覽量

    64540
  • 極海半導體
    +關注

    關注

    0

    文章

    158

    瀏覽量

    4825

原文標題:APM32芯得 EP.58 | APM32F411硬件FPU使用方法及注意點

文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    充能新時代 | 基于APM32F411的EV交流充電樁應用方案

    將推動全球充電樁市場的快速發展,預計該市場年復合增長率可達36.0%,于2030年增長至1410.8億美元規模。 ? ? 面向EV交流充電樁市場需求,采用基于Cortex-M4F內核的高適配型
    發表于 05-20 17:24 ?1392次閱讀
    充能新時代 | 基于<b class='flag-5'>APM32F411</b>的EV交流充電樁應用方案

    TinyMaix框架的內存需求超過了APM32F411的可用內存,導致運行失敗,怎么能成功優化?

    TinyMaix框架的內存需求超過了APM32F411的可用內存,導致運行失敗。怎么能成功優化?
    發表于 09-27 09:44

    APM32F103微控制器與Sxx32F103芯片有哪些不同點呢

    APM32F103是什么?APM32F103微控制器與Sxx32F103芯片有哪些不同點呢?
    發表于 02-23 06:02

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

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

    STM32F411xC和STM32F411XE微控制器的數據手冊免費下載

    本參考手冊面向應用程序開發人員。它提供了如何使用STM32F411xC/E微控制器的內存和外圍設備的完整信息。STM32F411xC/E是具有不同內存大小、封裝和外圍設備的微控制器系列
    發表于 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>的數據手冊免費下載

    UM1842_STM32F411VE微控制器探索套件

    UM1842_STM32F411VE微控制器探索套件
    發表于 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規格書免費下載。屬于新車規型號,需要樣品可以和我聯系。159947895
    發表于 12-13 11:51 ?2次下載

    支持燒錄Geehy半導體的32位微控制器APM32F407RET6

    芯片燒錄行業領導者-昂科技術近日發布最新的燒錄軟件更新及新增支持的芯片型號列表,其中昂科發布軟件更新支持Geehy半導體的32位微控制器APM32F407RET6已經被昂科的通用燒
    的頭像 發表于 06-21 17:56 ?1501次閱讀
    支持燒錄Geehy<b class='flag-5'>極</b><b class='flag-5'>海</b>半導體的32位<b class='flag-5'>微控制器</b><b class='flag-5'>APM32F</b>407RET6

    半導體推出APM32F411系列高性能高適配型MCU

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

    基于半導體APM32F407系列MCU的伺服控制器應用方案

    基于半導體APM32F407系列MCU的伺服控制器應用方案
    的頭像 發表于 09-19 16:48 ?1582次閱讀
    基于<b class='flag-5'>極</b><b class='flag-5'>海</b>半導體<b class='flag-5'>APM32F</b>407系列MCU的伺服<b class='flag-5'>控制器</b>應用方案

    32位微控制器HC32F460系列硬件開發指南

    電子發燒友網站提供《32位微控制器HC32F460系列硬件開發指南.pdf》資料免費下載
    發表于 11-13 16:48 ?6次下載

    APM32F072xBT7硬件兼容ST電動車應用方案mcu

    APM32F072xBT7硬件兼容ST電動車應用方案MCU 隨著電動車市場的不斷發展,對于電動車控制器的要求也越來越高。而作為電動車
    的頭像 發表于 03-04 21:30 ?908次閱讀

    半導體發布EV交流充電樁應用方案

    半導體針對EV交流充電樁市場,推出了基于AAPM32F411系列MCU的應用方案。這款基于Cortex-M4F內核的APM32F411
    的頭像 發表于 05-23 11:38 ?1389次閱讀