内核驱动框架基本

==============内核驱动框架基本=============
      

  1. 驱动代码编写参考pin4test.c
  2. 内核驱动编译

a1.把驱动代码拷贝到driver/char

a2.修改Makefile,告诉编译器,要编译该驱动文件

a3.ARC=arm CROSS_COMPILE=arm-linux-gnueabihf-KERNEL=kernel7 make moudules

=============驱动测试步骤===============

       内核驱动安装:sudo insmod xxx.ko

       内核驱动卸载:sudo rmmod xxx不需要写ko

       查看内核模块 ismod

       验证步骤:

  1. 装载驱动
  2. 驱动装载后生成设备比如/dev/pin4。通过sudo chmod 666 /dev/pin4 添加访问权限
  3. 运行测试程序调用驱动
  4. 内核的printk 是内核层的printf ,通过dmsg查看打印信息

=====================================================================

shell 壳:shell也是一个应用程序,提供了用户去操作内核的一个工具,我们在终端上面输入指令的时候,一回车就启动了一个shell,shell把你回车的字符拿来运行,启动了某个应用程序,这个应该程序会和内核打交道,产生一些结果

open调用以后会产生一个软中断,软中断为了响应快速,用汇编实现了sys_call,sys_call通过栈调用相关函数sys_open,sys_open会去内核驱动列表里面,根据设备名和设备号找到相关驱动函数,调用驱动函数里面的open,去设置io口引脚的电频

猜你喜欢

转载自blog.csdn.net/weixin_62529596/article/details/132205563