Android开发探索:HAL及驱动开发学习笔记——内存管理
发布时间
阅读量:
阅读量
Linux内存管理学习与实践
1、分页机制设计与实现
这段内容略显复杂,暂时难以完全理解,待日后实际应用时再深入探讨其含义。
2、内存分配函数
kmalloc与kfree函数
vmalloc及vfree操作
3、slab
4、内存池
5、I/O端口及I/O内存
1、 访问I/O内存的流程如下:
request_mem_region()-> ioremap() -> ioread8()/iowrite8() -> iounmap()->release_mem_region() 。
此前已提及,IO内存是统一编址机制下的概念。对于采用统一编址方式的系统,IO地址空间被视为物理主存的一部分。然而,在编程过程中,我们只能操作虚拟内存,因此访问的第一步是将设备所在的物理地址映射至虚拟地址。在Linux2.6版本中,这一过程通过ioremap()实现:
void *ioremap(unsigned long offset, unsigned long size);
随后,可以通过指针直接访问这些地址,但也可以借助Linux内核提供的函数组进行读写操作:
ioread8(),iowrite16(), ioread8_rep(), iowrite8_rep()......
2、 访问I/O端口
访问IO
全部评论 (0)
还没有任何评论哟~
