本帖最后由 baiyongbin2009 于 2015-3-16 11:42 编辑 ( @. ^$ z: D( s" r3 s* C, v% P 特别说明:完整45期数字信号处理教程,原创高性能示波器代码全开源地址:链接- L* _ P( g1 N# h3 `- P& X 第6章 ARM官方DSP库的移植 本期教程主要讲解ARM官方DSP库的移植和一些相关知识的介绍。 6.1 DSP库的下载和说明 6.2 DSP库在MDK上的移植 6.3 简易DSP库函数验证 6.4 总结 & p2 p8 q3 n7 }* l6.1 DSP库的下载和说明 下面详细的给大家讲解一下官方DSP库的移植。 6.1.1 DSP库的下载 DSP库是包含在CMSIS(Cortex Microcontroller Software Interface Standard)里面的,所以下载DSP库也就是下载CMSIS。有两个地方可以下载CMSIS,一个是ARM官网,一个是ST官网。首先说一下如何在ARM官网下载。 l 第一步:登陆ARM官方网址:http://www.arm.com/zh/ l 第二步:注册一个ID号,ARM官网不像ST官网,不注册就可以下载大部分资料,在ARM官网下载资料一定要注册一个ID。 l 第三步:具体注册过程就不多说了,按照提示步骤走即可。注册后可以简单的熟悉一下ARM官网的结构,然后查询我们需要下载的CMSIS,也可以直接在这里检索CMSIS即可。 n 检索后打开界面如下: n 点击进去后,如下就是我们要找的CMSIS 关于ST官方上CMSIS的下载就不在这里赘述了,在STM32-V5开发板用户手册第5章:ST官方固件库介绍有详细的说明。 6.1.2 DSP库的说明 这里我们以ST官方的F4系列固件库V1.3.0为标准进行移植。打开固件库里面的CMSIS文件,可以看到如下几个文件: l 其中DSP_Lib中的文件如下: Examples中的文件如下(这些是ARM官方提供的DSP实例): Source中的文件如下(这些是DSP库的源文件): 一般情况下不建议将源文件加到工程里面,直接将ARM官方整理好的DSP库文件加入到工程中即可。不过需要查看库文件源码实现的话,可以加入源文件。 l Lib文件夹中就是DSP库文件 打开后主要有以下三个文件夹: 其中ARM文件夹中是我们可以加入到MDK中的DSP库,主要有以下几个版本: 其中最后一个arm_cortexM4lf_math.lib是用于Cortex-M4系列带FPU的DSP库文件(l表示小端格式,b表示大端格式)。 |
1 ?8 N7 _* Q8 V0 O' v# |
6.2 DSP库在MDK上的移植
void FFTPro(void), r/ T& N! d9 K4 }2 }! D" r3 K: K
{
uint16_t i,j;3 U+ }5 o5 M9 g2 w1 @$ p. q, F
arm_rfft_instance_q15 S;
/* 实数序列FFT长度 */
uint32_t fftSize = 32;3 ]/ b1 n) s; y* u. O% ^, ]% \% B' r
/* 正变换 */
uint32_t ifftFlag = 0;
/* 码位倒序 */# P. E* D8 O! F2 L
uint32_t doBitReverse = 1;5 s4 R' \6 ?' Q( \& A7 N
8 W6 T1 t# h+ t! F* X
/* 初始化结构体S */( x, S0 _; x/ p3 ?
arm_rfft_init_q15(&S, fftSize, ifftFlag, doBitReverse);
一调用这个函数就会出故障1 M2 T. u/ d4 N8 r
Linking ( K# T: b8 I/ [- n* O: P) R+ p7 L+ N
Error[Lp011]: section placement failed ' E* R! m( T) n# Y% q' D/ y
unable to allocate space for sections/blocks with a total estimated minimum size of 0x1456c bytes (max align 0x4) in <[0x08000000-0x0800ffff]> - D- R# ]/ k+ Y# W- f3 t
(total uncommitted space 0xfe78).
Error while running Linker
Total number of errors: 1
Total number of warnings: 2
# f$ p+ Z: e( { X; r. E9 X6 j1 D
你的Flash超了。