如何使用CLion添加STM32F4xx的DSP库
成电电子科协
编辑于 2022年10月10日 23:49

 Author:Aiano_czm​

一、 使用STM32CubeMX生成项目

    如何使用Clion开发STM32参考这篇文章:《配置CLion用于STM32开发》​ ,在上面这篇文章的基础上进行修改。

1. Software Packs -> Select Components

2. Filter

3. 下拉 DSP Library

4. 右侧 DSP Library 打勾

5. Ok

6. 回到主界面,打勾DSP Library

7. GENERATE CODE

二、CLion 配置

1. 打开`CMakeLists_template.txt`

2. 取消部分代码,启动硬件浮点数功能

代码块
clike
自动换行
复制代码
#以下是取消注释后的效果

#Uncomment for hardware floating point
add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
复制成功

3. 链接ARM DSP库

代码块
clike
自动换行
复制代码
# 下面这句是默认生成的,代表创建可执行文件
add_executable($${PROJECT_NAME}.elf $${SOURCES} $${LINKER_SCRIPT})

# 在其后面添加下面这句,代表把ARM DSP库链接到上面的可执行文件
target_link_libraries(${PROJECT_NAME}.elf ${CMAKE_SOURCE_DIR}/Middlewares/ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a)
复制成功

4. 重新打开STM32CubeMX,点击GENERATE CODE,你会发现`CMakeList.txt`文件中出现了刚刚编辑的内容,因为刚刚编辑的是模板文件,`CMakeList.txt`是从模板文件生成的

5. 重新加载CMake项目,下图代表一切正确配置

三、添加测试代码

1. 打开`main.c`文件

2. 引用头文件

代码块
clike
自动换行
复制代码
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "arm_math.h"
/* USER CODE END Includes */
复制成功

 3. 添加测试函数

代码块
clike
自动换行
复制代码
/* USER CODE BEGIN WHILE */
    while (1) {
        static float result;
        result = arm_sin_f32(PI / 6.0);
        
        /* USER CODE END WHILE */
        
        /* USER CODE BEGIN 3 */
    }
/* USER CODE END 3 */
复制成功

4. 在result那句前添加断点

5. Debug

6. 当代码运行到result那句时,点击步过

7. 可以看到现在已经显示result结果了

   也可以在下面的Debugger里看到

结语

恭喜添加DSP库成功!!

这个过程中最关键的一点是要添加对ARM DSP库的引用。