本人在STM32F103ZET6用IAP编程序,发现应用程序(偏移0X8200)中定义的指针数组初始化可能会出错。
如:在定义中
const unsigned char a[2]={1,2};
const unsigned char b[2]={1,2};
const unsigned char c[2]={1,2};
const unsigned char d[2]={1,2};
const unsigned char *buf[]={a,b,c,d};//a,b,c,d分别为一个数组;
本来以为*buf会和a,b,c,d一样编译成CODE但是编译成data,但是通过BOOT下载到FLASH后,通过根踪对比,发现*buf的四个值可能不是a,b,c,d的指针值,可能某一个会错。
不知有没有有遇到这样的问题??
是不是要在程序中初始化,而不是在定义时初始化?? |