|
急!!!求助。keil平台,jlink下载程序,显示错误到ARM7,无法下载。
[复制链接]
显示Programming Failed! 经过反复验证发现多了其中一段程序就无法下载。程序如下。只要多了红色字体部分就无法下载。猜测可能与运行内存有关?
但是适当减少数组的赋值就可以,总之,不得不让人联想到内存的原因。。但是似乎arm7的内存应该是足够的吧。。非常困惑了。
而且红色的部分是判断的另一个分支,理论上不会有冲突吧?
void Report_MES(uint8_t PATH,uint8_t *ID,uint8_t command,uint8_t *content) //构建回复帧
{
uint8_t report_block[50]; //定义回复帧数组
int count=0;
uint8_t SendLRC=0x00;
if(PATH==0x03)
{
rcv_number=0; //重置rcv_number的计数
}
report_block[count]=0x02; //起始位
count=count+2;
switch(PATH)
{//路径参数
case 0x01:report_block[count++]=0x02;
case 0x03:report_block[count++]=0x04;
}
count++;
for(i=0;i<6;i++)
{//将ID存入发送数组
report_block[count+i]=ID;
}
count=count+6;
switch(command)
{
// if(command==0x99)
case 0x99:
//接收到测试帧
report_block[count]=0x06;
report_block[count++]=0x1C; //间隔符
report_block[count++]=0x00; //响应码
report_block[count++]=0x1C; //间隔符
report_block[count++]=0xBD;
report_block[count++]=0xBB;
report_block[count++]=0xD2;
report_block[count++]=0xD7;
report_block[count++]=0xB3;
report_block[count++]=0xC9;
report_block[count++]=0xB9;
report_block[count++]=0xA6; //暴力赋值中文信息代码
report_block[count++]=0x1C; //间隔符
report_block[1]=(count-2)/256;
report_block[2]=(count-2)%256; //LEN位
report_block[count++]=0x03; //终止位
for(i=1;i<=count;i++)
{
SendLRC=SendLRC^report_block;
}
report_block[count++]=SendLRC;
UART0_SendBuf(report_block,count+1);
// if(command==0x01)
case 0x01:
//接收到收银帧
report_block[count]=0x07;
report_block[count++]=0x1C; //间隔符
report_block[count++]=0x00; //响应码
report_block[count++]=0x1C; //间隔符
count++;
for(i=0;i<2;i++)
{
report_block[i+count]=content[i+1]; //商户号
}
report_block[count++]=0x1C; //间隔符
count++;
for(i=0;i<2;i++)
{
report_block[count+i]=content[4+i]; //终端号
}
report_block[count++]=0x1C; //间隔符
count++;
for(i=0;i<6;i++)
{
report_block[count+i]=content[11+i]; //金额参数
}
report_block[count++]=0x1C; //间隔符
count++;
for(i=0;i<2;i++)
{
report_block[count+i]=content[16+i]; //卡号
}
/* report_block[count++]=0x1C; //间隔符
report_block[count++]=0x03; //终止符
report_block[1]=(count-2)/256;
report_block[2]=(count-2)%256; //LEN位
for(i=1;i<=count;i++)
{
SendLRC=SendLRC^report_block;
}
report_block[count++]=SendLRC; */
UART0_SendBuf(report_block,count+1);
}
}
|
|