linux内核和驱动开发
文章平均质量分 81
驱动
东北马里奥
十年饮冰,难凉热血。
展开
-
linux驱动之设备与驱动
linux驱动第一章 linux驱动之设备与驱动linux驱动之设备与驱动linux驱动一、misc杂项设备1.杂项设备设置的常用函数和基本流程2.实例二、字符设备1.字符设备设置的常用函数和基本流程2.实例3.字符设备结构体详解4.申请设备号时的内核细节三、Platform设备驱动1.platform设备2.platform驱动3.platform设备驱动细节四、总结1. 杂项设备2. 字符设备3.Platform一、misc杂项设备1.杂项设备设置的常用函数和基本流程杂项设备设置的常用原创 2021-12-29 20:21:12 · 645 阅读 · 0 评论 -
linux驱动之设备树与GPIO子系统
linux驱动第一章 linux驱动之设备与驱动linux驱动之设备树与GPIO子系统linux驱动一、设备树1.设备树基本概念作用2.进程读取的常用of函数2.实例二、GPIO系统1.DTS设置方法2.实例3.字符设备结构体详解4.申请设备号时的内核细节三、Platform设备驱动1.platform设备2.platform驱动3.platform设备驱动细节四、总结1. 杂项设备2. 字符设备3.Platform一、设备树1.设备树基本概念作用1.DTS 、DTC 和 DTB的关系:原创 2021-12-29 21:36:44 · 3801 阅读 · 0 评论 -
makefile和cmake
linux驱动makefile和cmakelinux驱动一、makefile1.makefile常见语法2.gcc编译流程3.链接的细节4.交叉编译器二、uboot1.U-Boot 简介2.U-Boot 编译安装过程3.U-Boot 编译后的文件详解4.u-boot.imx文件的来源(烧到板子的最终文件)一、makefile1.makefile常见语法CROSS_COMPILE ?= arm-linux-gnueabihf-TARGET ?= beepCC := $(C原创 2022-01-16 21:28:16 · 340 阅读 · 0 评论 -
系统编程常用函数
int fd=open("test.txt",O_RDWR|O_CREAT|O_TRUNC,0777);char buf[1024];strcpy(buf,"putout to stdout");int len=write(STDOUT,buf,sizeof(buf));int len=read(STDIN_FILENO,buf,sizeof(buf));int length=lseek(fd,0,SEEK_END);ftruncate(fd,20);link("text.txt","text原创 2022-05-20 23:46:38 · 168 阅读 · 0 评论 -
linux驱动之中断与输入子系统
linux驱动第一章 linux驱动之设备与驱动第三章 linux驱动之总线详解linux驱动之中断子系统linux驱动一、中断的设备树1.中断设备树结构2.中断的设备树设置3.中断相关函数一、中断的设备树1.中断设备树结构intc 顶层中断控制器——gpc一级子中断控制器——soc 二级子中断控制器(包含大多数外设的具体中断控制器)intc: interrupt-controller@a01000 { compatible = "arm,cortex-a7-gic";原创 2022-01-02 19:00:34 · 633 阅读 · 0 评论 -
linux驱动之总线详解
linux驱动第一章 linux驱动之设备与驱动第二章 linux驱动之设备树与GPIO子系统linux驱动之总线详解linux驱动一、总线bus1.bus在linux中文件结构2.bus_type3.常用的系统函数二、Platform设备驱动1.platform2.platform设备3.platform驱动4.platform设备驱动细节三、I2C1.IIC总线2.I2C在linux下的结构2.I2C中主要的结构体3.i2c的系统调用函数一、总线bus1.bus在linux中文件结构原创 2022-01-01 20:25:22 · 2371 阅读 · 2 评论 -
linux网络通信
linux网络编程makefile和cmakelinux网络编程一、socket1.常见函数详解2.服务器代码3.客户端代码二、select1.IO复用的概念2.常见函数详解3.服务器代码三.epool1.epool和select的区别2.常用的函数3.服务区代码四、udp通信1.实现方法及其代码五、本地套接字一、socket1.常见函数详解1.创建socket: int socket(int domain, int type, int protocol); domain: AF_IN原创 2022-03-05 22:20:29 · 5614 阅读 · 0 评论 -
Linux系统通信
信号信号处理函数捕获信号:sighandler_t signal(int signum, sighandler_t handler);//当发生signum信号时,调用handler函数void (*sighandler_t)(int)int kill(pid_t pid, int sig);//向pid进程发送信号sigint raise(int sig);向当前进程发送信号sigunsigned int alarm(unsigned int seconds);//seconds原创 2021-12-20 23:07:14 · 339 阅读 · 1 评论 -
Libevent速成
Libevent速成总结makefile和cmakeLibevent速成总结一、概述1.反应堆模型2.事件状态转换图一、普通事件和信号1.libevent的常用函数2.demo代码三、bufferevent和evconnlistener1.常用函数2.代码demo一、概述1.反应堆模型在epool事件结构体中我们将event.data.ptr 指向一个带有函数指针的结构体,每当事件触发,就通过event.data.ptr调用对应的函数。这种类似于信号的代码模式称为反应堆(reactor)模型。原创 2022-03-07 14:27:22 · 155 阅读 · 0 评论 -
linux中gcc和uboot
系列文章目录文章目录系列文章目录一、uboot1.U-Boot 简介2.U-Boot 编译安装过程3.U-Boot 编译后的文件详解一、uboot1.U-Boot 简介(1)Linux 系统要启动先运行bootloader 程序,引导板子完成初始化。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。bootloader 就相当于windows的 BIOS。(2)原创 2022-01-05 21:52:38 · 1332 阅读 · 0 评论