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 Breakpoint 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。
原因:误点了 project中的build options 中的diagnostics 中的输出_err文件。使得文件中的错误以.err文件的形式输出,而这个文件又打不开,使得错误的文件不能调试,也不能输出.obj文件。
3. line 189: error: expected a ")"
内容为: MatrixInver(m0[4][1],MatrixInver_m00[1][4]4,1); 其实是少了个 “ ,” MatrixInver(m0[4][1],MatrixInver_m00[1][4],4,1); 4. identifier "n" is undefined; identifier "m" is undefined
内容为:Matrix_DEL(float A[],float B[],float C[], n, m)
应改为:Matrix_DEL(float A[],float B[],float C[], int n, int m)
5 2010-9-15 调试串口程序,SCIFFTX及SCIFFRX总是显示有中断,那就说明是有数据到来的,我们的程序是之前调好的,应该没有问题,所以可能是硬件的问题。后来想起,串口A在之前拉飞线时搞坏了,换了B口改了程序,一直不好,用示波器量有数据从IMU发送,研究了好久发现程序有问题,有一个需要将A改为B的地方没有改,就是SCIBSBUF中的。
6 "malloc.h", line 23: fatal error: #error ERROR: Only Mac or Win32 targets supported!
在子函数中加入此头文件就会提示此错误,在主函数中加入此头文件,并且在项目中加入就不会提示此错误。并且在使用时,需要在主函数和子函数中添加头文件#include "stdlib.h"。
7 在矩阵求逆程序MatrixOpp_xm.c中,数据总是算不对。
当测试数据位2*2的矩阵是,程序就能算对,当测试数据为4*4时,就算不对,表现为,指针is和js乱指一气,指向了非法的地址空间。
在网上搜到的资料:杜绝“野指针” “野指针”不是NULL 指针,是指向“垃圾”内存的指针。人们一般不会错用NULL 指针,因为用if 语句很容易判断。但是“野指针”是很危险的,if 语句对它不起作用。
“野指针”的成因主要有两种:
(1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL 指针,它
的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么
将指针设置为NULL,要么让它指向合法的内存。例如 char *p = NULL;
char *str = (char *) malloc(100);
(2)指针p 被free或者delete之后,没有置为NULL,让人误以为p 是个合法的指针。
(3)指针操作超越了变量的作用范围。
于是在程序中将is和js首先赋值 int *is=NULL;int *js=NULL;此时需要加头文件#include "stdlib.h",编译就正确了。
8 问题:在高斯牛顿迭代是,欲迭代十次,因此定义了一个迭代次数变量k_times,但是在运行中间,在进行某个子函数结束返回时,k_times的值被莫名其妙的改变了,因而造成无法正常循环。
原因:k_times是高斯牛顿函数内定义的一个局部变量,因此它的地址是动态分配的,在运行中改变可能是,由于在运行中某个变量占用了,它正在使用的存储地址,因而造成变量一下突然改变又被清零了。
方法:将k_times定义成为一个静态变量stastic,使它所占用的存储空间是不变的,就可以了。但是需要注意,当使用stastic时,该存储空间的内容是不变的,因此当一个十次循环结束,再一次重新进入此循环时,该存储空间存放的k_times的值是上次叠加到的值10。因此必须每次将该值清零,重新叠加。 9 黑莓仿真器无法连接 首先拔掉仿真器和电源,重新启动,如果还是出现相同问题,进入我的电脑,属性中选择硬件,点击设备管理器,找到黑莓。更新驱动程序,选择和CCS3.3同一目录下的方针驱动程序进行安装。如还不行,卸掉驱动软件,插上USB重新检测新硬件,重新更新驱动,根据提示,找东西。目录中有两个方针驱动的安装环境,看清。
10 sin cos函数无法调用,提示找不到这两个函数 应加头文件#include “stdio.h”
11 "kalman_extend.c", line 419: error: argument of type "float (*)[6]" is incompatible with parameter of type "float *"
改成MatrixInver(float A[][],float B[][], int n, int m) 报新错
../head/Matrix_math.h", line 140: error: an array may not have elements of this type
12 Can't Run Target CPU: Error 0x00000020/-1150 Error during: Execution, JTAG protocol reset.
需要更新ccs的烧写插件 及烧写函数库 这个你可以跟就进的办事处要