DSP TMS320C6000基础学习(3)——CCS v5软件开发环境搭建
==================================================
DSP CCS工程文件构成
==================================================
1. 源文件(*.c *.asm)
2. 头文件(*.h *.inc)
3. cmd文件
分为2种。
一种是用来分配RAM空间的,用来将程序下载到RAM内调试,因为开发过程中大部分
时间在调试程序,因此多用这类cmd;
另一种是分配Flash空间的,当程序调试完毕后,需要将其烧写到Flash中固化。
4. 库文件(*.lib *.dll)
库文件包含了寄存器的地址和对应标示符的定义,还包括了标准C/C++运行支持库函数。
*.lib为静态库文件,在编译时调用,调用时直接加载到内存;
*.dll为动态库文件,在运行时调用。
==================================================
创建DSP TMS320C6713工程
==================================================
==================== 准备工作 ====================
1. 从http://www.ti.com/lsds/ti/dsp/c6000_dsp/c67x/toolsw.page下载C6XCSL及其文档
C6XCSL为DSP C6000系列的芯片支持库(TMS320C6000 Chip Support Library)
安装C6XCSL,点击.exe文件(其实就是解压),选择路径,本文为设为
C6XCSL_ROOT=E:\MyDesigner\dsp\C6XCSL
2. 下载并安装破解CCS 5.3,安装路径不要有中文字符
==================== 新建工程 ====================
1. File -> New Project -> CCS Project
工程路径不要有中文字符。
2. 添加库文件
工程右键 -> Add Files...
转到C6XCSL_ROOT\lib_3x下。这里有2个6713系列文件:csl6713.lib和csl6713e.lib。
两者区别是csl6713.lib用于小端(little endian)格式DSP,
而csl6713e.lib用于大端(little endian)格式DSP。
我们新建工程时选择了小端,因此这里选择csl6713.lib。
然后弹出提示,选择“copy to files”将库文件拷贝一份到当前工程。
3. 添加头文件
基本头文件是与库文件对应的。
将C6XCSL_ROOT\include\文件夹拷贝到当前工程目录。
工程右键 -> Properties, Build -> C6000 Compiler -> Include Options,
添加../include头文件搜索目录。
4. 添加.cmd文件,这个可以参考C6XCSL_ROOT\example\下的例子,下面是Timer的例子,
/* Memory Map 0 - the default */
MEMORY
{
PMEM:o = 00000000hl = 00010000h
BMEM:o = 00010000hl = 00030000h
} SECTIONS
{
.text > PMEM
.csldata> PMEM
.stack> PMEM
.far> PMEM
.switch> BMEM
.tables > BMEM
.data > BMEM
.bss> BMEM
.sysmem> BMEM
.cinit> PMEM
.const> BMEM
.cio > BMEM
}
5. 新建mian.c,这个不用多说了吧
#include <csl.h>
void main(void) {
while (1) { }
}
==================== 附属问题 ====================
1. 新建工程结束,右键 -> Build Project,出现如下error,
fatal error #35: #error NO CHIP DEFINED (use -dCHIP_XXXX where XXXX is chip number, i.e. 6201)
原因:使用C6XCSL库需要定义芯片信号,错误提示没定义芯片型号
解决:一种方法,在main.c中的#inclde <csl.h>前添加#define CHIP_6713;
另一种方法,工程右键 -> Properties,Build -> C6000 Compiler -> Predefined Symbols,
在“Pre-define NAME”中添加CHIP_6713
2. 右键 -> Build Project,出现如下warning,
warning #10210-D: creating ".stack" section with default size of 0x400; use the
-stack option to change the default size
warning #10210-D: creating ".sysmem" section with default size of 0x400; use
the -heap option to change the default size
原因:没有设置堆大小(stack size)和栈大小(heap size)
解决:工程右键 -> Properties,Build -> C6000 Linker -> Basic Options,
设置stack size和heap size都为0x3FF。
DSP TMS320C6000基础学习(3)——CCS v5软件开发环境搭建的更多相关文章
- DSP TMS320C6000基础学习(4)—— cmd文件分析
DSP中的CMD文件是链接命令文件(Linker Command File),以.cmd为后缀. 在分析cmd文件之前,必需先了解 (1)DSP具体芯片的内存映射(Memory Map) (2)知道点 ...
- DSP TMS320C6000基础学习(6)—— gel文件
什么是gel文件?gel文件能干什么? gel全称General Extended Language,即通用扩展语言文件,gel文件中由类似C语言的代码构成,gel语言是一种解释性语言,gel文件扩展 ...
- DSP TMS320C6000基础学习(1)——介绍
主要内容 1. Why process signals digitally? (1)模拟电路由模拟组件构成:电阻.电容及电感等,这些组件随着电压.温度或机械结构的改变会动态影响到模拟电路的效果: (2 ...
- DSP TMS320C6000基础学习(7)—— Bootloader与VectorTable
本文主要简单记录C6000在启动装载过程和中断向量表的配置. 1. Bootloader 如上图, (1)在Device Reset阶段: 设备初始化为默认状态,大部分三态输出都配置为高阻态. (2) ...
- [转]CUDA在Windows下的软件开发环境搭建
引自:http://www.makaidong.com/yaoyuanzhi/archive/2010/11/13/1876215.html 本文我们以visual studio 2005 为例演示c ...
- 零基础学习Linux(一)环境搭建
从本文开始我会为大家介绍一下linux环境下详细的集群环境安装.配置.部署到实例演示的整个过程.在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用.今天开始第一步——环境搭建. 第一步 ...
- Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解
一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...
- 【vue基础学习】vue.js开发环境搭建
1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...
- 2019-9-17:基础学习,windows server 2008 r2,搭建web服务器和FTP服务器
一.信息服务iis管理器安装 1,点击打开“服务器管理器”-->选择“角色”-->选择“添加角色”,打开“添加角色向导” 2,点击“下一步”-->勾选“web服务器(IIS)”--& ...
随机推荐
- day04
1.divmod(x,y)获取一个整数x除以y的商和余数 ret = divmod(, ) print(ret) 2.获取随机验证码 import random l = [] , ): t = ran ...
- ALTIUM 10 过孔设置开窗、不开窗
大家或许会发现我们公司做的PCB板子,所有的过孔都开了窗,也就是说过孔没有绿油,这样会导致焊接中容易连焊.兴许大家为此吃进苦头,我是被整了好几次,查了好久却发现是个低级错误,一个过孔连焊到隔壁焊盘了. ...
- PL/SQL 0.几秒出结果,SQL效率一定高吗?
今天开发问我一个问题,PL/SQL很快出结果了,为什么应用还是很慢 create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H ( ...
- 红领:挺进高端 青岛财经日报-htmlmainVerName
红领:挺进高端 青岛财经日报-htmlmainVerName 红领:挺进高端
- 扒一扒ReentrantLock以及AQS实现原理
提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent Util(后面简称JCU)包下面的Lock,今天就来扒一扒Lock是如何实现的,比如我们可以先提出一 ...
- 简单的新闻客户端APP开发(DCloud+thinkphp+scrapy)
前端时间花了1个月左右,搞了个新闻APP,功能很简单,就是把页面版的新闻条目定时爬到后台数据库,然后用app显示出来. 1.客户端 使用了DCloud框架,js基本是个新手,从没写过像样的代码,htm ...
- JAVA并发七(多线程环境中安全使用集合API)
在集合API中,最初设计的Vector和Hashtable是多线程安全的.例如:对于Vector来说,用来添加和删除元素的方法是同步的.如果只有一个线程与Vector的实例交互,那么,要求获取和释放对 ...
- animate.min.css 动画样式移动端存在的问题
使用animate.min.css可以使用很多动画效果,包括3D效果,现在也可以应用于HTML5手机移动端,使用切换效果的时候会导致页面出现卡顿现象,可以使用css3 transform 方法硬件加速 ...
- (转)鸟哥SHELL入门材料
http://blog.chinaunix.net/space.php?uid=9809038&do=blog&cuid=62903 经典入门材料! 学习 Shell Scripts ...
- (转)利用ant在Mac 下自动化打包签名Android程序
1.创建一个android项目 参数说明:-k /--package 为命名空间(包名)-a /--name 工程名-p /--path 项目 -t 为目标平台的版本编号 命令:./android c ...