复制代码- (*((volatile unsigned long *)S3C2410_LCDCON4))=18|13<<8;
- (*((volatile unsigned long *)S3C2410_LCDCON3))=23<<19|239<<8|8;
|
可以用这样的方式初始化寄存器,即将寄存器地址强制转换为指针,对其所指向的地址赋值。但这种方式要注意的是,
1) 这个地址是虚拟地址(MMU开启情况下,比如Linux内核中)或者物理地址(MMU未开启或者物理地址等于虚拟地址,比如vivi中)
2) 并不是所有的寄存器都是32位读写的,转换为那种类型的指针需要根据CPU手册中该寄存器的读写方式(8bit,16bit, 32bit)来定。
还有就是linux提供了对lcd这个设备的结构framebuffer,有没有介绍这个的书或者教程什么的。
程序的源代码结合CPU手册就是最好的参考资料。
[ 此帖被kasim在2009-06-14 10:08重新编辑 ]