织梦网站怎么做301跳转,企业网站建设的一般要素包括什么,高密做网站哪家好,青海玉树网站建设单片机、裸机、linux操控硬件方法
在单片机和裸机中操作硬件是通过指针来对寄存器赋值来进行操控
但对于linux中不能这样#xff0c;不能直接对物理地址直接修改#xff0c;因为linux使能了mmu#xff0c;所以不能直接菜操作物理地址
如果要操作硬件#xff0c;需要先把…单片机、裸机、linux操控硬件方法
在单片机和裸机中操作硬件是通过指针来对寄存器赋值来进行操控
但对于linux中不能这样不能直接对物理地址直接修改因为linux使能了mmu所以不能直接菜操作物理地址
如果要操作硬件需要先把物理地址转换成虚拟地址
使能mmu的好处
让虚拟地址成了可能可以让系统更加安全上层应用看到的都是虚拟内存不能直接访问硬件
物理地址到虚拟地址映射函数
内核提供了几个函数定义在源码根目录中的include/asm-generic/io.h
ioremap物理地址转为虚拟地址
iounmap把映射的地址释放掉
static inline void _iomem *ioremap(phys_addr_t offset,size_t size)
static inline void _iomem *ioremap(void _iomem *addr)
参数
phys_addr_t offset是映射物理地址的起始位置size_t size要映射多大的内存空间void _iomem *addr要取消映射的虚拟地址的首地址
返回值
ioremap成功返回虚拟地址的首地址失败返回null
注意
物理地址只能被映射一次多次映射会失败
查看被映射过的物理地址
输入命令cat /proc/iomem
如果要取消某个映射就需要找到对应的驱动取消