在嵌入式中,会经常遇到寄存器、内存的数据传输,如何向寄存器中写入数据呢?现举例说明:
#define rDISRC0 (*(volatile unsigned *)0x4b000000) //DMA 0 Initial source
这是s3c2410的DMA的初始源地址寄存器的定义。DISRC0是DMA0的初始源地址寄存器,s3c2410为其分配的地址为:0x4b000000 ;上面的预定义是将0x4b000000先强制转换成指针((volatile unsigned *)0x4b000000),然后再对其进行 * 操作,这样就将rDISRC0变成了变量。
rDISRC0 = 0x38000000 //将0x38000000数据赋值给rDISRC0
这个例子延伸到一个很好的用法:
1、 内存地址可以直接由c语言指针操作,如:<