请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5989 我使用 CCS 构建项目。 程序的运行空间介于0x4400和0xFFFF 之间。 我想将1100字节的数据写入0x10000的地址。 我使用函数"_data20_write_char"一次写入20个字节。 当我完成编写时、在读取 char 时使用函数"_data20_ read_char"、发现中间区域的几个字节中存在随机检查错误。 以下是我的代码:
int ota_write(unsigned long offset,const unsigned char *pdata,unsigned int size)
{
unsigned int i=0;
for(i=0;i<size;i++)
{
__data20_write_char(offset+0x10000+i,pdata[i]);
}
for(i=0;i<size;i++)
{
if(__data20_read_char(offset+0x10000+i)!=pdata[i])
{
DBG_LOG("CHK ERR"); //Several random byte check failures
return -1;
}
}
return 0;
}
static unsigned char test_buf[20]={0};
void test_fram()
{
int i=0,j=0;;
for(i=0;i<55;i++)
{
for(j=0;j<sizeof(test_buf);j++)
{
test_buf[j]=j;
check+j;
}
if(ota_write(i*sizeof(test_buf),test_buf,sizeof(test_buf))!=0)
{return ;}
}
}
请帮助我分析问题所在。