linux驱动开发
文章平均质量分 84
宁静的海2006
技术分享,通己达人
展开
-
修改根目录下.rc只读文件内容的方法
目标板:rk3399+安卓8.1系统当我们想在板子启动文件加一些配置,比如修改sysfs文件权限时,我们发现Read-only file system的错误提示;使用mount命令查看,显示根文件系统"rootfs on /"包含了ro这个词,说明文件只读,不能被直接修改。 需要找到init.rk3399.rc,修改编译,重新烧录root.img 以下是具体步骤:1.在 ubuntu 虚拟机的安卓工程源文件中找到 /home/robin/work/rk3399-android-8.1/devi原创 2022-12-05 14:01:53 · 691 阅读 · 0 评论 -
input输入子系统
*> Event interface // handler 层: drivers/input/evdev.c。Input device support ---> //核心层: drivers/input/input.c。框架),将用户空间到内核空间的数据格式统一起来。为输入设备驱动定义了一个标准的编程方式(也就是能更高效的开发输入设备的驱动。中的事件输入驱动都被集成到了。1). 声明一个输入设备对象;的支持越倾向于用内核的。针对输入设备的驱动框架。按键数据,例如:字母。原创 2022-11-30 23:12:33 · 1056 阅读 · 0 评论 -
移植linux驱动代码到内核中
一,下载需要移植的代码,并把代码复制到kernel对应的drivers/ron子目录中;第一,单独编译成ko文件,使用模块编译命令insmod挂载到内核中使用;二,新建或是修改Kconfig,添加该部分的编译选项;第二,编译到内核当中,和内核一起启动和加载;让编译器知道你自定义的 Makefile。编译并烧录内核、重启开发板后调试;和 Kconfig;原创 2022-11-30 22:26:52 · 584 阅读 · 0 评论 -
触摸屏I2C驱动移植
在第九个时钟是,主控会将 sda 拉高释放控制权,从设备收完数据后将 SDA 拉低,表示ack.发送到 SDA 总线上的每个字节必须是 8 位,每次传输可以发送的字节数量不受限制,每个字节后必须有一个响应位.先传输数据的高位(MSB).每个连接到总线的器件都可使用软件根据它唯一的地址来识别,传输数据的设备之间是主从关系。S:SCL 高电平,SDA 由高到低跳变,开始传送数据;P:SCL 高电平,SDA 由低到高跳变,结束传送数据;主机:发起/停止数据传输,提供时钟信号的器件;发送器:发送数据到总线的器件;原创 2022-11-27 20:00:30 · 1378 阅读 · 0 评论 -
创建 sysfs 设备节点
控制 gpio 来实现 led 驱动,创建一个设备节点 gpio_led,操作节点来控制 GPIO 的电平用以实现对 LED 灯操作,往节点写 1(echo 1 >)就拉高 GPIO 电平亮灯,往节点写 0(echo 0 >)就拉低 GPIO 电平灭灯。调用 device_create_file,device_create_file 定义在 drivers/base/core.c中,声明在include/linux/device.h中,device_create_file 返回 0 代表创建成功。原创 2022-11-27 13:48:13 · 796 阅读 · 0 评论 -
平台总线驱动和设备树匹配
总线代表着同类设备需要共同遵循的工作时序,不同的总线对于物理电平的要求是不一样的,对于每个比特的电平维持宽度也是不一样的,总线上传递的命令也会有自己的格式约束。在Linux系统中总线可分为两种,1、一种是实际存在的总线(例如I2C、SPI、USB等总线)。2、另一种是虚拟存在的总线(platform总线)。1.linux设备驱动程序的演变1.1 硬件资源和驱动写在同一个文件里简单不易扩展,需重新编译,不同的引脚要写不同的驱动。1.2 总线设备驱动硬件资源用指定;原创 2022-11-21 22:40:11 · 1054 阅读 · 0 评论