STM32F4-浮点DSP库的MDK开发环境的设置

发布者:Serendipity66最新更新时间:2016-06-20 来源: eefocus关键字:STM32F4  浮点DSP库  MDK  开发环境 手机看文章 扫描二维码
随时随地手机看文章
在网上看了一下关于DSP的库的开发环境设置,写的有些乱,现在来整理一下,做一下MARK吧!

步骤如下:

1 . 建立工程,添加相关必要的文件到工程中。

2. 打开 option for target 选择 Target 标签,在code generatio中,将floating point hardware 选择 USE FPU。

3. 编译你的工程,保证通过。当然也不一定需要编译通过,先做编译是为了后面添加浮点库做准备,这样发现问题和知道哪里出问题。

4. 打开 option for target 选择 C/C++ 标签, 在define中添加:USE_HAL_DRIVER,STM32F407xx,__TARGET_FPU_VFP,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING,ARM_MATH_CM4,__CC_ARM,由于我的是HAL的库,所以前面有USE_HAL_DRIVER的全局宏定义,如果你用的不是HAL库,而是使用固件库的话,一般会有固件库的一个全局宏定义USE_STDPERIPH_DRIVER和STM32F4XXxx在里面,这在固件库中的例子工程中都会有这个的。所以,我这里只需要添加

__TARGET_FPU_VFP,

ARM_MATH_MATRIX_CHECK,

ARM_MATH_ROUNDING,

ARM_MATH_CM4,

__CC_ARM

注意中间用英文逗号分开。其中ARM_MATH_MATRIX_CHECK是库函数的参数检查开关,这里添加后,就打开。ARM_MATH_ROUNDING这个是库函数在运算是是否开启四舍五入的功能,我这里添加,可以根据自己的需要进行配置。ARM_MATH_CM4这个就非常重要,必须要配置进去,否则在编译之后,会默认使用math.h的库函数,而不会用到硬件的FPU的。__CC_ARM是不同编译器的编译配置宏定义,__CC_ARM就是代表MDK开发环境。

5. 打开工程中的 stm32f407xx.h 文件,注意不是 stm32f4xx.h 文件,是和你的芯片型号对应的头文件,比如我用的是STM32F407,所以我这里就选择打开stm32f407xx.h文件,找到

#define __FPU_PRESENT 0 /*!< FPU present 这一句,将设置为 1

找到

#include "core_cm4.h" /* Cortex-M4 processor and core peripherals */

#include "system_stm32f4xx.h"

#include

这个地方,然后在下面添加

#include "arm_math.h"

然后保存。

6. 添加浮点库文件到工程。

如果用的是 uv4,打开C:\Keil\ARM\CMSIS\Lib\ARM 目录,复制“arm_cortexM4lf_math.lib”文件到你的工程下,并加入工程。

如果用的是 uv5,打开C:\Keil_v5\ARM\Pack\ARM\CMSIS\4.2.0\CMSIS\Lib\ARM目录,复制“arm_cortexM4lf_math.lib”文件到你的工程下,并加入工程。

再或者在官方下载固件库程序包中复制也行, \STM32F4xx_DSP_StdPeriph_Lib\Libraries\CMSIS\Lib\ARM

这是添加lib库文件,也可以添加源码库文件, \STM32F4xx_DSP_StdPeriph_Lib\Libraries\CMSIS\DSP_Lib\Source

lib文件,不参与编译,只参与链接定位,所以编译速度快,但是有点占空间。根据自己的情况而定。

7. 准备工作完成了,进行编译,如果不出错,则基本上没有什么问题了,自己可以写一段测试代码试一试。

8. 浮点库的函数用法和说明,可以看看stm32f4xx_dsp_stdperiph_lib_um.chm 文件。 或者直接打开

C:\Keil_v5\ARM\Pack\ARM\CMSIS\4.2.0\CMSIS\Documentation\DSP\html下面的 index.html 文件,通过浏览器看帮助文件。

关键字:STM32F4  浮点DSP库  MDK  开发环境 引用地址:STM32F4-浮点DSP库的MDK开发环境的设置

上一篇:STM32的IO口如何配置
下一篇:基于ARM的CRC算法和基于FPGA的算法性能比较

推荐阅读最新更新时间:2024-03-16 14:58

CC2530(zigbee)入门开发: 安装IAR开发环境
一、CC2530与开发环境介绍 CC2530本身是一个51单片机内核,开发过51的搞起来非常容易,也就是多了一个无线射频部分;如果不使用无线射频功能,那么就和一个正常的51单片机一样。要进行CC2530的软件开发,需要先安装IAR开发环境。 IAR的版本比较多,根据支持的微处理器种类区分了许多不同的版本,我们的CC2530使用的是增强型 8051 内核,IAR的版本可以采用这个型号:IAR Embedded Workbench for 8051,直接百度搜索下载就行。 IAR和keil一样都是单片机的集成开发环境,使用起来也差不多,如果用惯了keil的编程风格,可能一时半会还不习惯IAR,风格上有不小的差异。 二、安装IAR集
[单片机]
CC2530(zigbee)入门开发: 安装IAR<font color='red'>开发环境</font>
stm32f4固件库函数点亮LED灯
我采用的实验板硬件原理图如下 这些LED灯的阴极都是与STM32的GPIO的引脚相连接,我们只需要控制对应的引脚输出低电平,即可点亮LED灯,其中彩灯的阳极连接到的一个电路图符 号“口口”,它表示引出排针,即此处本身断开,须通过跳线帽连接排针,把电源跟彩灯的阳极连起来,才可以进行操作。 固件库工程配置如下 标准的固件库函数工程模板 在编写应用程序的过程中,要考虑更改硬件环境的情况,例如 LED 灯的控制引脚与当前的不一样,我们希望程序只需要做最小的修改即可在新的环境正常运行。这个时候一般把硬件相关的部分使用宏来封装,若更改了硬件环境,只修改这些硬件相关的宏即可,这些定义一般存储在头文件,即本例子中的“b
[单片机]
<font color='red'>stm32f4</font>固件库函数点亮LED灯
STM32F4_TIM输入波形捕获 (脉冲频率、占空比)
Ⅰ、概述 本文基于上一篇文章“TIM输入波形捕获(脉冲频率)”的基础上进行拓展,上一篇文章主要是捕获波形的频率,本文主要拓展捕获波形的占空比。 笔者实验测试的方法和上一篇文章一样,通过信号发生器产生PWM信号,通过串口发送频率和占空比到上位机(上位机串口助手显示其数值)。(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源;在同一块板子上也可以使用不同定时器,将PWM输出引脚接在捕获输入引脚) 实验现象:不同频率的实验现象请看上一篇文章(该文章提供的工程笔者也是进行了大量不同频率的测试,误差在几Hz属正常范围)。 1000Hz、20% - 80%占空比现象: 1000Hz、51% - 58%占空比现象: 关于
[单片机]
<font color='red'>STM32F4</font>_TIM输入波形捕获 (脉冲频率、占空比)
单片机---STM8开发环境搭建与标准工程创建
背景说明 手头有一个单片机的Lora模块,之前也用来开发了一个DTU和温度采集产品,但是对于单片机开发的整个流程,并没有特别清楚,只是用了官方提供的模块代码,增加了温度采集和modbus数据采集过程,并且增加了一些数据传输,加密解密的过程,主要集中在了代码的修改上。对于开发环境及工程搭建这里,并没有深入研究,所以今天来尝试一下,弄一个干净的编译环境及工程。 开发环境 这里用的软件是IAR ,可以自己去官网下载再注册,也可以下载此处的版本 网盘:提取码s2ro 安装过程就是比较简单了,下一步,继续,继续,……,就完事了 整个过程可以参考 安装过程 注册的过程稍微繁琐一点,不过为了免费,还是要耐心一点。 编译环境 ST芯片
[单片机]
单片机---STM8<font color='red'>开发环境</font>搭建与标准<font color='red'>库</font>工程创建
STM32F446VE 在MDK下编译测试大小端模式
源程序如下: i = 0x12345678; printf( rni = 0x%X, ,i); printf( addri = 0x%X, ,&i); printf( rnaddru8i = 0x%X, ,(u8*)(&i)); printf( u8i = 0x%X, ,*((u8*)(&i))); printf( rnaddru8i+1 = 0x%X, ,(u8*)(&i)+1); printf( u8i+1 = 0x%X, ,*((u8*)(&i)+1)); printf( rnaddru8i+2 = 0x%X, ,(u8*)(&i)+2); printf( u8i+
[单片机]
<font color='red'>STM32F4</font>46VE 在<font color='red'>MDK</font>下编译测试大小端模式
基于STM32F4单片机USART寄存器控制的设计
USART又叫通用同步异步收发器,塔提供了一种灵活的方法与工业使用标准NRZ异步春航数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范以及调制解调器(CTS/RTS)操作,它还允许多处理器通信,使用多换成器配置的DMA方式,可以实现高速数据通信。 USART寄存器控制框图如下 可通过对 USART_CR1 寄存器中的 M 位进行编程来选择 8(置0) 位或 9(置1) 位的字长。TX 引脚在起始位工作期间处于低电平状态。在停止位工作期间处于高电平状态。
[单片机]
基于<font color='red'>STM32F4</font>单片机USART寄存器控制的设计
STM32F407各定时器的时钟频率
TIM1、TIM8~TIM11的时钟为APB2时钟的两倍即168M,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟的两倍即84M。
[单片机]
<font color='red'>STM32F4</font>07各定时器的时钟频率
stm32F407的EXTI外部中断
要点:外部中断必须配置好EXTI和NVIC,因为要用的IO口做中断源,故IO的复用功能必须使能,F4的与其他的有些不同,它的外部中断复用功能是由SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOx,GPIO_PinSourcex); 进行配置的,当然,也要打开SYSCFG的时钟。 最让初学者头疼的就是中断服务函数的入口问题,一般的中断函数都会在stm32f4xx_it.h中声明,但是stm32f4xx_it.h只声明了一部分,自己需要的函数却没有定义,自己找了好久也没有找到,其实所有的中断函数入口都定义在了启动文件startup_stm32f4xx.s中。 /********************
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved