![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LINUX驱动
思途积跬
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
LINUX驱动学习之7-字符设备驱动
字符设备驱动设计到两个重要的结构体cdev和file_operations。在include/linux/cdev.h和include/linux/fs.h文件定义一、cdevstruct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_he...原创 2020-05-23 19:16:18 · 369 阅读 · 0 评论 -
LINUX驱动学习之3-硬件知识准备
一、存储器NOR Flash和CPU的接口属于典型的类SRAM接口,因此不需要额外的控制电路,CPU就可以和NOR FLASH通信,并且数据的交换,修改,可以直接在NOR FLASH上进行。RAM也可再分为静态RAM(SRAM)和动态RAM(DRAM)。DRAM以电荷形式进行存储,数据存储在电容器中。由于电容器会因漏电而出现电荷丢失,所以DRAM器件需要定期刷新。SRAM是静态的,只要供电它...原创 2020-05-04 10:37:41 · 267 阅读 · 0 评论 -
LINUX驱动学习之4-LINUX内核和内核编程
说到内核,需要提两个重要的内容1.GNU计划:开发了优秀的编译器GCC和调试器GDB等基础设施2.POSIX标准:可移植的操作系统接口。一、内核各版本主要特点二、版本的命名版本有两个小数点,三部分数字,如LINUX 2.6.35, 数字不停的增大,周期2-3个月三、版本变更的详细信息在这个网站可以查到http://kernelnewbies.org/LinuxVersions。四...原创 2020-05-03 19:53:57 · 588 阅读 · 0 评论 -
LINUX驱动学习之2-Hello world驱动--点亮LED--感性认识,无实操
操作GPIO的本质:实际上就是操作IC的“配置寄存器”和“数据寄存器”。配置寄存器:配置GPIO口输入输出模式,推挽输出还是开漏,上下拉配置数据寄存器:配置GPIO的输出电平高低,或读取输入电平高低一、无操作系统的hello world对于无操作系统,通常代码如下1#define reg_gpio_ctrl GPIO_REG_CTRL2#define reg_gpio_data GP...原创 2020-05-03 13:52:45 · 184 阅读 · 0 评论 -
LINUX驱动学习之1-摘要
一、硬件-驱动-操作系统-应用的关系如下图所示,结构重点体现了,分层、封装、隔离的特性。二、驱动常见设计错误1.驱动中包含业务层面的处理。不符合高内聚、低耦合的要求。2.应用层直接操作硬件寄存器。note:对于简单的单片机系统,因为外设固定,功能相对单一,因此常常在软件架构上不会太多讲究。但是当需要跑系统的时候,就应该做响应的归纳,升华架构。三、LINUX驱动设备三大类字符设备...原创 2020-05-03 12:28:32 · 296 阅读 · 0 评论