内核驱动相关知识点
内核层和用户层?分层是为什么?
内核是操作系统的核心组成部分,操作系统通过内核对硬件资源的管理和应用程序的支持。
MMU(Memory Manage Unit):内存管理单元
功能:1.完成虚拟空间到物理的映射
2.内存保护,设置存储器的访问权限
对于有MMU的处理器,Linux内核启动时会初始化MMU,设置内存映射,设置好以后处理器访问的都是虚拟地址,而不是直接访问物理地址。
在Linux内核中,有许多与硬件相关的操作需要使用到物理内存地址。然而在内核中直接访问物理内存是非常危险的,容易导致崩溃。一次,为了安全访问物理内存,Linux内核提供了ioremap函数。解决该问题,需要用到地址映射。
虚拟空间–>物理空间,也叫地址映射。
物理内存和虚拟内存之间的转换,需要用到两个函数:ioremap()和 iounmap()。
ioremap()函数:用于获取指定物理地址对应的虚拟地址
iounmap()函数:卸载驱动时用来释放ioremap()函数所做的映射
GPIO