CCS 3.3 在运行时报错Power Failure on Target CPU: Error 0x80000020/-1031 Fatal Error during: 30
用28335的DSP驱动产生PWM信号给放大电路。控制回路和放大回路之间有光电耦合,但是一旦打开功率电源,CCS3.3就会报错PowerFailureonTargetCP...
用28335的DSP驱动产生PWM信号给放大电路。控制回路和放大回路之间有光电耦合,但是一旦打开功率电源,CCS 3.3 就会报错 Power Failure on Target CPU: Error 0x80000020/-1031 Fatal Error during: Execution,Device driver:Problem with the Emulation Control。It is recommanded to RESET EMULATOR.This will disconnect each target from the emulator. The target from the emulator. The target should then be power cycled or hard reset followed by an emureset and reconnect to each target.Fail to remove the debug state from the target before disconnecting. There may still be breakpoint opcodeed in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue degugging.
展开
2个回答
展开全部
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的烧写插件 及烧写函数库 这个你可以跟就进的办事处要
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的烧写插件 及烧写函数库 这个你可以跟就进的办事处要
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询