==================================================

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软件开发环境搭建的更多相关文章

  1. DSP TMS320C6000基础学习(4)—— cmd文件分析

    DSP中的CMD文件是链接命令文件(Linker Command File),以.cmd为后缀. 在分析cmd文件之前,必需先了解 (1)DSP具体芯片的内存映射(Memory Map) (2)知道点 ...

  2. DSP TMS320C6000基础学习(6)—— gel文件

    什么是gel文件?gel文件能干什么? gel全称General Extended Language,即通用扩展语言文件,gel文件中由类似C语言的代码构成,gel语言是一种解释性语言,gel文件扩展 ...

  3. DSP TMS320C6000基础学习(1)——介绍

    主要内容 1. Why process signals digitally? (1)模拟电路由模拟组件构成:电阻.电容及电感等,这些组件随着电压.温度或机械结构的改变会动态影响到模拟电路的效果: (2 ...

  4. DSP TMS320C6000基础学习(7)—— Bootloader与VectorTable

    本文主要简单记录C6000在启动装载过程和中断向量表的配置. 1. Bootloader 如上图, (1)在Device Reset阶段: 设备初始化为默认状态,大部分三态输出都配置为高阻态. (2) ...

  5. [转]CUDA在Windows下的软件开发环境搭建

    引自:http://www.makaidong.com/yaoyuanzhi/archive/2010/11/13/1876215.html 本文我们以visual studio 2005 为例演示c ...

  6. 零基础学习Linux(一)环境搭建

    从本文开始我会为大家介绍一下linux环境下详细的集群环境安装.配置.部署到实例演示的整个过程.在此过程中会给大家详细介绍一下Linux的操作技巧和一些工具的使用.今天开始第一步——环境搭建. 第一步 ...

  7. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  8. 【vue基础学习】vue.js开发环境搭建

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  9. 2019-9-17:基础学习,windows server 2008 r2,搭建web服务器和FTP服务器

    一.信息服务iis管理器安装 1,点击打开“服务器管理器”-->选择“角色”-->选择“添加角色”,打开“添加角色向导” 2,点击“下一步”-->勾选“web服务器(IIS)”--& ...

随机推荐

  1. 图的建立——邻接表表示(C语言+VC6.0平台)

    图是一种重要而且相对复杂的数据结构,在实际编程中非常有用.邻接表是图的主要表示形式之一,是一种链接表表示方法. #include<stdio.h> #include<stdlib.h ...

  2. [转]Android读写文件

    一.       从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写) String res = ""; try{ InputStream in = ge ...

  3. 通过Linux系统Cron执行OwnCloud计划任务

    通过Linux系统Cron执行OwnCloud计划任务 02/02/2013 CRON的确是一个非常有用的功能,它有效减少了系统的负载,在将WordPress和StatusNet的任务计划都转换到Cr ...

  4. HDU - 5156 Harry and Christmas tree

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=5156 题意 : 给一颗编号为1-n的以1为根的树, 已知有m个颜色的礼物分布在某些节点上(同一节点 ...

  5. 九度oj 1482:玛雅人的密码

    题意:输入一个长度为n(2<=n<=13)的字符串(所有字符为'0','1'或'2'),通过交换相邻的两个字符,至少要交换多少次才能处出现字串"2012",输出这个值, ...

  6. enable ide

    http://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE The vmware system consists of two dis ...

  7. 关于java中是引用传递还是值传递的问题!!!经常在笔试中遇到,今天终于弄明白了!

    关于JAVA中参数传递问题有两种,一种是按值传递(如果是基本类型),另一种是按引用传递(如果是對象).首先以两个例子开始:1)public class Test2 { public static vo ...

  8. iOS--创建uiscrollview

    //创建uiscrollview self.PageHeight = self.view.bounds.size.height; self.PageWidth = self.view.bounds.s ...

  9. 数组对象元素的添加,String对象,BOM对象以及文档对象的获取

    数组对象的删除有三种方法: pop();        //移除最后一个元素并返回该元素值shift();      //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); / ...

  10. 10个利用Eclipse调试Java的常见技巧

    http://www.open-open.com/news/view/1ad9099 阅读目录 1. Conditional Breakpoint 2. Exception Breakpoint 3. ...