应用报告
ZHCA506B–January2012–Revised November2012在Code Composer Studio™中,使用针对Stellaris®的
CMSIS DSP库Jordan Wills Stellaris®Microcontrollers
摘要
本应用报告描述了建立ARM®CMSIS DSP库所需的过程,建立此库所使用的工具为Code Composer
Studio™v5(CCSv5)。这份报告还说明了如何使用CCSv5来建立、运行和验证CMSIS软件包中包含的11个ARM DSP示例项目。本文档中描述的项目附属和源代码可从以下德州仪器网站的位置内下
载:www.ti/lit/zip/spmc017。
内容
1简介 (1)
2CMSIS DSP库 (1)
3在CCSv5内建立DSP库 (2)
4ARM示例项目 (11)
5结论 (23)
6参考 (23)
1简介
很多基于微控制器的应用可从高效数字信号处理器(DSP)库的使用中受益。为了达到这一目的,ARM已经开发出了一组被成为CMSIS DSP库的函数,它与所有ARM Cortex™-M3和Cortex-M4处理器兼容并且被专门设计成使用ARM汇编指令来快速且方便地处理多种复杂的DSP函数。当前,ARM提供用于他们的KeilµVision IDE中的示例项目,这些项目用来显示如何建立它们的CMSIS DSP库并在一个Cortex-M3或Cortex-M4处理器上运行它们。这份应用报告描述了在Code Composer Studio版本5内建立相同DSP库所需的步骤,以及正在一个Stellaris®LM4F232微控制器上运行这些示例应用的步骤。
2CMSIS DSP库
要建立CMSIS DSP库,从ARM CMSIS网站内下载并提取源代码:arm/。针对DSP 库和示例项目的源代码位于这个目录中:
CMSIS-<;版本>/CMSIS/DSP_Lib
一个对DSP库的完整说明,其中包括对所有示例、所使用的数据结构和针对每个可用函数的API的说明,位于以下位置内ARM所提供的文档:
CMSIS-<;版本>/CMSIS/Documentation/DSP_Lib/html/index.html.
Code Composer Studio is a trademark of Texas Instruments.define的基本用法
Stellaris,StellarisWare are registered trademarks of Texas Instruments.
Cortex is a trademark of ARM Limited.
ARM is a registered trademark of ARM Limited.
All other trademarks are the property of their respective owners.
在CCSv5内建立DSP库www.ti
如果ARM发布一个对CMSIS的更新,为了提供对新功能的支持并改正ARM在CMSIS源代码中发现的任何错误,您也许需要下载且安装一个对CMSIS DSP库的补丁。在您从arm网站内下载了补丁文件后,按照以下指令进行安装:
1.将补丁文件解压缩。
2.导航至补丁包目录将所有在那个目录中发现的文件复制到CMSIS DSP库的相应位置。
3.当被提示时,写覆盖现有文件。
例如,如果补丁目录包含一个位于CMSIS/DSP_Lib/Source/CommonTables目录内的名为
arm_common_table.c的文件,将这个文件复制到您最初CMSIS安装的同一目录内
(CMSIS/DSP_Lib/Source/CommonTables),将已经存在于最初安装目录内的arm_common_tables.c写覆盖。
在CMSIS源代码已被下载后,您必须下载并运行德州仪器的SW01291安装程序。这个安装程序位于德州仪器的网站www.ti/lit/zip/spmc017内。此安装程序包含一组在Code Composer Studio中建立和运行CMSIS DSP库所需的支持文件。在您下载了安装程序后,运行安装程序并选择一个提取文件的位置。
3在CCSv5内建立DSP库
这个部分描述了如何从源建立ARM CMSIS DSP库。您可以通过使用一个预编译的.lib(诸如在CMSIS-<;版本>/CMSIS/Lib/ARM or CMSIS-<;版本>/CMSIS/Lib/GCC中到的一个文件),但是这么做要求改变CCS编译器设置以使用与缺省CCS设置不同的方法调用浮点函数。这要求重建所有.lib文件,这些文件被使用在具有DSP库的项目中,最常见的DSP库是StellarisWare®driverlib库。不建议采用这个方法并且此过程未在应用报告中进行说明。
3.1将要求CCS的头文件添加到DSP库中
为了使用Code Composer Studio编译CMSIS DSP库,您必须修改DSP库包含文件。这些包含文件位于CMSIS-<;版本>/CMSIS/Include目录内。对于core_cmInstr.h,core_cmFunc,h和core_cm4_simd.件,请到用来确定哪个编译器正在建立库的#if define statements块。将以下代码添加到针对ICCARM 和GNU编译器的语句之间:
#elif defined(__TMS470__)/*--------TI CCS Compiler--------*/
#include<cmsis_ccs.h>
此代码高速编译器CCS(使用TMS470编译器)被用来建立代码,所以您必须包含cmsis_ccs.h头文件,它定义了调用不同编译器内部函数所需的句法。
您还必须修改core_cm3.h和core_cm4.件。在针对ICCARM和GNUC编译器的语句之间,重新在用于确定使用哪个编译器的#if define statements块中添加以下的代码行。这个语句定义了进行直接汇编调用所需的句法。
#elif defined(__TMS470__)
#define__ASM__asm
www.ti在CCSv5内建立DSP库
最后,通过在string.h和math.h已经被包含在内后添加以下代码块来修改arm_math.件来重新定义用于Code Composer Studio的__INLINE宏:
#if defined(__TMS470__)
#undef__INLINE
#define__INLINE inline
#endif
SW01291安装程序创建一个Include目录,此目录包含这些头文件的预先修订的版本,当前作为CMSIS2.1补丁4。如果您使用预先修订的头文件,您应该重命名最初的Include目录,此目录与CMSIS一起从ARM 下载至Include_backup,然后将Include目录从这个应用报告复制到它的位置。
3.2创建dsplib项目
在CCS中建立DSP库之前,您必须为库创建一个项目。您可通过完成以下步骤来建立一个项目:
1.启动CCSv5并选择一个空的工作区。
2.选择File>New>CCS Project。新的CCS项目窗口显示
3.在项目名称字段中,敲入dsplib-cm4f(或者,如果使用一个Cortex-M3部件的话,敲入-cm3)
4.从Output(输出)下拉菜单中选择Static Library(静态库)。项目的位置无关,所以在这个示例中使用
缺省位置。
5.在Device(器件)区域内,在下拉菜单中进行以下选择:
•系列:ARM
•变量:Cortex M
•部件:Stellaris LM4F232H5QD
6.单击Finish(完成)来创建项目。dsplib-cm4f项目出现在Project Explorer(项目浏览器)中。
在CCSv5内建立DSP库www.ti 3.3添加dsplib源代码
在把dsplib源代码添加到项目中,您应该熟悉CMSIS库结构。
1.使用文件浏览器来导航至从ARM下载的.zip文件被提取的目录中。
2.导航至CMSIS-<;版本>/CMSIS/DSP_Lib/Source/目录。ARM目录包含在具有ARM编译器的µVision
中建立DSP库所需的项目文件,所有其它目录包含建立目录名称所表示的函数类别所需的源代码。这
个示例将针对DSP库的源文件连接至项目工作区。
3.右键单击Project Explorer中的dsplib-cm4项目并单击(导出)
4.单击General来展开,然后单击File System(文件系统)。单击Next。
5.单击Browse(浏览)按钮并导航至CMSIS DSP库源代码的位置。
6.选择您希望导入的文件夹并单击OK。
7.当所选择的文件夹出现在Import窗口中时,单击文件夹复选框来选择那个文件夹导入的所有文件。
8.单击Source复选框左侧的箭头并单击ARM和GCC文件夹来取消选定。
9.请确保Into Folder:文本字段包含您希望导入此文件的DSP库项目的名称。
10.单击Create top-level folder(创建顶级文件夹)复选框来取消选定。
11.单击Advanced按钮,然后单击Create links in workspace(在工作区创建连接)复选框。
12.如果Create link locations relative to:(创建相对连接位置)复选框未被选中,则单击复选框。
13.从环境变量的下拉菜单中选择PROJECT_LOC。如果下拉菜单中没有列出的变量,选择Edit
<(编辑变量)并添加一个变量来代表dsplib项目文件的位置。
www.ti在CCSv5内建立DSP库
14.单击Finish来将文件夹连接至项目。
15.在导入DSP源后,检查Project Explorer并验证10个源目录已被正确地导入到项目工作区中。您应该
在Project Explorer窗口中看到这一点。