CCS55应用常见问题解决经验总结全为实践操作所得.docx
- 文档编号:10896139
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:39
- 大小:4.78MB
CCS55应用常见问题解决经验总结全为实践操作所得.docx
《CCS55应用常见问题解决经验总结全为实践操作所得.docx》由会员分享,可在线阅读,更多相关《CCS55应用常见问题解决经验总结全为实践操作所得.docx(39页珍藏版)》请在冰点文库上搜索。
CCS55应用常见问题解决经验总结全为实践操作所得
目次
1 报警信息Warning“compatibilitycannotbedetermined”处理方法
具体报警信息如下:
此信息代表编译obj所用编译器的版本与当前工程的编译器版本不一致(原来是3.3工程编译器与5.5编译器版本是不一样的),但不影响编译生成的结果,可忽略,也可以在属性中使用--diag_suppress=16002
来消除此警告信息
处理步骤:
1)点开工程属性:
2)打开build/C2000linker/AdvancdOption/Diagnose:
3)在suppressdiagnostic下设置:
Diag_suppress=16002
再次编译,问题解决:
2 报警信息Warning“creating".stack"sectionwithdefaultsizeof0x400;usethe-stackoptiontochangethedefaultsize”
具体如下:
根据报警提示,需修改堆栈默认大小=0x400,具体路径如下:
再次编译,报警消除:
3 建议信息advice“Currentoptimization/debugsettings:
-opt_level=off--opt_for_speed=2”
具体信息:
按提示属性修改成如下设置:
opt_level=off
opt_for_speed=2
再次编译,问题消除,编译通过:
4 注释字体大小不一,难以辨认
发现CCS3.3移植到CCS5.5后,注释部分尤其是汉字明显变小,修改字体大小及颜色方法:
进入Preference下:
通过ColorsandFonts来设置!
5 错误Problem:
“cannotfindfile/DescriptionResourcePathLocationType
具体错误:
错误原因:
找不到Flash2812_API_V210库函数,需要添加该库函数。
先找到库函数添加位置:
其中的“CG_TOOL_ROOT”路径定义为:
在自己的调试机上找到该路径:
发现并没有Flash2812_API_V210库函数,将原来CCS3.3工程下的Flash2812_API_V210库函数拷贝到此文件下,再编译没有问题:
6 错误Problem:
”unresolvedsymbol_Flash2812_Erase,firstreferencedin./Par_Var.objPGM48_DO_V1.0F2812_EzDSP_RAM_lnk.cmd”
报错信息:
同5的处理方法一样!
7 错误信息Problem:
”specifiesISArevision"C2800",whichisnotcompatiblewithISArevision"C2700"specifiedinapreviousfileoronthecommandlineProblem”
具体信息如下:
原因分析:
编译器下同时存在多个rts28xx.lib的版本,而工程中添加了该路径的Lib文件,导致编译报错:
C2800与C2700不匹配或者C2800与C28FPU32不匹配!
解决办法:
将编译器下的相关.lib文件剪切到各自工程中,各工程根据自己需要来添加哪些.Lib文件加入:
先删除编译器下相关的.lib文件:
然后工程中加入自己工程下的Lib文件
工程下的各种cmd/.C/.asm/.lib文件都可以通过直接拖到工程下的方式链接到工程。
同时删除属性下的Lib路径设置:
再次编译,没有错误:
8 打开已有CCS5.5工程
1右上角切换到编辑模式
2Project下打开已有CCS5.5工程:
3选择工程名所在路径,并选中工程名:
则自动选中工程了:
点击finish,则工程打开成功!
9 绝对路径设置(编译程序拷贝或剪切到其它电脑或者盘都可用)
当我们在PC机上新建了一个CCS5.5工程,并且成功编译通过。
然后当将该程序剪切到别的盘或者别的电脑再次打开时发现编译报错:
“找不到头文件”
原因很简单:
头文件设置用的是绝对路径:
"D:
\DSP_exe\PGM48_DO_V1.0\DSP281x_common\include"
当剪切到E盘或者其它电脑的E盘或者F盘,则“D:
\DSP_exe\PGM48_DO_V1.0“已经不复存在,故无法找到该路径,头文件自然无法找到,解决办法,改为绝对路径:
"..\..\DSP281x_common\include"则无论是放到哪里,只会识别本工程下的“\DSP281x_common\include“文件夹下的头文件。
如图所示(原来创建到D盘,剪切到E盘了):
剪切到C盘编译:
当然库文件的绝对路径不用修改,因为CCS默认安装是C:
\ti\
10 工程路径定义(不可修改)和源代码链接定义(可修改)
工程安装路径及工程所在路径定义
源代码链接定义(可修改):
11 从CCS3.3移植到CCS5.5的技巧
1)创建工程文件夹
◆首先,需要在电脑某盘下创建相应文件夹如C:
\PGM48_DO_V1.0_CCSV5\PGM48_DO_V1.0_CCSV5,然后将工程指定到该路径下,这样.cproject等文件都在指定文件夹下,否则工程文件会放得到处都是,个人感觉这这一步是便于你管理工程文件和存档。
◆然后,将cmd文件拷贝到该工程文件夹下。
◆在工程名文件夹同一级下创建common/headers、UserHeader/UserSource等文件夹。
◆将原来CCS3.3中的common/headers都拷贝过来,将原来CCS3.3自己设计的头文件和源程序.C文件分别拷贝到UserHeader/UserSource下。
◆将原来CCS3.3中的库文件”Flash2812_API_V210.lib”拷贝到编译器lib安装路径下“C:
\ti\ccsv5\tools\compiler\c2000_6.2.0\lib”。
自此,原来CCS3.3下的所有类型文件(.C/.h/.cmd/.lib/.asm)文件都已经在工程文件夹下。
2)将相关源文件、头文件、cmd文件、库文件链接到程序工程中。
◆.C/.cmd/.asm直接链接到工程中。
通过单击右键“Addfile”
然后选中相应文件:
选中linktoproject:
则链接完成。
3)设置.h和.lib的链接路径(必须是相对路径,如果是绝对路径则程序被剪切到其它位置后编译会出错)。
◆头文件链接加入方法
单击右键选中“Properties“打开.在Build/IncludeOptions/下添加你工程所需头文件:
"..\..\DSP281x_common\include"
"..\..\DSP281x_headers\include"
"..\..\UserHeader"
系统自带头文件是自动加入的:
"${CG_TOOL_ROOT}/include"
其中CG_TOOL_ROOT在linkedResource可以找到:
◆.lib文件链接加入方法:
在FileSearchPath下通过"${CG_TOOL_ROOT}/lib"添加进来,前提是”Flash2812_API_V210.lib“已经拷贝到CG_TOOL_ROOT下,否则编译出错,提示找不到FLASH_api系列的函数和变量,无法生成.OUT.
4)保存工程,开始编译整个工程。
一般会出现,API库版本不兼容的报警,不过不影响编译结果,这个紧紧是因为CCS5.5编译了原来CCS3.3下的API函数而已,该报警处理方法见报警信息Warning“compatibilitycannotbedetermined”处理方法。
另外,还会出现堆栈值报警,该报警信息处理见Warning“creating".stack"sectionwithdefaultsizeof0x400;usethe-stackoptiontochangethedefaultsize”的处理方法。
12 CCS3.3与CCS5.5异同比较
CCS3.3工程
CCS5.5
3.3下.lib显示在工程下,并且可以手动增减。
5.5必须是路径设置自动查找,并且不显示在工程下。
3.3工程下的文件是分类列出,5.5则没有,但其头文件自动显示了所在位置源头。
3.3的连接目标板和仿真器是通过与CCS独立的SetUP来设置,5.5则集成进来,只需要配置文件TargetConfig中将芯片型号和仿真器型号设置好就OK了。
3.3的头文件添加时通过Project下的Buildoption来设置的:
而5.5则是通过属性设置的。
3.3头文件设置位置
IncludeSearchPath中设置了绝对路径:
..\..\DSP281x_headers\include;..\..\DSP281x_common\include没有引号
3.3库函数添加:
在Libraries下的SearchPath中设置为:
..\..\DSP281x_headers\include
所以即便工程中不含rts2800_ml.lib,工程编译也不会出错(测试过)。
但exmple工程下的Lib和.h文件是如何添加进去的呢?
毕竟buildoption下没有添加他们的头文件路径,仔细分析发现:
5.5下头文件可以手动添加和删除,3.3下头文件无法手动删除,添加方法是通过将头文件放置到工程路径下,然后再需要调用的.c文件下包含该头文件,则头文件自动添加进去了。
是手动添加进去的,CC5.5也能添加,但此种方法操作头文件后路径则不会显示出来,而且跟.C文件混在一起不易查找,不建议这么做。
13 从3.3转为5.5时通用板程序.ebss分配的内存空间不足
左图是CCS5.5,右图是CCS3.3
原本没有错误的,但移植到5.5报错:
原因是.ebss分配空间变大很多,超出0X1000,无法生成.OUT文件。
其它PGM48-DO/AI/DI/DI6pulse转换都没有问题,转换方法一样。
细查代码发现在Example_Flash281x_API.h中原CCS3.3的buffer定义如下:
#defineWORDS_IN_FLASH_BUFFER0x800//Programmingdatabuffer,Words
externvolatileUint16Buffer[WORDS_IN_FLASH_BUFFER];
而CCS5.5的的buffer定义如下:
#defineWORDS_IN_FLASH_BUFFER0x800//Programmingdatabuffer,Words
volatileUint16Buffer[WORDS_IN_FLASH_BUFFER];
即5.5中的Buffer变成了一个800个元素的Uint16数组,导致占用了大量内存空间,将原CCS3.3的Example_Flash281x_API.h重新拷贝到CCS5.5下,重新加载编译,工程编译通过!
!
14 创建的CCS5.5工程文件夹名修改后不可用
发现:
创建了PGM48相应的DO/AI/DI等系列工程编译都没有问题,拷贝的其它盘的任何英文路径或者其它电脑都没有问题,但拷贝用于地铁打磨车需要对工程文件夹重新命名则发现修改名字后工程编译有问题了。
没有解决:
15 程序修改记录及修改对比
在编辑器中右键单击一个文件,选择“团队->显示本地的历史”(Team->ShowLocalHistory)
您可以把当前的源文件对任何以前的版本作比较或回滚到以前的版本
打开方式:
历史记录如下:
如果发现修改程序引起很大错误,则可以通过:
右键单击该项目,并在菜单中选择“从本地历史恢复”(RecoverfromLocalHistory)
恢复到未修改前的程序版本。
16 新建库文件并且调用库文件中的函数
该方法主要是对自己编写的一些关键重要函数进行保护和保密,同时让使用者又直接调用使用。
新建工程选择输出为Library格式,而不是Executable(.OUT),
新建目标函数.C和.H文件:
编译通过会发现DEBUG文件夹下有.lib文件:
将该.LIB文件拷贝到需要调用该LIB库中函数的工程文件夹下,并且链接到该工程文件:
通过添加头文件调用该函数:
17 工程文件的注释文字出现乱码解决办法
出现乱码时:
单个源代码的乱码问题:
首先单击右键选择属性:
然后Resource下找到Textfileencoding:
最后将UTF-8格式改成GBK格式:
应用GBK格式后:
如果是整个工程都出现文字乱码则统一修改:
需要注意的是:
无论是哪种方式修改必须都是先从上层修改开始,依次到下层:
即工作空间->工程—>源文件
其中工作空间修改的方式如下:
GBK与UTF-8区别,XX答案:
字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。
至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。
对于英文字符较多的论坛则用UTF-8节省空间。
GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。
所以,对于英文比较多的论坛,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。
UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛,GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大~
18 编译好的工程拷贝到其它路径下变成出错:
“gmake:
***Noruletomake”
原本工程路径如下:
加载到CCS5.5编译正确通过!
但拷贝一份到其它路径:
编译却出错:
查看头文件设置的都是绝对路径,在工程中也加载进来了,什么原因?
但将工程文件直接拷贝到D或者E盘下编译都没有问题,什么原因?
19 工程文件管理及版本变更方法
如果对程序要进行版本修订,又要保持一份原版本的,则可通过以下方法实现:
新建一个文件夹“WlCnt_EthDrive”,用于存储所有版本:
将原始老版本V1.0(在CCS5.5下新建工程生成的)拷贝进去,在再次文件夹下将V1.0复制一份命名为V1.1,同时在CCS5.5下打开后将工程名改为V1.1,否则CCS会任务与原工程同名,编译没有问题!
如果再用V1.1去创建V1.2会发现,V1.2工程链接到V1.1的.C去了,这样在编辑代码时实际是编辑了V1.1工程下的源代码,所以必须用原本创建!
20 附件
附件1:
2812寄存器查询
附件2:
MCP2515寄存器查询
附件3:
SAE_J1939-71应用层-车辆
附件4:
28335寄存器查询
附件5:
MCU_DSP_SOFTWAREV1.0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CCS55 应用 常见问题 解决 经验总结 实践 操作 所得