当前位置: 技术问答>linux和unix
linux 地址映射问题,初学,大家指教。谢谢
来源: 互联网 发布时间:2016-04-14
本文导语: /* read or write GPIO for controlling GPIO7 interrupt */ #define GPIO_IOBASE_VADDR IO_ADDRESS(0x01C67000) #define gpio_regw(val, reg) outl(val, (reg)+GPIO_IOBASE_VADDR) #define gpio_regr(reg) inl((reg)+GPIO_IOBASE_VADDR) 像上面...
/* read or write GPIO for controlling GPIO7 interrupt */
#define GPIO_IOBASE_VADDR IO_ADDRESS(0x01C67000)
#define gpio_regw(val, reg) outl(val, (reg)+GPIO_IOBASE_VADDR)
#define gpio_regr(reg) inl((reg)+GPIO_IOBASE_VADDR)
像上面这种0x01C67000地址,是去操作gpio口的,但是我怎么知道这个地址是gpio的呢?就是想问这个地址对应的表在kernel的哪个文件里?
#define GPIO_IOBASE_VADDR IO_ADDRESS(0x01C67000)
#define gpio_regw(val, reg) outl(val, (reg)+GPIO_IOBASE_VADDR)
#define gpio_regr(reg) inl((reg)+GPIO_IOBASE_VADDR)
像上面这种0x01C67000地址,是去操作gpio口的,但是我怎么知道这个地址是gpio的呢?就是想问这个地址对应的表在kernel的哪个文件里?
|
这跟硬件相关,一般在相应的硬件驱动的源码的头文件里定义
|
我这边两套TI的方案,都是在io_register.h中定义
|
bshawk 说的没错
cpu手册里应该有,一旦cpu设计好了, 片内外设的地址是确定的。有个memory map一章/节 会说明所有的片内外设的地址
在kernel代码里,可能会直接该地址,但如也有可能通过某个基地址加 偏移得到。
cpu手册里应该有,一旦cpu设计好了, 片内外设的地址是确定的。有个memory map一章/节 会说明所有的片内外设的地址
在kernel代码里,可能会直接该地址,但如也有可能通过某个基地址加 偏移得到。
|
看CPU手册,一般会有一节叫做memory map, 会告诉你什么外设用什么地址段?
至于kernel中,有没有定义这个地址,那就要看该ARCH的实现了。一般会有的,没有,你自己定义也可以!
至于kernel中,有没有定义这个地址,那就要看该ARCH的实现了。一般会有的,没有,你自己定义也可以!