第1个回答 2012-09-24
不是呢
意思是将dat的值保存到addr的那段内存,比如:
char a[10];
int b = 12;
outportw(b, a); // 意思就是 *(volatile U16*)a = b;
此处先将a强制转换成U16*,然后将b保存到那段内存里面,如果 typede unsigned short U16;
那么就是说把b写入a的内存,共2个字节
第2个回答 2012-09-24
把一个(强转成)16进制的指针指向 data 数据。volatile 说明该指针是可变的。
第3个回答 2012-09-24
(*(volatile U16 *)(addr) = (dat)),(lolatile U16*)是一个强制类型转换,把addr的地址转换成为U16类型的指针, (*(volatile U16 *)(addr) = (dat))就是向这个地址写数据。在ARM中向寄存器中写数据常用这种方法。
第4个回答 2012-09-27
定义函数 outportw