TI中文支持网
TI专业的中文技术问题搜集分享网站

F28335 ram中调试程序遇到的怪现象

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hank Zhao:

你在程序中设置断点或者单步,看是否会出现这种现象。如果出现这种现象其对于的C代码是什么。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

囧:

你没有导入项目文件,只下载了编译好的.out,就会出现这种情况。因为CCS不知道程序源码在哪里,但是二进制文件下载的是对的

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hao Xu2:

回复 Hank Zhao:

单步调试没有问题,主程序代码如下:

 #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#define   LED1 GpioDataRegs.GPBDAT.bit.GPIO60#define   LED2 GpioDataRegs.GPBDAT.bit.GPIO61void configtestled(void);
void main(void){    InitSysCtrl();    configtestled(); LED1=1; LED2=0;    for(;;)    {     DELAY_US(100);     LED1=~LED1;     DELAY_US(100);     LED2=~LED2;    }}void configtestled(void){   EALLOW;   GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0; // GPIO60 = GPIO60   GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;    GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0; // GPIO61 = GPIO61   GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1;   EDIS;}

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hao Xu2:

回复 囧:

是导入工程后从target里面选debug active project的

主程序代码如下:

 #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#define   LED1 GpioDataRegs.GPBDAT.bit.GPIO60#define   LED2 GpioDataRegs.GPBDAT.bit.GPIO61void configtestled(void);
void main(void){    InitSysCtrl();    configtestled();LED1=1;LED2=0;    for(;;)    {     DELAY_US(100);     LED1=~LED1;     DELAY_US(100);     LED2=~LED2;    }}void configtestled(void){   EALLOW;   GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0; // GPIO60 = GPIO60   GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;    GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0; // GPIO61 = GPIO61   GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1;   EDIS;}

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hank Zhao:

回复 Hao Xu2:

LED一直亮是因为DELAY_US(100);时间太短了,眼睛看起来就是一直亮。把它改成DELAY_US(100000);。暂停时对应的C代码停在哪里? LED1=~LED1;GPIO翻转建议使用GPIO SET和GPIO CLEAR寄存器。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hao Xu2:

回复 Hank Zhao:

改成DELAY_US(100000),还是跟 原来一样,暂停时 C代码里面 看不到 停在那里了,那个箭头消失了。汇编里面可以看到,我试了几次 大概就停在 0x330A64 到 0x330A67这几个地方。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hank Zhao:

回复 Hao Xu2:

把Flash擦除一遍,然后再重新导入工程编译一下再调试看看。你的程序是在RAM中运行的,但现在跳到Flash中的一个死循环中了,而且并不是你程序中的那个死循环。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hao Xu2:

回复 Hank Zhao:

我从工具里选 on chip flash 然后直接单击erase(不知道 是不是要先单击 unlock),然后CCS 运行了一会 ,报错了,

关掉CCS,再重新启动,连接开发板,显示如图 的错误。

这样芯片是不是已经损坏了?我试了别的板子,可以连上。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hank Zhao:

回复 Hao Xu2:

拔下仿真器,给板子断电,然后再重新连接看看,不需要unlock,这应该是硬件连接的问题。

 淘宝买的 mini28335开发板和仿真器,用CCS4.2下载例程中的led.out到开发板,在ram中运行,如下图,
点击暂停后如下图 ,蓝色部分和视频教程中不一样,
而且 程序好像没有正确运行,LED灯应该是闪烁的,运行的时候灯一直亮。
是设置有问题么?有前辈遇到过么?

Hao Xu2:

回复 Hank Zhao:

断电,插拔,试了几次,还是一样的错误——————– 

赞(0)
未经允许不得转载:TI中文支持网 » F28335 ram中调试程序遇到的怪现象
分享到: 更多 (0)