
内核
文章平均质量分 69
kpler
嵌入式软件
展开
-
I2c子系统
总结一下数据传输的关键点:数据稳定性:在 SCL 的高电平期间,SDA 上的数据必须保持稳定,不发生变化。这是因为在 SCL 的高电平时,数据被接收方读取。数据变化时机:SDA 上的数据变化应在 SCL 的低电平期间进行,这样数据在 SCL 的下一个高电平到来之前已经稳定,确保数据的正确读取。数据有效性:数据在 SCL 为高电平时被视为有效,此时数据被从设备读取。每一次发送数据过后都需要收一个ack来确认数据是否收到在I2C中,0110这个数据是先发送最高位,然后再发送低位。原创 2024-08-15 22:37:47 · 729 阅读 · 0 评论 -
驱动基础开发
字符设备驱动框架,首先我们需要去用module_init这个宏去修饰整个驱动的入口函数,用module_exit去修饰整个驱动的出口函数,然后还需要用MODULE_LICENSE用于声明模块的许可证类型。在入口函数里面我们需要注册字符设备,使用register_chrdev()注册字符设备,使用class_create来注册区分一个类,在用device_create来为这个类创造一个设备节点,供我们在linux根目录下的dev目录下给应用层程序访问。原创 2024-08-14 21:16:46 · 1187 阅读 · 0 评论 -
驱动认知(1)
1,linux一切皆为文件,在这里我们需要把设备抽象为文件,linux的目录下有一个dev设备是专门用来存储着设备文件 2,linux下会有一个专门的驱动链表来管理所有的设备驱动。 3,设备文件会有 a,文件名 b,设备号(主设备号不同种类的设备,次设备号同种设备不同型号) 4,驱动链表 驱动插入链表的顺序由设备号检索, a,添加。(编写完驱动程序,加载到内核,调用驱动程序(用open调用))b,查找 5,做驱动需要干两件事 a,添加驱动 1,设备名 2,设备号 3,设备驱动函数 b,调用驱动 用户态下调用原创 2022-02-05 21:28:33 · 771 阅读 · 0 评论 -
编译内核的相关知识
1,在PC端搭建环境。(ubantu) 2,树莓派等芯片带操作系统的启动过程 C51,STM32(裸机)用C直接操控底层寄存器实现相关业务。 业务流程型的裸机代码。 3,带有操作系统的(X86,intel,windows) 启动过程:电源->bios芯片->windows内核->C,D盘->启动程序 嵌入式产品:树莓派,mini2440,mini6410,nanopi,海思,RK(瑞芯微) 启动过程: 电源-》BootLoader(引导操作系统启动)-》Linux内核-》文件系统原创 2022-01-19 23:20:24 · 1103 阅读 · 0 评论