本帖最后由 kexd2004 于 2010-5-7 11:44 编辑
1.定义结构体
typedef struct
{
u32 RESERVED0;//BKP预留的不可用空间
u16 aaa;
u16 RESERVED1;
u32 bbb;;//测试,能否保存32位变量
u16 ccc;
}bkpVariable;
bkpVariable *xdata;//结构体指针
2.指定结构体指向地址
xdata = (bkpVariable *)(volatile unsigned char *) BKP_BASE;
3.初始化
if(xdata->aaa != 1234)
{
xdata->aaa = 1234;
xdata->bbb = 65500;
xdata->ccc = 1234;
}
4.my questions:
以上程序问题在于“u32 bbb;;//测试,能否保存32位变量”
由于BKP是16位寄存器,自然不能保存32位数据,这是再清楚不过的。
如果我的变量一定要是32位的,每次读写都要分成低16位和高16位分别操作,实在是很麻烦。各位有好的实现方法,拿出来分享下啊 |