当前位置: 技术问答>linux和unix
内存映射
来源: 互联网 发布时间:2015-09-10
本文导语: 小弟才学习Linux,想问大家如何用内存映射,我是在一块ARM板上,现在程序需要对硬件进行直接操作,需要对串口进行设置(2f89及其后面8位),听说有个函数map???,可以把内存直接映射到一个buffer数组里面,然...
小弟才学习Linux,想问大家如何用内存映射,我是在一块ARM板上,现在程序需要对硬件进行直接操作,需要对串口进行设置(2f89及其后面8位),听说有个函数map???,可以把内存直接映射到一个buffer数组里面,然后直接改buffer值就可以进行类似DOS3下面的outportb,inportb。
请高手最好写一段代码范例。+谢谢
请高手最好写一段代码范例。+谢谢
|
内存映射就是将周边设备的寄存器用内存地址来访问。首先要了解你手上的板子,各个设备是怎么和CPU连着的(比如通过PCI bus 或者I2c bus等等),然后将4G的划分,设置CPU的一些configuration register,具体操作过程结合CPU的user's manual
|
ioremap函数可以把虚拟地址映射到物理地址
|
如果是串口的读写可以直接在网上找一找,
如果写硬件的驱动程序可以查找ioctl与研
件对话相关资料,你说的内存影射函数是
mmap,不过这是用户级的驱动。
必须要在内核支持才行。
如果写硬件的驱动程序可以查找ioctl与研
件对话相关资料,你说的内存影射函数是
mmap,不过这是用户级的驱动。
必须要在内核支持才行。
|
看看linux的设备驱动,会有收获