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

2019年5月1日 星期三

在7688duo的後台shell裡面,如何使用avrdude及其注意事項

1.  要在avr ide產生正確的7688duo的32u4 hex檔,需要記得載入7688duo的板子管理員
2.  avr ide產生的hex在什麼地方,可以將avr ide的詳細輸出打開,編譯訊息中會指出位置
3.  呼叫 /usr/bin/run-avrdude 後面帶hex檔即可後台燒錄
4. 二次呼叫如果出現下列錯誤訊息
    set pinmux spi_s -> gpio
    Can't export GPIO 3, already exported/busy?: Device or resource busy
    則需要將 /sys/class/gpio/裡面的gpio3 unexport掉