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

TMDSCNCD28388D: 在开发板上debug和release调试现象不一致

Part Number:TMDSCNCD28388D

如题我使用TMDSCNCD28388D开发板在CCS上进行SCI数据收发

在debug模式下

可以进入SCI接收中断,并且可以对上位机发送的数据进行处理并回发;

在release模式下

可以进入SCI接收中断,但是对上位机发送的数据没有任何反应;

请问这个是为什么?

我在定义了几个数组和结构体,但是没有初始化赋值,具体如下:

uint16_t senddata[2];

uint16_t recdata[50];

uint16_t sd[100];

typedef stuuct
{uint16_t head;uint16_t legnth;uint16_t data[100];
}




然后宏定义了几个判断接收状态的值

#define REC 1U
#define REC_C 2U

Green Deng:

一般来说,debug下运行正常而flash下运行出问题的情况,大多是因为memcpy的问题,也就是说没有将类似delay_us、中断函数之类的程序代码复制到ram中运行。

不知道你的程序中包含这部分内容了吗?

,

user6327524:

但是我在flash调试中,SCI的接收中断是正常的,目前还没有用到延迟函数

,

Green Deng:

你可以看一下例程中关于memcpy的说明,并且在你的程序中加上这个函数再试一下:

#ifdef _FLASH//// Copy time critical code and flash setup code to RAM. This includes the// following functions: InitFlash();//// The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart symbols// are created by the linker. Refer to the device .cmd file.//memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);//// Call Flash Initialization to setup flash waitstates. This function must// reside in RAM.//Flash_initModule(FLASH0CTRL_BASE, FLASH0ECC_BASE, DEVICE_FLASH_WAITSTATES);
#endif

,

user6327524:

哦哦,我把您说的这段程序加进去,发现现象没有变,不过确实感觉是自己写的函数没有运行,您说的这个memcpy这个在28388的哪个例程有用到呢?

,

user6327524:

您好,我的问题解决了,是因为我做串口发送的判断位是使用结构体里的变量,改成了变量做标志位就好了,请问这个是为什么呢?

,

Green Deng:

可能跟你的结构体定义有关,具体是如何定义的?

赞(0)
未经允许不得转载:TI中文支持网 » TMDSCNCD28388D: 在开发板上debug和release调试现象不一致
分享到: 更多 (0)