linux内核
酸菜鱼的鱼
Linux rtos 驱动应用开发 本博客主要用于工作学习的总结和备份,欢迎大家留言评论交流,谢谢
展开
-
linux中USB驱动的注册方式
linux中USB模块的注册方式分为两种:1.按照常规驱动的注册方式注册2.使用内核提供的宏:module_usb_driver注册#if 1 //常规模块注册方式static int __init usb_drv_init(void){ /*3、注册usb_driver驱动*/ usb_register_driver(&usb_driver,THIS_...原创 2019-12-28 10:40:21 · 1358 阅读 · 0 评论 -
linux内核原子操作使用简介
驱动开发住常见的一个问题:就是一个驱动可以被多个进程同时打开,使用,这样会导致驱动功能混乱。./app & ./app & ./app 可以同时打开这个设备,可通过文件描述符调用驱动的其他接口操作这个设备。如果想只一个进程使用这个设备,只需要在open接口函数做打开判断。示例:static int open_flag = 0;//打开设备时候执行的程序sta...原创 2019-09-01 09:09:47 · 2006 阅读 · 1 评论 -
linux内核信号量和互斥锁使用
信号量概念Linux 内核的信号量在概念和原理上与用户态的 System V 的 IPC 机制信号量是一样的,但是它绝不可能在内核之外使用,因此它与 System V 的 IPC 机制信号量毫不相干。信号量在创建时需要设置一个初始值,表示同时可以有几个任务可以访问该信号量保护的共享资源,初始值为 1 就变成互斥锁(Mutex),即同时只能有一个任务可以访问信号量保护的共享资源。一个任务要想...原创 2019-09-01 11:29:08 · 2043 阅读 · 2 评论 -
linux 中input子系统介绍及使用案例
1. input概念linux下可以对输入设备使用普通字符设备驱动模型编写,如果每个设备都需要自己注册杂项设备 自己编写文件操作方法,这会造成代码重复,重复工作很多。比如:写一个程序是鼠标---USB,PS/2 ,触摸板。一个键盘,种类很多,不可能每一个都去写读写接口。内核专门为输入类设备编写一个子系统:Input子系统 (输入子系统)其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬...转载 2019-09-08 15:45:25 · 1295 阅读 · 2 评论 -
Linux i2c 设备驱动程序框架详解
I2C子系统由上到下分为3层:,这一层需要客户实现。I2C设备驱动层、I2C核心层和I2C适配器驱动层。I2C设备驱动层:真正实现具体设备的时序的代码。使用核心层提供API接口写,有特定编写框架。I2C核心层:由内核提供,代码不用修改,提供了设备驱动层和适配器驱动层需要API接口,以及实现收发数据管理功能。起到一个连接上下两的作用。I2C适配器驱动层:由芯片厂家提供,但需要移植。通...转载 2019-09-11 22:24:22 · 1992 阅读 · 0 评论 -
嵌入式中linux系统对eeprom芯片at24c02的操作实例(包括驱动层和应用层代码)
应用层代码示例/* app.c at24c08读写测试应用程序 */#include <stdio.h> #include <string.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/types.h> ...转载 2019-09-15 17:32:12 · 1483 阅读 · 0 评论