打印

iap 严重问题

[复制链接]
2308|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qbasic|  楼主 | 2010-12-17 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人在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的指针值,可能某一个会错。
不知有没有有遇到这样的问题??
是不是要在程序中初始化,而不是在定义时初始化??
沙发
airwill| | 2010-12-17 22:33 | 只看该作者
const unsigned char * const buf[]={a,b,c,d};

这样, buf 就编译在 code 中了, 为什么? 楼主自己想吧

使用特权

评论回复
板凳
qbasic|  楼主 | 2010-12-18 07:49 | 只看该作者
关键不在BUF编译在哪,而是,为什么编译在DATA中有些值会错??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

34

帖子

0

粉丝