首页 > 其他 > 详细

ARM内核驱动—驱动程序大揭密

时间:2014-03-26 14:56:47      阅读:438      评论:0      收藏:0      [点我收藏+]
图为应用程序与驱动程序的关系图:
bubuko.com,布布扣
当应用程序调用系统函数read时,会首先经过内核的处理,然后再去调用驱动程序中相应的函数。
可以使用反汇编查看read系统函数的实现:
arm-linux-gcc -static -g read_mem.c -o read_mem
然后:
arm-linux-objdump -D -S read_mem >dump
vi dump
read(fd, &dst, sizeof(int));
    8250:       e24b300c        sub     r3, fp, #12     ; 0xc
    8254:       e51b0008        ldr       r0, [fp, #-8]
    8258:       e1a01003        mov     r1, r3
    825c:       e3a02004        mov     r2, #4  ; 0x4
    8260:       eb0028be        bl      12560 <__libc_read>
arm对于少于4个参数的变量,使用通用寄存器存储。这里使用了r0, r1, r2。可以看到read执行跳转到了内核_libc_read,你也可以查看内核函数的实现。
过程叙述如下:
read——内核入口(ENTRY)——取NO——查表调用sys_read——vfsread——file_opration——xxx_read






ARM内核驱动—驱动程序大揭密,布布扣,bubuko.com

ARM内核驱动—驱动程序大揭密

原文:http://blog.csdn.net/renren900207/article/details/22149565

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!