欢迎光临散文网 会员登陆 & 注册

Linux驱动之ioremap源码跟踪

2023-06-25 10:28 作者:有AI野心的电工和码农  | 我要投稿

又一篇讲老版本内核驱动的,多年没写过内核驱动了,也不知这些技术现在还适用不,权当纪念吧。

Original address:http://blog.chinaunix.net/uid-26009923-id-3291183.html

TQ2440的watchdog linux驱动在内核源码linux-2.6.30.4的:./drivers/watchdog/s3c2410_wdt.c

  1. watchdog ioremap的过程:

将物理地址res->start映射到了虚拟地址0xc5400000处,映射大小为:size=0x100000.

注: 不知道为什么刚开始这个size=8, 后来就成了0x100000(1M)。

2. arch/arm/include/asm/io.h中, 找到ioremap的定义:

    


3. 在arch/arm/mm/ioremap.c

   

4. 在arch/arm/mm/ioremap.c

 


area = get_vm_area(size, VM_IOREMAP); //分配虚拟地址空间

err = remap_area_pages(addr, pfn, size, type);

这两个函数。

5. 在arch/arm/mm/ioremap.c

   



Linux驱动之ioremap源码跟踪的评论 (共 条)

分享到微博请遵守国家法律