内核驱动框架基本

本文介绍了内核驱动的基本操作,包括驱动代码的编译步骤(如拷贝到driver/char、修改Makefile和使用ARC编译),驱动的安装与卸载,以及如何通过shell进行测试,涉及软中断和sys_call机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  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口引脚的电频

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值