当前位置: 技术问答>linux和unix
uclinux中ioremap的使用
来源: 互联网 发布时间:2016-03-31
本文导语: 请问no mmu的arm芯片,在编写uclinux驱动中,对寄存器的访问,可以直接inb,outb。 也就是说不需要先ioremap,对吗? 但是我在jffs2的flash驱动中看到有: int __init init_FLASH(void) { //DEBUGMTD("%s %s %dn",__FILE__,__FUNCTION__,__LINE__);...
请问no mmu的arm芯片,在编写uclinux驱动中,对寄存器的访问,可以直接inb,outb。
也就是说不需要先ioremap,对吗?
但是我在jffs2的flash驱动中看到有:
int __init init_FLASH(void)
{
//DEBUGMTD("%s %s %dn",__FILE__,__FUNCTION__,__LINE__);
printk(KERN_NOTICE "POS-TAX flash device: %x at %xn", WINDOW_SIZE, WINDOW_ADDR);
flash_map.map_priv_1 = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE);
if (!flash_map.map_priv_1) {
printk("Failed to io");}
..........................
}
这是否矛盾呢?
也就是说不需要先ioremap,对吗?
但是我在jffs2的flash驱动中看到有:
int __init init_FLASH(void)
{
//DEBUGMTD("%s %s %dn",__FILE__,__FUNCTION__,__LINE__);
printk(KERN_NOTICE "POS-TAX flash device: %x at %xn", WINDOW_SIZE, WINDOW_ADDR);
flash_map.map_priv_1 = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE);
if (!flash_map.map_priv_1) {
printk("Failed to io");}
..........................
}
这是否矛盾呢?
|
要看是什么寄存器,如果是CPU本身的寄存器是不用什么ioremap的,但是你要访问一个设备的寄存器一般都需要作一次映射
没做个flash驱动,不了解
对PCI设备的配置寄存器的访问可以用in/out(l,w,b)访问,但是要访问它的IO或者memory空间时就需要进行映射了。
没做个flash驱动,不了解
对PCI设备的配置寄存器的访问可以用in/out(l,w,b)访问,但是要访问它的IO或者memory空间时就需要进行映射了。
|
觉得是方便移植...