*( *)这个定义类型怎么理解
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 15:07:47
*( *)这个定义类型怎么理解
PLLA_toPLLV_sel = *((volatile UINT32*)(0x88210004));
asm_back = *(unsigned int *)DEF_ASM_BACK;
#define reset (*(unsigned int *)RESET);
这些定义是什么意思!要怎么理解!做了哪些的赋值或操作?
希望高手来解答!
PLLA_toPLLV_sel = *((volatile UINT32*)(0x88210004));
asm_back = *(unsigned int *)DEF_ASM_BACK;
#define reset (*(unsigned int *)RESET);
这些定义是什么意思!要怎么理解!做了哪些的赋值或操作?
希望高手来解答!
举例来说:
PLLA_toPLLV_sel = *((volatile UINT32*)(0x88210004));
就是将映射地址0x88210004中的内容读取出来,赋给PLLA_toPLLV_sel.
(volatile UINT32*)是强制类型转换,将0x88210004解析为volatile UINT32*型(指向32位无符号整型的指针且避免优化)
之后再进行一次取指操作即可从此地址读取其内容.
PLLA_toPLLV_sel = *((volatile UINT32*)(0x88210004));
就是将映射地址0x88210004中的内容读取出来,赋给PLLA_toPLLV_sel.
(volatile UINT32*)是强制类型转换,将0x88210004解析为volatile UINT32*型(指向32位无符号整型的指针且避免优化)
之后再进行一次取指操作即可从此地址读取其内容.