CCS 6 新建TMS320F28335工程(可移植))

合集下载

TMS320F28335核心板:Core28335软件调试指南

TMS320F28335核心板:Core28335软件调试指南

如果出现下图所示,则表示仿真器和开发板已连接成功。
第三步: 新建一个工程,如下图
第四步: 选择路径,输入工程项目名,并确定,则如下图所示
第五步: 添加源文件,添加 CMD 文件,如下图所示: 注意:源文件有*.c 文件,也有*.asm 文件
添加 CMD 文件跟添加源文件的方法相似,在这里不在赘述。添加完成后整个工程如下所示:
版权© 2013,株洲市索思达电子有限公司
前言
阅前必读
简介:
本 用 户指 南是 TMS320F28335 DSP 处 理 模板 硬 件使 用说 明书 ,详 细描 述 了
28335实用版 的硬件构成、原理,以及它的使用方法和编程指导。
保修:
所有由株洲市索思达电子有限公司生产制造的硬件和软件产品, 保修期为从发货 之日起一 年。 在保修期内由于产品质量原因引起的损坏, 株洲市索思达电子有限公司负责免费维修。当在 保修期内软件进行了升级, 株洲市索思达电子有限公司将免费提供。
参考资料:
TMS320F28x DSP CPU and Instruction Set Reference Guide (文献号 SPRU430) : 介 绍 TMS320F28x 系列 DSP 的 CPU 结构、指令组、流水线及中断。 TMS320C28x Floating Point Unit and Instruction Set Reference Guide (文献号 SPRUEO2)介绍浮点单元和FPU指令集。 TMS320x28xx, 28xxx Peripheral Reference Guide(文献号 绍 TMS320F28x 系列 DSP 的外设。 TMS320x2833x 献 号 System Control and Interrupts Reference Guide ( 文 SPRU566):介

ccs3.3(28335)如何新建并且配置工程

ccs3.3(28335)如何新建并且配置工程

1、新建工程2、拷贝常用文件3、配置工程特别注意的是,头文件.h 文件是不需要专门添加的,在编译时CCS会自动添加涉及到的头文件。

最后,需要添加主文件main.c。

首先点击CCS左上角的新建按钮新建空白源文件并保存到工程目录下,文件名为:main.c。

并按上述操作将该文件添加到工程中。

对于28335,需要添加的c文件如下图所示,如有需要请按需求添加外设库文件:4、配置工程选项通过Project->Build Option菜单进入设置编译选项窗口。

Include search path路径为..\..\DSP2833x_headers\include;..\..\DSP2833x_common\include ..\..\意思为此文件的上上级目录search path路径为..\..\DSP2833x_headers\includelibraries为rts2800_fpu32.lib为了使工程被编译后自动加载.out文件到仿真平台,所以需要进行一些设置,点击Option->Custom菜单进入自定义设置窗口。

如图4.2所示,在“Program/Project/CIO”分页中勾选“Load Program After Build”。

然后再次编译,这时编译完成后将立即出现如图4.3所示程序加载进度指示窗口。

装载完成后会自动进入仿真状态。

在main.c 文件中添加用户代码,点击按钮或菜单项Project->Build 开始增量编译。

编译成功后,窗口如图4.1所示。

因为上述章节在“build option”中已经指定了新的程序入口点,所以此处出现这个警告是正常的,可以忽略。

CCS.6创建一个工程

CCS.6创建一个工程

CCS6新建工程(28335)最近几天,研究了一下如何在CCS6里面新建工程文件,在这里总结一下,以备不时之需。

一、需要准备的东西1、软件CCS62、Ti的controlSUITE软件,这个软件比较大(压缩包就有2G),它里面有我们需要的库文件。

3、一块开发板,我用的是28335。

二、建立工程的步骤新建空的工程1、点击File》new》CCS Project图1 点击新建工程2、如图2配置图2 配置然后点击Finish。

这是我的工程文件是这样的(图3):图34、新建两个文件夹:source文件夹和include文件夹。

这个是写代码的一种比较好习惯,我们把头文件(.h文件)放在include文件夹里面,把c文件(.c文件)放在source文件夹里面,便于管理。

文件夹建好后如图4:(我把main函数也放进source文件夹了)图45、点击“build”图标(一只锤子),编译一下。

我的这里显示编译成功,但是会有三个建议信息,提示你一些参数应该怎么配置,这里可以不用去管。

图5 编译成功图6 三个建议信息但是现在的工程还没有任何功能,我们需要为它添加一些文件。

6、为工程添加文件、添加头文件在controlSUITE\device_support\f2833x\v142中有DSP2833x_common和DSP2833x_headers两个文件夹,这两个文件夹里面有我们需要的库函数以及相应的头文件,将这两个文件夹中的子文件夹“include”文件夹中的所有h文件拷贝到我们刚刚建立的include文件夹中。

添加完后的工程界面如图7:图7、添加源文件在每一个工程中,有一些源文件(c文件,asm文件,cmd文件)是必须添加的:1、DSP2833x_headers\source目录下的文件,该文件可以指定所有结构体的储存位置,所以只要需要使用定义好的结构体,都必须添加该c文件。

2、DSP2833x_common\source目录下的文件,该文件可以初始化系统的控制选项(PLL、看门狗、预分频)。

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总CCS与仿真器连接问题实际使用过程中,仿真器和CCS连接可能出现这样或那样的问题,也许你的连接很成功,没碰到过什么问题,但我的问题的确不少,可能与电脑配置有关吧,也可能与人品有关吧;下面的自己的一些错误和解决方法总结,不一定对,但也算是一种解决方法,分享给大家:问题:1. jtag连接不上,报错:The controller has detected a dead JTAG clock.The user must turn-on or connect the JTAG clock for the target.连接dm8147没有问题,连接dsp f28335出现此问题;通过不接仿真器测试发现jtag的复位引脚11脚持续的发出低电平,该脚输入WID信号,WID信号输入有问题;所以,还是硬件28335板子硬件上的问题;最后得出:芯片没有问题,是JTAG硬件电路或其他电路的问题;看门狗的复位是由于Flash中没有程序,而复位的低电平脉冲不是造成仿真器连接不了的直接原因;仿真器连接不了,大部分原因是因为JTAG电路的问题,也不排除28335、虚焊、上电顺序等问题;最后查出JTAG上的引脚(TCK、RTCK)有问题!2. The controller has detected a target power loss.The user must turn-on or connect the power supply for the target.看看板子有没有上电。

3. Device is held in reset. Take the device out of reset, and retry the operation.不明原因。

4. The requested TCLK PLL frequency option is invalid.The utility or debugger has requested a selection ofthe JTAG PLL frequency or clock source that is invalid.The value of USCIF.TCLK_FREQUENCY is probably bad.手工设置jtag频率为0后报错5. Failure due to the controller command-finish taking too long.重启ccs或板子看看,一般可以解决。

基于TMS320F28335的程序从FLASH到RAM的移植与运行

基于TMS320F28335的程序从FLASH到RAM的移植与运行
摘 要:在 T 3 0 2 3 5DS MS 2 F 8 3 P里,代码在 片上 F AS 内运行比在 R L H AM 内运行慢得 多,因此对于实时性要 求高的算
法程序的运行是 需要 DS P在 上 电时将这部分代码搬移到 片上 R M 内并在 R M 内运行.本文分析 了 T 3 0 2 3 5DS A A MS 2 F 8 3 P
a o i m r ga whc e n sra— mers o s s e d d t o y tec d M rm L H a d r ni M. hs l r h p o rm ih d ma d e l i ep n ei n e e c p h o e t R g t t o oA f o F AS n R u nA Ti
第 2 卷 第 4期 4
2 1年 1 月 01 2
湖南理工学院学报( 然科学版) 自
Jun l f u a stt o Sine n eh ooy( trl cecs orao H nnI tue f c c dTcn lg Na aSine) ni e a u
V0 .4NO 4 I . 2 De . 0 1 c 2 1

Hale Waihona Puke ( . l g fn oma o n C mmu i t nE gn e ig H n nI s tt o S i c n e h oo y Y e a g 4 4 0 , hn ; 1 Co e e Ifr t na d o l o i nc i n ie r , u a n t ue f c n e dT c n lg , u y n , 1 0 6 C ia ao n i e a 2 C ar nE e t nc o L do Y e a g Y e a g 4 4 0 ) . hi ma l r is . t f u y n , u y n , 1 0 0 co C

DSP28335建工程

DSP28335建工程

CCS 3.3 新建TMS320F28335 工程使用CCS3.3 新建一个空的工程,以工程名Test 为例。

注意路径Location 中不能含有中文。

然后将DSP2833x_common 文件夹和DSP2833x_headers 文件夹拷到工程文件夹Test 中。

这两个文件夹TI 官方有提供。

main.c 文件是自己新建的。

之后,怎么进行接下来的配置呢?下面给大家来详细讲解一下。

右击工程名,选择Build Options,进入设置页面:1、Complier 栏,左列中选择Advanced,最下面的Floating Point Support 中选择fpu32。

2、Complier 栏,左列中选择Preprocessor,在Include Search Path 中,填写$(Proj_dir)\DSP2833x_headers\include;$(Proj_dir)\DSP2833x_common\i nclude 这里是设置头文件索引路径。

3、Linker 栏,左列中选择Basic,在Stack Size(-stack)中填写堆栈大小,可设为0x200 在Code Entry Point(-e)中,填写codestart4、Linker 栏,左列中选择Libraries,在Incl. Libraries中填写rts2800_fpu32.lib5、右击Source,添加所需的.c 文件、.asm 文件和.cmd 文件这里是根据自己的需要添加的,但是一般DSP2833x_common\source 中的DSP2833x_CodeStartBranch.asm DSP2833x_DefaultIsr.c DSP2833x_SysCtrl.cDSP2833x_MemCopy.c DSP2833x_Gpio.c 以及DSP2833x_headers\source 中的DSP2833x_GlobalVariableDefs.c 是都需要用到的。

TMS320F28335中文资料

TMS320F28335中文资料

TMS320F28335中文资料TMS320F28335采用176引脚LQFP四边形封装,其功能结构参见参考文献。

其主要性能如下:高性能的静态CMOS技术,指令周期为6.67 ns,主频达150 MHz;高性能的32位CPU,单精度浮点运算单元(FPU),采用哈佛流水线结构,能够快速执行中断响应,并具有统一的内存管理模式,可用C/C++语言实现复杂的数学算法;6通道的DMA控制器;片上256 Kxl6的Flash存储器,34 Kxl6的SARAM存储器.1 Kx16 OTPROM 和8 Kxl6的Boot ROM。

其中Flash,OTPROM,16 Kxl6的SARAM均受密码保护;控制时钟系统具有片上振荡器,看门狗模块,支持动态PLL调节,内部可编程锁相环,通过软件设置相应寄存器的值改变CPU的输入时钟频率;8个外部中断,相对TMS320F281X系列的DSP,无专门的中断引脚。

GPI00~GPI063连接到该中断.GPI00一GPI031连接到XINTl,XINT2及XNMI外部中断,GPl032~GPI063连接到XINT3一XINT7外部中断;支持58个外设中断的外设中断扩展控制器(PIE),管理片上外设和外部引脚引起的中断请求;增强型的外设模块:18个PWM输出,包含6个高分辨率脉宽调制模块(HRPWM)、6个事件捕获输入,2通道的正交调制模块(QEP);3个32位的定时器,定时器0和定时器1用作一般的定时器,定时器0接到PIE模块,定时器1接到中断INTl3;定时器2用于DSP/BIOS的片上实时系统,连接到中断INTl4,如果系统不使用DSP/BIOS,定时器2可用于一般定时器;串行外设为2通道CAN模块、3通道SCI模块、2个McBSP(多通道缓冲串行接口)模块、1个SPI模块、1个I2C主从兼容的串行总线接口模块;12位的A/D转换器具有16个转换通道、2个采样保持器、内外部参考电压,转换速度为80 ns,同时支持多通道转换;88个可编程的复用GPIO引脚;低功耗模式;1.9 V内核,3.3 V I/O供电;符合IEEEll49.1标准的片内扫描仿真接口(JTAG);TMS320F28335的存储器映射需注意以下几点:片上外设寄存器块0~3只能用于数据存储区,用户不能在该存储区内写入程序.OTP ROM区(0×38 0000~0×38 03FF)为只读空间,存储A/D转换器的校准程序,用户不能对此空间写入程序。

新建ccs6_0与目录无关的工程的方法

新建ccs6_0与目录无关的工程的方法

Ccs6.0下新建工程的方法(与目录无关)(寄语:建立一个ccs工程对于初学者很难,因为初学者还不熟悉ccs的架构,建议不要一上来就建立工程。

这样会导致陌生、畏惧。

建议初学者先在三兄弟提供的例子上改,等对ccs工程架构和常用的文件都熟悉了后再来看本文当,建立自己的工程)1、打开ccs6.0如下图:2、单击:File->New->ccs Project,如下图:在Target标题栏中,我们选择如下图所示在下面的图中,我们选择TMS320F28335;有中文和特殊字符)。

我们不钩选Use default location。

这样,我们可以手动指定我们自己的工程目录。

我们选择Browse...按钮,选择我们的工程要放置的目录。

在这里我们在我们提供的工程目录下添加我们要建的工程文件夹,方法是选择“新建文件夹(M)”,并给文件夹起个名字新起的名字如下:我们选择一个空的工程,方法如下:这样一个空的工程就建立完毕了,在工程目录下只有如下的内容接下来,我们要具备如下四个文件夹首先我们找到我们新建的工程目录,并在目录下面新建如下两个文件夹,一个用来放头文件,一个用于将来数字信号处理时放库文件。

现在用一个比较懒的方法(大家见谅了,不是本人比较懒,注意是大部分客户都还不太熟悉dsp28335的文件构架,还不知道要选哪些文件,索性都选上),我们把SXD28335_common 下的include里面的所有头文件都复制到我们刚建的工程下的include下。

同样的方法,我们把SXD28335B_headers下的include里的头文件都复制到我们新建的工程目录下的include里面;到目前为止,我们的工程目录下面就有很多头文件了这些头文件都是我们刚才复制过来的;接下来,我们要选择我们可能用到的c文件。

首先,我们在SXD28335_common下的source 文件夹下选择我们要用的c文件(每个工程都不一样,可以参考一下我们的《SXD28335固件开发使用说明书》里面有每个工程都用到了哪些文件)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用CCS 6新建TMS320F28335工程
本例程以CCS 6.0下新建TMS320F28335工程为例。

用CCS 5,或者新建TI的其它处理器工程的区别也不大,参考本例即可。

所建工程能够实现完全的可移植,即任意拷贝到其他位置或其他电脑都能够直接编译运行,非常方便。

一、CCS 6.0安装
一路Next即可,在处理器支持页面,选择C2000系列即可。

根据需要选择。

仿真器也是根据实际选择,XDS100是TI官方的,便宜又实在。

跳出是否安装的页面,均选择安装。

安装完成后,CCS5的大学版的license能够继续用。

将其复制到C:\ti\ccsv6\ccs_base\DebugServer\license 即可。

打开软件后,会跳出页面要求设置Workspace路径,注意不能有中文。

Workspace路径也可以更改,如下即可:
二、新建TMS320F28335工程
1)在Workspace文件下,建立Project format for CCS6文件夹,这个文件夹就是我们接下来要建立的工程模板文件夹,需要移植或者拷贝程序,拷贝该文件夹即可。

在Project format for CCS6文件夹下,新建Project文件夹,该文件夹用于存放我们的工程文件。

拷贝以下四个文件夹到Project format for CCS6文件夹下。

DSP2833x_common
DSP2833x_headers
FPUfastRTS
IQmath
注:这四个文件夹可以从TI官方文件得到,需要安装 controlSUITE,TI官网可免费下载。

安装好controlSUITE之后,可以在
C:\ti\controlSUITE\libs\math\
C:\ti\controlSUITE\device_support\f2833x\v141\
中找到上面的四个文件夹。

(v141为版本号,实际不一定是这个版本,可能有更新)
2)新建工程
点击Project New CCS Project
以工程名Test为例。

注意路径Location选择到刚建立的Project文件夹。

点击Finish。

得到的工程如下:
3)从DSP2833x_headers\cmd中拷贝DSP2833x_Headers_nonBIOS.cmd到Project文件夹。

并在Project文件夹下,新建一个 src文件夹,该文件夹将用于存放我们需要用到的源文件。

现在Project文件夹中的文件如下:
4)设置头文件索引路径。

右键点击工程名,选择Properties
选择C2000 Compiler下的Include Options
添加
"${PROJECT_ROOT}\..\DSP2833x_common\include"
"${PROJECT_ROOT}\..\DSP2833x_headers\include"
"${PROJECT_ROOT}\..\FPUfastRTS\V100\include"
"${PROJECT_ROOT}\..\IQmath\v160\include"
添加后如下图所示:
注:V100和V160是版本号,大家根据自己得到的文件夹修正即可。

点击 OK。

我们可以看到Includes栏中,有我们所添加的索引路径,而且不是灰色的,说明添加正确。

5)配置仿真器
右键点击工程名,选择New Target Configuration File
输入名字,这边取为 xml。

点击Finish。

出现以下页面:
选择仿真器型号,这边选的是XDS100V3,器件型号选择28335,点击右侧的Save。

当所选为TI的仿真器,可以点击Test Connection,测试下仿真器是否成功连接。

到现在为止,工程列表如下:
6)添加源文件
这个和CCS 3.3差不多。

将我们需要的 .c文件、.asm文件,复制到src文件夹中。

(源文件用链接的方式导入也可以,但这边选择在src文件夹下拷贝源文件,是为了良好的可移植性考虑的,这样我们整个工程重要文件都在Project文件夹下。


源文件是根据自己的需要添加的,但是一般DSP2833x_common\source中的
DSP2833x_CodeStartBranch.asm
DSP2833x_DefaultIsr.c
DSP2833x_SysCtrl.c
DSP2833x_Gpio.c
以及DSP2833x_headers\source中的DSP2833x_GlobalVariableDefs.c 都是需要用到的。

如果用的ADC,则需添加:
DSP2833x_ADC_cal.asm
DSP2833x_usDelay.asm
DSP2833x_Adc.c
用到中断,需添加:
DSP2833x_PieCtrl.c
DSP2833x_PieVect.c
这边给出我添加的文件示例,如下图所示:
复制到src的文件会显示在工程列表中,如下:
7)如果程序里有三角函数或者开根号等运算,推荐用fastRTS库或者IQmath库来计算。

需要配置如下:
选择C2000 Linker下的File Search Path
在C2000 Linker->File Search Path右边的Include library file or command file中,添加 "rts2800_fpu32.lib"
"rts2800_fpu32_fast_supplement.lib"
在Add <dir> to library search parh中添加索引路径:
"${PROJECT_ROOT}\..\FPUfastRTS\V100\lib"
"${PROJECT_ROOT}\..\IQmath\v160\lib"
然后将最下面的 Disable automatic RTS selection 选中。

添加后如下图所示:
点击Build,在Link Order中,添加两个库文件,并将rts2800_fpu32_fast_supplement.lib 移动到前面,这样该库将被优先索引。

在main.c文件前面,需要添加头文件
#include "math.h"
#include "C28x_FPU_FastRTS.h"
这样,就能使用fastRTS库了。

如果需要用到IQmath库,思路类似,大家自己添加相应的库文件和cmd文件即可。

8)注:要打开我们建立的Test工程, 需要选择到Project文件夹,这是我们工程所在文件夹,上层目录的DSP2833x_common等4个文件夹是为了完全的可移植行准备的。

8)其他说明
cmd文件的选择则根据运行模式选择:
在线仿真模式:添加28335_RAM_lnk.cmd
Flash烧写模式:添加 F28335.cmd
在main.c文件开头,需要引用头文件:
#include "DSP28x_Project.h" //包含所有的外设头文件及宏定义 如果运行在烧写模式,即将程序烧进Flash里,程序里需要包含以下部分:
//重要函数需要在RAM里运行
#pragma CODE_SECTION(函数名1, "ramfuncs");
#pragma CODE_SECTION(函数名2, "ramfuncs");
……
#define RunInFlash //程序烧写标志
在InitPieVectTable(); 后面加入
#ifdef RunInFlash
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
#endif
若编译时若提示内存分配不足,则需根据提示在cmd文件中修改相应内存分配。

通过修改CMD文件能够将整个程序在上电时从Flash拷贝到RAM里运行,这样和在线仿真的运行工况可以说完全一致。

也就无需再写#pragma CODE_SECTION(函数名, "ramfuncs")了,这边就先不展开,大家可以自行百度,我以后有时间再写吧。

By felly77
2016.7.04。

相关文档
最新文档