ARM-Linux问题集锦

来源:互联网 发布:石金鑫知乎 编辑:程序博客网 时间:2024/05/16 12:10

#define GPBCON (*(volatile unsigned long *)0x56000010)的理解
A:volatile
   当计算机需要一个数值的时候,会先把内存中(ARM处理寄存器地址)的值读取到寄存器(这

里指的是r0-r1....r15),然后下次在使用该值的时候就直接读取寄存器(r0-r1....r15)中的值

了。加上volatile之后,程序就会在每次需要该值的时候都读取一次内存。这是为了防止某些原

因硬件会改变其值。

B:
(volatile unsigned long *)即为强制类型转换;(volatile unsigned long *)0x56000010

的意思就是把0x56000010强制转换为unsigned long类型的指针。这时(volatile unsigned long

*)0x56000010就可以看做是一个指针p了。*(volatile unsigned long*)0x56000010等价于*p 。


2


0 0
原创粉丝点击