![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动基础
瘦子的烦恼大了
这个作者很懒,什么都没留下…
展开
-
Platform设备驱动
从Linux2.6起,引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device表示,驱动用platform_driver进行注册。 Linux platform driver机制和传统的device_driver机制相比,一个十分明显的优势在于platform机制转载 2013-01-31 15:37:38 · 273 阅读 · 0 评论 -
linux驱动基础及注意事项
1. 内存分配a. 函数dma_alloc_coherent()分配实地址和虚地址b. 函数kmalloc()只返回虚地址。一般kmalloc最大只能分配128K-16,16个字节是被页描述符结构占用了。c. 函数ioremap_nocache把IO实地址映射成虚地址,一般寄存器空间映射为虚地址都采用此函数d. kmalloc/dma_alloc_c原创 2013-01-18 19:41:33 · 396 阅读 · 0 评论 -
kmalloc、vmalloc、malloc的区别
简单的说:kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc不保证任何东西(这点是自己猜测的,不一定正确)kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大 内存只有在要被DMA访问的时候才需要物理上连续 vmalloc转载 2013-02-19 13:02:50 · 229 阅读 · 0 评论 -
linux中高端内存和低端内存的概念
高端内存是Linux中一个重要的概念,初涉Linux时曾经对这个概念非常迷惑。实际上这个概念比较简单,理解这个概念,需要追溯一下Linux的内存管理。 从前,CPU的地址总线只有32位。32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间,在物理上理论上最多拥有 4G内存(除了IO地址空间,实际内存容量小于4G),逻辑空间也只能描述4G的线性地址空间。为了合理的利用4G空转载 2013-03-18 13:44:06 · 1803 阅读 · 0 评论