顯示具有 System Workbench for STM32 標籤的文章。 顯示所有文章
顯示具有 System Workbench for STM32 標籤的文章。 顯示所有文章

2019年5月7日 星期二

在stm32f407搭配SW開發dsp程式的程式庫設定

從STM32065這裡可以拿到stm32出的dsp程式
https://www.st.com/en/embedded-software/stsw-stm32065.html
但是在SW裡面開發時需要設定一些地方
首先看看STM32065裡面有什麼
下載並解開後的資料夾名稱(版本1.8)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0

裡面有個Lib資料夾,裡面有DSP相關標頭檔以及程式庫,以下標示程式庫所在位置,我們需要的是GCC版本,將整個Lib資料夾拉到專案的Drivers/CMSIS資料夾裡面
再來找到標頭檔(.h)所在位置,將這幾個拉到專案的Drivers/CMSIS/Include資料夾裡面
補充:在刷新cubeMX的時候這裡面的.h會被刷新,新加入的.h會消失需要重新拉入,目前正在找新的資料夾位置

目前SW專案資料夾會多上面這兩個

接著打開專案設定,點選Libraries設定(-l)新增arm_cortexM4lf_math,設定(-L)新增程式庫所在路徑,這裡示範的程式庫是放在專案的相對位置:Drivers/CMSIS/Lib/GCC
至於include的部份因為我們放的是已經存在專案中的include資料夾,因此在專案設定方面無需更動。

最後加入ARM_MATH_CM4的巨定義以便讓前置處理器能夠開通標頭檔中相對應的巨集設定

然後就可以在程式中呼叫相關DSP 的API
記得引入相對應標頭檔:
      #include <arm_math.h>
      arm_sin_f32(2*PI*10*i/Fs)

      arm_cfft_radix4_init_f32(&Base4fft,Length,0,1);
      arm_cfft_radix4_f32(&Base4fft,Inputdata);

      arm_cmplx_mag_f32(Inputdata,Outputdata,Length);

參考資料:

CFLAGS += -I$(CMSISPATH)/CMSIS/DSP/Include
LDFLAGS += -L$(CMSISPATH)/CMSIS/Lib/GCC/ -larm_cortexM4lf_math
出處:https://stackoverflow.com/questions/49237484/stm32f-discovery-undefined-reference-to-arm-sin-f32

2018年10月7日 星期日

system workbench for STM32 一款基於eclipse的stm32整合開發環境,以及STM32CubeMX一款STM32系列程式碼產生器

STM32 CubeMX

System Workbench for STM32(SW4STM32)

下載與安裝都很無腦,到官網下載後就可以安裝。

CubeMX以點選功能的方式快速佈置微控器的功能
要記得要去設定Debug功能,否則到了SW4STM32要跑線上除錯的時候會找不到硬體
CubeMX產生程式碼之後會問是否要打開IDE,
在Win32平台,選擇確定會順利打開SW4STM32
在MacOS平台,無法找到,必須單獨打開SW4STM32然後把專案資料import進來

先按錘子編譯專案
再按瓢蟲進入除錯模式

第一次執行瓢蟲要做以下修改,硬體除錯模式才會正常運作
點選 Debug As -> 1 AC6 STM32 C/C++ Application

然後再點選 Debug Configurations...

到 Debugger 中 Configuration Script 區塊 將 generator options展開
將Reset Mode改為 Software system reset
這樣除錯功能才能正常