本帖最后由 baiyongbin2009 于 2015-3-16 11:42 编辑 9 ]: j5 p6 U; w! k" @+ W2 b 特别说明:完整45期数字信号处理教程,原创高性能示波器代码全开源地址:链接 第6章 ARM官方DSP库的移植 本期教程主要讲解ARM官方DSP库的移植和一些相关知识的介绍。 6.1 DSP库的下载和说明 6.2 DSP库在MDK上的移植 6.3 简易DSP库函数验证 6.4 总结 6.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表示大端格式)。 G! U) O6 @( k) Q" g) t, T |
2 J$ ?% c' F8 ?
6.2 DSP库在MDK上的移植
void FFTPro(void)% l0 K. Y8 Y! F; k! v5 y( h
{3 D# ^6 \6 A8 t ?
uint16_t i,j;6 _% a8 ^2 c$ `0 h
arm_rfft_instance_q15 S;4 Q9 o. s/ h2 R2 ?/ L8 G8 I
/* 实数序列FFT长度 */
uint32_t fftSize = 32;4 `$ e- h$ v! e [- B* d9 P
/* 正变换 */. `( i- ?: |$ J, \" h2 X$ t
uint32_t ifftFlag = 0;
/* 码位倒序 */9 ?" D1 ~; c& o: G9 _4 t1 u1 N) Q) Q" f
uint32_t doBitReverse = 1;
/* 初始化结构体S */
arm_rfft_init_q15(&S, fftSize, ifftFlag, doBitReverse);7 W0 l R7 J5 `# `( H1 C" }
一调用这个函数就会出故障
Linking
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x1456c bytes (max align 0x4) in <[0x08000000-0x0800ffff]>
(total uncommitted space 0xfe78).
Error while running Linker
Total number of errors: 1 , Y. l. \# m7 n" _! ?+ b
Total number of warnings: 2 - I# @2 @. ~2 K
. J, \& y4 I. y, Z& g' \2 r( I5 k9 U
你的Flash超了。