Linux驅(qū)動(dòng)之ioremap源碼跟蹤
2023-06-25 10:28 作者:有AI野心的電工和碼農(nóng) | 我要投稿

又一篇講老版本內(nèi)核驅(qū)動(dòng)的,多年沒寫過內(nèi)核驅(qū)動(dòng)了,也不知這些技術(shù)現(xiàn)在還適用不,權(quán)當(dāng)紀(jì)念吧。
Original address:http://blog.chinaunix.net/uid-26009923-id-3291183.html
TQ2440的watchdog linux驅(qū)動(dòng)在內(nèi)核源碼linux-2.6.30.4的:./drivers/watchdog/s3c2410_wdt.c
下
watchdog ioremap的過程:
將物理地址res->start映射到了虛擬地址0xc5400000處,映射大小為:size=0x100000.
注: 不知道為什么剛開始這個(gè)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);
這兩個(gè)函數(shù)。
5. 在arch/arm/mm/ioremap.c
中
? ?
標(biāo)簽:驅(qū)動(dòng)Linux