msp430的常量可以这样定义

一直用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写允许。

原文地址:https://www.cnblogs.com/wanqian/p/3088530.html