ccs33中建立-编译-调试工程及常见错误讲解.
ccs3.3中建立-编译-调试工程及常见错误讲解

Part1:ccs3.3中新建一个DM6437的示例工程1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子2、用file-new选择建立一个dsp/bios文件在打开的对话框中选择你使用的板子的型号,如下图:3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。
保存这个文件到工程目录下先,文件类型为tcf。
4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。
此时将tcf文件和这个cmd文件同时添加到工程中,使用5、然后需要修改一个编译选项,点击下图所示选项进去:6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成-mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。
7、file-new-source file建立一个c源文件,保存并加入到工程中。
以下是示例程序:#include <std.h>#include <string.h>#include <stdio.h>Int main(Int argc, String argv[])//main函数的类型必须这样写{unsigned int i;unsigned int sum=0;for(i = 0; i<=100; i++ ){sum += i;}printf("the sum = %d .\n",sum);printf("the program run over!\n");printf("the program run over!\n");}注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。
浅析C语言程序调试过程及编程常见错误

浅析C语言程序调试过程及编程常见错误C语言是一种广泛使用的程序设计语言,常用于开发系统软件和应用软件。
在编写C语言程序时,经常会出现一些错误和bug,因此调试是程序开发过程中不可或缺的一步。
本文将从浅析C语言程序调试过程及编程常见错误两个方面进行分析。
一、C语言程序调试过程1.编译程序:在进行调试前,首先需要将源代码编译成可执行文件。
编译过程中会进行词法分析、语法分析、语义分析等操作,同时会检查语法错误并生成目标代码。
2.设置断点:在需要调试的程序代码中,通过设置断点来指定程序的一些位置停止执行。
断点可以设置在任何地方,包括函数调用、循环语句等。
3.运行程序:运行调试器,加载编译得到的可执行文件,并运行程序。
当程序执行到设置的断点位置时,会自动暂停执行。
4. 调试程序:在暂停执行的位置,可以查看变量的值、执行堆栈信息、运行指令等。
通过观察这些信息,可以发现程序中的错误或bug。
5.单步执行:在调试过程中,可以选择单步执行程序。
单步执行可以按照一条指令一条指令地运行程序,并观察程序的执行情况。
这样可以更精确地找到问题所在。
6. 修改程序:当发现错误或bug时,需要对程序进行修改。
修改可以包括更改变量的值、调整算法逻辑等。
修改后需要重新编译并重新运行程序。
7. 重复调试:进行一次修改后,需要再次运行程序并进行调试。
在多次调试中,需要逐步修复所有的错误和bug,直到程序能够正常运行。
1.语法错误:语法错误是最常见的错误之一、例如忘记加分号、括号不匹配、变量未声明等。
这些错误在编译时会被检测到,并给出详细的错误提示。
2.逻辑错误:逻辑错误是程序中最难调试的错误之一、逻辑错误导致程序的行为和期望的不一致,但不会引发编译错误。
调试逻辑错误需要仔细检查算法和代码逻辑,并通过查看变量值等调试信息逐步找出错误所在。
3.数组越界错误:当访问数组时,需要确保不超出数组的范围。
如果越界访问数组,可能导致程序崩溃或产生不可预料的结果。
CCS3.3编译中常见错误解决(有备无患)

CCS3.3中常见问题解决(待续)(2013-05-22 18:05:59)转载▼问题1:用CCS3.3编译时出现“entry point other than _c_int00 specified”的错误的问题解决出现的错误如下:[Linking...] \"D:\\CCStudio_v3.1\\C2000\\cgtools\\bin\\cl2000\" -@\"Debug.lkf\">> warning: entry point other than _c_int00 specifiedBuild Complete,0 Errors, 1 Warnings, 0 Remarks.此错误在Autoinit Model:Project>Build Options…>Linker>Basic选择Run-Time Autoinitialization不变,只需把Code Entry Point:项的code_start 改为:c_int0问题2:用CCS3.3编译时出现“last line of file ends without a newline”的错误的问题解决出现的错误如下:"expFile.c", line 7: warning: last line of file ends without a newline[Linking...] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -@"Debug.lkf"Build Complete,0 Errors, 1 Warnings, 0 Remarks.此错误在程序.C代码的最后一行打几个回车问题3:用CCS3.3编译时出现“linking files with incompatible memory models (*\\rts2800.lib', member'args_main.obj')”的错误的问题解决出现的错误如下:>> error: linking files with incompatible memory models (library 'C:\\CCStudio_v3.3\\C2000\\cgtools\\lib\\rts2800.lib', member 'args_main.obj')>> Compilation failureBuild Complete,n Errors, 0 Warnings, 0 Remarks.此错误将库文件rts2800.lib移除(右击rts2800.lib>Remove from projet),然后添加rts2800_ml.lib库(右击Libraries>Add Files to project...>CCstdio_v3.3\C2000\cgtools\librts2800_ml.lib)。
编程中常见的错误与调试方法

编程中常见的错误与调试方法在编程过程中,经常会遇到各种错误,这些错误可能会导致程序无法正常执行或产生意料之外的结果。
为了解决这些问题,我们需要掌握一些常见的错误类型以及相应的调试方法。
本文将介绍一些在编程中常见的错误,并分享一些有效的调试技巧。
一、语法错误语法错误是编程中最常见的错误之一。
当编写代码时,如果违反了编程语言的语法规则,编译器将发出错误提示。
语法错误可能包括拼写错误、缺少分号、错误的标点符号等。
为了解决语法错误,我们可以仔细检查代码,特别是在出现错误提示时,查看引起错误的代码行并进行修正。
二、逻辑错误逻辑错误是指代码没有按照我们预期的方式执行,而不会被编译器检测到。
这类错误常常是由于程序员对问题理解的不准确或者代码逻辑设计有误导致的。
调试逻辑错误的方法包括使用调试工具(如断点调试)、添加输出信息以及使用单元测试等。
通过逐步追踪代码的执行过程,我们可以找到问题所在并进行修正。
三、运行时错误运行时错误是指在程序运行过程中出现的错误。
这类错误可能包括除零错误、空指针引用、数组越界等。
为了解决运行时错误,我们可以使用异常处理机制来捕获和处理异常。
通过在代码中添加适当的异常处理语句,可以使程序在出现异常时不会崩溃或产生不可预期的结果。
四、死循环死循环是指程序中出现了无法跳出的循环。
这类错误常常是由于循环条件设计有误或循环内部的控制逻辑错误导致的。
要解决死循环问题,可以使用调试工具来逐步执行代码,并检查循环条件和循环内部的代码是否正确。
另外,合理使用循环计数器和循环终止条件也可以有效避免死循环的发生。
五、内存错误内存错误是指对内存的错误使用,包括内存泄漏和内存非法访问等。
内存泄漏是指程序在使用完内存后没有正确释放,导致内存占用过多。
内存非法访问是指对未分配或已释放的内存进行读写操作。
为了解决内存错误,我们可以使用内存检测工具来检查代码中的潜在问题,并使用动态内存分配的相关方法来管理内存的申请和释放。
ccs3.3 错误总结

1. 提示错误:Trouble Setting Breakpoint with the Action "Halt Target" at 0x3ec3bf: Error 0x0000000A/-2140 Error during: Memory, Break Point, Cannot access memory address at 0x00000800 Sequence ID: 7 Error Code: -2140 Error Class: 0x0000000A设置硬件断点的方法:debug---breakpoints 在弹出的对话框中在breakpoint 下拉框中选H/W break/////但是必须要有硬件,我试过了,没有硬件的情况下是没有的,没有联上硬件的情况下是不能选择的如果第一次能够启动CCS,但接下来得到CCS不能初始化目标系统DSP的出错信息则可选择Debug→Reset DSP菜单项。
若还不能解决上述问题,你可能需要运行你的目标板所提供的复位程序。
我的工程在CCS3.3版本下不能设置断点,在CCS2.2版本下可以设置断点,是什么原因?我用合众达的XDS100仿真器和CCS3.3软件,可以给F2808的板子下载程序,但是不能设置断点。
相同的程序在CCS2.2版本下可以设置断点。
请问是怎么回事?答:在ccs3.3环境下,程序在FLASH中调试。
不能设置断点。
因为系统默认会设置两个断点。
这样在程序段中就不能设置断点了。
通过设置,CCS3.3中的选中Option中的Customize。
接着选中Program/Project/CIO,子菜单中勾选Do Not Set CIO Breakpoint AT……和Do Not Set End of Program Brea kpoint AT……。
点击确定即可。
即可在flash中调试设置两个断点了。
2 error: system error, can't open file'E:\DSP\DSP\sprc100\DSP281x_examples\kalman-zhangna01\Debug\kalman_na .obj' for input: No such file or directory。
CCS编译错误和警告信息

C28x编译器错误和警告消息From Texas Instruments Wiki从德州仪器维基Jump to:跳转到:navigation导航,search搜索Translate this page to TranslateShow originalC28x Compiler Error and Warning MessagesC28x编译器错误和警告消息Contents内容[hide]∙11Introduction介绍∙22Possible Errors,Warnings and Remarks可能的错误、警告和言论∙33Common Errors and Warnings常见的错误和警告o 3.13.1Warning:build attribute vendor section TI missing in "<library or object>:compatibility cannot be determined警告:构建属性供应商部分TI失踪”<图书馆或对象>:兼容性不能确定o 3.23.2fatal error:file.....rts2800_fpu32.lib<boot.致命错误:文件.....rts2800_fpu32.lib<引导。
obj>"specifies ISArevision"C28FPU32",which is not compatible with ISArevision"C2800"specified in a previous file or on thecommand lineobj>“指定ISA修订“C28FPU32”,这不是兼容ISA修订“C2800”之前的文件中指定或在命令行上o 3.33.3Warning:entry-point symbol other than"_c_int00"specified:"code_start"警告:入口点符号除了“_c_int00”规定:“code_start”o 3.43.4Error:unresolved symbols remain....错误:未解决符号保持....o 3.53.5Error:Tag_ISA attribute value of"2"that is different than one previously seen("1");combiningincompatible files错误:Tag_ISA属性值的“2”是不同于一个以前见过(“1”);结合不兼容的文件o 3.63.6Error:Tag_Memory_Model attribute value of"1"that is different than one previously seen("2");combiningincompatible files错误:Tag_Memory_Model属性值“1”,是不同于一个以前见过(“2”);结合不兼容的文件o 3.73.7Error:placement fails for object"csmpasswds"错误:放置失败对象“csmpasswds”o 3.83.8Warning:function declared implicitly警告:数的隐式声明o 3.93.9Error:placement fails for object错误:放置失败的对象o 3.103.10Error:placement fails for object".text错误:对象放置失败”text。
ccs33中建立-编译-调试工程及常见错误讲解

Part1:ccs3.3中新建一个DM6437的示例工程1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子2、用file-new选择建立一个dsp/bios文件在打开的对话框中选择你使用的板子的型号,如下图:3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。
保存这个文件到工程目录下先,文件类型为tcf。
4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。
此时将tcf文件和这个cmd文件同时添加到工程中,使用5、然后需要修改一个编译选项,点击下图所示选项进去:6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成 -mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。
7、file-new-source file建立一个c源文件,保存并加入到工程中。
以下是示例程序:#include <std.h>#include <string.h>#include <stdio.h>Int main(Int argc, String argv[])//main函数的类型必须这样写{unsigned int i;unsigned int sum=0;for(i = 0; i<=100; i++ ){sum += i;}printf("the sum = %d .\n",sum);printf("the program run over!\n");printf("the program run over!\n");}注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。
ccs导入工程步骤以及编译报错解决方法

标题:深度解析CCS导入工程步骤及编译报错解决方法在软件开发领域,CCS(Code Composer Studio)是一款非常重要的集成开发环境,常用于嵌入式系统的软件开发。
在本文中,我们将深入探讨CCS导入工程的步骤,并针对可能出现的编译报错,提供解决方法。
通过本文的阅读,读者可以更全面、深刻地理解CCS的使用方式,对软件开发也会有更深入的了解。
一、CCS导入工程步骤1.下载CCS软件并进行安装需要从TI官网下载最新版本的CCS软件,并按照官方指引进行安装。
安装完成后,打开CCS软件,我们可以开始导入工程了。
2.导入工程文件在CCS软件界面中,选择“File”->“Import”,然后选择“CCS Project”进行导入。
在弹出的窗口中,选择工程文件所在的路径,然后点击“Finish”按钮即可成功导入工程。
3.配置工程属性在导入工程后,需要根据具体的硬件评台和编译器配置工程属性。
选择合适的目标芯片型号、编译器版本、调试器类型等。
这些属性的设置需要根据实际情况进行调整,以确保后续的编译和调试顺利进行。
4.检查工程文件结构在导入工程后,需要仔细检查工程文件的结构,包括源文件、头文件、库文件等是否正确导入。
有时候在导入工程时,可能会出现一些文件漏导致编译报错,因此及时检查并修复这些问题非常重要。
二、编译报错解决方法在进行CCS工程编译时,可能会出现各种报错信息。
以下是常见的编译报错及相应的解决方法:1.error: #20: identifier “xxx” is undefined这种报错通常是由于未包含对应的头文件引起的。
解决方法是确认相关头文件是否正确导入,并在源文件中正确引用。
2.error: #10234-D: unrecognized pragma这种报错通常是由于编译器不支持或不识别的编译指令引起的。
解决方法是查阅编译器手册,确认该编译指令的使用方法是否正确。
3.error: #10099-D: program will not fit intoavailable memory …这种报错通常是由于代码大小超出了目标芯片的可用空间引起的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Part1:ccs3.3中新建一个DM6437的示例工程1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子2、用file-new选择建立一个dsp/bios文件在打开的对话框中选择你使用的板子的型号,如下图:3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。
保存这个文件到工程目录下先,文件类型为tcf。
4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。
此时将tcf文件和这个cmd文件同时添加到工程中,使用5、然后需要修改一个编译选项,点击下图所示选项进去:6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成-mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。
7、file-new-source file建立一个c源文件,保存并加入到工程中。
以下是示例程序:#include <std.h>#include <string.h>#include <stdio.h>Int main(Int argc, String argv[])//main函数的类型必须这样写{unsigned int i;unsigned int sum=0;for(i = 0; i<=100; i++ ){sum += i;}printf("the sum = %d .\n",sum);printf("the program run over!\n");printf("the program run over!\n");}注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。
这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs 会提示如下警告和错误:>> warning: entry point symbol _c_int00 undefinedundefined first referencedsymbol in file--------- ----------------_printfE:\\WorkContent\\projectExample\\Test\\Debug\\test.obj>> error: symbol referencing errors - './Debug/Test.out' not built2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样写:-c-stack 0x00001000 /* Stack Size */-heap 0x00001000 /* Heap Size *///前面这三项必不可少MEMORY{L2RAM: o = 0x10800000 l = 0x00020000DDR2: o = 0x80000000 l = 0x10000000}SECTIONS{.bss > L2RAM.cinit > L2RAM.cio > L2RAM.const > L2RAM.data > L2RAM.far > L2RAM.stack > L2RAM.switch > L2RAM.sysmem > L2RAM.text > L2RAM.ddr2 > DDR2}另外,我在使用dsp/bios自动生成的cmd文件进行编译的时候,不会报错误或警告,但是printf就是不能输出任何东西,后来解决了,具体解决方法见后面的:“ccs编译中常见的编译错误及解决方法”的第4部分8、compile-rebuild all;无错误提示。
此时项目就建立并编译好了。
下面就要把程序加载到板子上运行了。
9、首先要先连接板子,点击debug->connect10、如果连接成功,会看到下面的效果:未连接时:连接成功后:连接成功的同时,ccs会打开一二Disassembly窗口,如下图:11、加载程序吧,程序编译后,会在当前目录的Debug目录下生成一个*.out的文件,此例中的文件是“6467EXAM.out”;通过file->load Program加载这个文件加载后,Disassembly窗口中会有所变化,如下图:12、Debug->Run去吧提示:1 Ccs的项目不支持创建在中文目录下。
2 项目移动到其他文件夹下面时,需要修改*.pjt中的[Project Settings]ProjectDir="E:\WorkContent\projectExample\6467EXAM" 到新的目录。
很简单的一个例子。
希望能帮助入门的朋友。
Part2:ccs中工程的创建-改变工程目录时注意的细节以6437为例:1、在安装目录下,打开如下路径下的示例工程:video_loopbackC:\CCStudio_v3.3\boards\evmdm6437_v2\tests\video_loopbackOk,如果板子没问题,肯定能编译成功的。
2、有时候我们需要搬移自己的工程到别的目录或别的机器上去,此处,将这个工程拷贝到F盘中去,再重新打开,编译,你会发现此时提示以下错误:"main.c", line 12: fatal error: could not open source file "evmdm6437.h""tvp5146.h", line 12: fatal error: could not open source file "evmdm6437_i2c.h""video_loopback_test.c", line 12: fatal error: could not open source file "evmdm6437_dip.h"找不到对应的头文件了??并且你在工程中也打不开这几个文件,打开时会提示:3、看来ccs在找这些个头文件时,没有从工程中获取正确的路径信息,打开项目文件,此处是:video_loopback.pjt,会发下以下几行:["Compiler" Settings: "Debug"]Options=-g -q -fr".\Debug\" -i"..\..\include\" -d"_DEBUG" -mv6400+["Compiler" Settings: "Release"]Options=-q -o3 -fr".\Release\" -i"..\..\include\" -mv6400+看意思是说,包含的头文件的路径是在..\..\include\目录下面;如果这个项目在原来默认的目录下,那么是正确的。
因为的确能看到所谓的include文件夹,他们就是在ti默认安装目录下面的。
但是由于我们改变了项目的路径,那么这些个目录肯定是不对的,所以ccs无法找到这些个文件了。
4、那是不是修改过来就好了。
答案是肯定的也是否定的,如果我们找到这个include目录,并写到pjt文件中,如下所示:["Compiler" Settings: "Release"]Options=-q -o3 -fr".\Release\"-i"C:\CCStudio_v3.3\boards\evmdm6437_v2\include\" -mv6400+那么肯定是可以的。
但是如果我们拷贝到别的机器上,而别的机器上的开发板驱动或ccs的安装路径和我们不一样的话呢?难道重新再找一遍再写一遍??5、可能你已经想到了,使用相对路径,那么我们先看看ccs都在我们环境里面注册了那些环境变量:5.1、打开cmd,切换到c盘。
然后输入以下命令:set>a.txtSet命令是查看系统中注册的环境变量的。
>操作符是用来重定向用的,可以将查询到的结构重定向到一个txt文件中。
所以上面的命令是那么写的。
5.2打开a.txt.会看到一堆的环境变量。
其中有这么几个是ccs相关的:BIOSDVSDK_INSTALL_DIR=C:\dvsdk_1_01_00_15BIOSUTILS_INSTALL_DIR=C:\dvsdk_1_01_00_15\biosutils_1_00_02BIOS_INSTALL_DIR=C:/CCStudio_v3.3/bios_5_31_07BSL_EVMDM6437_INSTALLDIR=C:\CCStudio_v3.3\boards\evmdm6437_v 25.3第四个就是我们想要的目录了。
那么现在修改pjt文件中的那两行内容为:["Compiler" Settings: "Debug"]Options=-g -q -fr".\Debug\" -i"%BSL_EVMDM6437_INSTALLDIR%/include"-d"_DEBUG" -mv6400+["Compiler" Settings: "Release"]Options=-q -o3 -fr".\Release\"-i"%BSL_EVMDM6437_INSTALLDIR%/include" -mv6400+5.4编译,连接成功。
并且再也不怕移来移去了。
5.5注意:有时候可能还有一个地方需要该:[Project Settings]ProjectDir="E:\WorkContent\projectExample\video_loopback"指向项目文件的绝对路径。
而项目文件中的相对路径都是基于该路径。
Part3:ccs编译中常见的编译错误及解决方法1 fastcopy 提示找不到ialg.h等头文件,打开cmd文件后看到目录包含命令有:-i"%XDAIS_INSTALL_DIR%/packages但是系统中没有XDAIS_INSTALL_DIR这个环境变量,于是找到xdais的安装目录:C:\dvsdk_1_01_00_15\xdais_5_21\然后添加系统环境变量:变量名:XDAIS_INSTALL_DIR变量值:C:\dvsdk_1_01_00_15\xdais_5_21\注销或重启或者kill掉explorer后在运行即可2 ccs提示:could not open source file "ti/sdo/fc/acpy3/acpy3.h"。