一直用430的信息区记录需要保存的信息,但是一直苦于信息最初怎么先写进去。
刚开始的时候,完全使用写flash操作把要写的数据写进去,所以那时很傻。
后来想到了用汇编可以直接定义,于是用了一阶段。就像下边。
ORG 0x1000
DB 0x89
DW 0x0065
DB 9
DW 500
DF 1.0
END
把以上保存为*.asm文件,然后加入工程就好了,这样IDE编译的时候就可以直接在信息区写入数据了。
不过我终于发现了更好的,上边这种方法有个最大的缺点就是,读数据还得利用地址来读,所以很麻烦。
只需定义如下
const unsigned char A@0x1000 = 89;
const unsigned int B@0x1002 = 500;
const float C@0x1004 = 1.0;
cost double D@0x1008 = 5.0;
那么编译器直接就会把变量写到信息区,而且那个变量的名字还可以直接拿来用,
比如我要赋值给别的变量只需
unsigned char t =0;
t=A;
哈哈,简直太方便了,
而且写信息的时候也只需
unsigned char *p;
p = (unsigned char *)(&A);
*p = t;
就好了,不过别忘了在这之前得擦除相应区域,和打开flash写允许。