日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MSP432 FPU与DSP测试

發布時間:2023/12/8 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MSP432 FPU与DSP测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 前言
  • 一、開啟FPU
  • 二、使用DSP指令集
    • 1.移植
    • 2.測試
  • 總結


前言

本文基于MSP432P401R,總所周知MSP432基于Cortex-M4內核,Cortex-M4內核相比于M3而言多了FPU(浮點運算單元)并支持DSP指令集,FPU配合DSP指令使得單片機浮點運算時間大大縮短。官方給出的數據是有近10倍的縮短。TI官方給只給出的FPU的例程,沒有給出DSP例程,而且FPU例程描述的不清晰。下文將介紹如何開啟FPU和移植DSP庫并進行測試。


以下是本篇文章的正文內容

一、開啟FPU

MSP432是ARM內核,自然就支持MDK了。個人習慣使用MDK,也推薦MSP432使用MDK開發。
開啟FPU之前先查看當前設備是否支持FPU,進入MDK調試界面,右下角查看地址0xE000ED88 數據, 如果為0x00F00000 00000000 00000800, 則說明設備支持 FPU。

在MDK編譯器就可以開啟FPU。

如圖點擊魔術棒后點擊Target,在Floating Point Hardware選項框中選擇Single Precision。不同版本的選項名稱可能不同,只要不是Not Used就行了。

二、使用DSP指令集

1.移植

開啟FPU后可以提升浮點運算的速度,但是一些數學運算還需要配合DSP指令。
在魔術棒C++ define中添加如下定義

__MSP432P401R__ TARGET_IS_MSP432P4XX keil,ARM_MATH_CM4,CC_ARM

添加頭文件

#include <arm_math.h>

添加完這個頭文件編譯后會報一推錯誤,主要是缺少相關文件。
在MDK安裝目錄下ARM\PACK\ARM\CMSIS\5.8.0\CMSIS\DSP\Include下找到下列文件,不同版本的安裝目錄有所不同,可以直接使用搜素功能搜素文件名字。整個include文件夾都需要包含進工程。

include中DSP文件夾的文件也需要包含。

如果使用sin、cos等數學函數需要添加對應源文件和頭文件,如arm_sin_f32.c 和arm_cos_f32.c。 建議直接添加arm_cortexM4lf_math.lib庫文件,里面包含所有數學函數。該庫文件在 Keil\ARM\CMSIS\DSP_Lib\Source\FastMathFunctions可以找到。
進行完上述操作后就可以愉快使用DSP指令集了,如果找不到相關文件,在文章下方有上傳的工程模板。

2.測試

for(i=0;i<20000;i++) {c = (arm_sin_f32(50.5) * (12.2f / 50.1f) * 10.22f / 3) * i;//c = (sin(50.5) * (12.2f / 50.1f) * 10.22f / 3) * i;}

在while循環中進行多次浮點運算,對比使用DSP指令和普通數學指令的時間就可以了。或者直接翻轉LED,可以明顯看到使用DSP庫后LED的翻轉頻率加快。同時開啟FPU下,使用DSP速度提升約20%。注意在開啟FPU后不管用不用DSP指令浮點運算時間都會縮短。


總結

那么以上就是本篇文章的所有內容了。工程文件已上傳,
MSP432_FPU_DSP_Test.rar

總結

以上是生活随笔為你收集整理的MSP432 FPU与DSP测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。