打印

定义变量到绝对地址空间(BKP)的方法及问题

[复制链接]
1654|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kexd2004|  楼主 | 2010-5-7 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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位分别操作,实在是很麻烦。各位有好的实现方法,拿出来分享下啊
沙发
kexd2004|  楼主 | 2010-5-7 14:47 | 只看该作者
BKP若是32位的该多好

使用特权

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

本版积分规则

19

主题

65

帖子

1

粉丝