Re: [问题] 几个小问题请教

楼主: montieddie (艾迪)   2015-04-24 21:29:47
※ 引述《baldhawk (哈哈)》之铭言:
: 开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
: C
: 问题(Question):
请问ARM 设定 Register问题,
要设定Register 0x2000_0000 的值为 0x12345678
用如下写法:
Typedef struct
{
UINT32 A;
}B;
(B *)(0x20000000) -> A = 0x12345678;
应该是把位址0x20000000转型结构指标"B", 再指向变量"A",
就可以把值存到Register里面,
一定转型成B才能设值? 有比较简单方法吗?
谢谢
作者: EdisonX (卡卡兽)   2015-04-24 22:08:00
*(UINT32*)(0x20000000) = 0x12345678; ??不过话说这种 Code 在 F.W 那里应该写成 macro 较佳 ?#define SET_ADDR_VAL(ADDR,VAL) *(UINT32*)ADDR = VAL;我才发现这篇的回文原来和原主题没关系 Orz
楼主: montieddie (艾迪)   2015-04-24 22:41:00
不好意思 和原文是没关系的(B *)(0x20000000)->A 和 *(UINT32*)ADDR 相同吗?这边也搞不太懂
作者: EdisonX (卡卡兽)   2015-04-25 00:53:00
效果是一样的。
作者: notBeing (read and be read)   2015-04-25 18:45:00
precedence是->比type cast高, 这compile会过?

Links booklink

Contact Us: admin [ a t ] ucptt.com