摘要: https://blog.csdn.net/zqixiao_09/article/details/50850004 下图描述了Linux中虚拟文件系统,一般的设备文件与设备驱动程序间的函数调用关系 上图展现了一个应用程序调用字符设备驱动的过程,在设备驱动程序的设计中,一般而言,会关系file和ino 阅读全文
posted @ 2018-06-29 22:37 Ocean&Star 阅读(276) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/zqixiao_09/article/details/50849735 上一篇我们介绍到创建设备文件的方法,利用cat /proc/devices查看申请到的设备名,设备号。第一种是使用mknod手工创建:mknod filename type major 阅读全文
posted @ 2018-06-29 22:26 Ocean&Star 阅读(691) 评论(-2) 推荐(0) 编辑
摘要: https://blog.csdn.net/zqixiao_09/article/details/50839042 1、字符设备基础知识 1.1、设备驱动分类linux系统将设备分为3类:字符设备,块设备,网络设备。使用驱动程序: 》什么是字符设备: 》》是指只能一个字节一个字节读写的设备 》》不能 阅读全文
posted @ 2018-06-29 21:59 Ocean&Star 阅读(928) 评论(-2) 推荐(0) 编辑
摘要: 本节通过实例代码运行结果,让大家看到在并发式IO访问时非阻塞IO遭遇的困境,由此引入非阻塞式IO。 3.6.2.1、程序中读取键盘 include include include int main(void) { // 读取键盘 // 键盘就是标准输入,stdin char buf[100]; me 阅读全文
posted @ 2018-06-29 21:09 Ocean&Star 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 本节讲解什么是非阻塞IO,如何将文件描述符修改为非阻塞式 3.6.1.1、阻塞与非阻塞 (1)阻塞是指函数调用会被阻塞。本质是当前进程调用了函数,进入内核里面去后,因为当前进程的执行条件不满足,内核无法里面完成操作,就挂起这个进程,去执行其他进程。默认使用阻塞IO (2)非阻塞IO当条件不满足时直接 阅读全文
posted @ 2018-06-29 20:41 Ocean&Star 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 本节介绍framebuffer的概念和来源、设计思想,fb设备的应用层接口等,为下节使用framebuffer应用编程打基础。 5.7.1.1、什么是framebuffer (1).裸机中如何操作LCD Soc里面有CPU,LCD控制器;外部有LCD的驱动器,驱动器后面带着屏幕,驱动器和控制器之间使 阅读全文
posted @ 2018-06-29 20:31 Ocean&Star 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 待添加 阅读全文
posted @ 2018-06-29 20:19 Ocean&Star 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 5.4.17.1、驱动的存在形式 (1)野生,优势是方便调试开发,所以在开发阶段都是这种 (2)家养,优势可以在内核配置时make menuconfig决定内核怎么编译,方便集成 5.4.17.2、驱动开发的一般步骤 (1)以模块的形式在外部编写、调试 (2)将调试好的驱动代码集成到kernel中 阅读全文
posted @ 2018-06-29 20:11 Ocean&Star 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 5.4.13.2、从驱动框架角度再来分析一下gpiolib (1)之前的分析已经告一段落,截至目前我们已经搞清楚了gpiolib的建立工程。但是这只是整个gpiolib建立的一部分,是厂商驱动工程师负责的那一部分;还有另一部分是内核开发者提供的驱动框架的那一部分,就是我们后面要去分析的第2条主线。 阅读全文
posted @ 2018-06-29 20:09 Ocean&Star 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 待整理 阅读全文
posted @ 2018-06-29 20:09 Ocean&Star 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 总结:先分析杂碎:struct s3c_gpio_chip,s5pv210_gpio_4bit 5.4.10.1、struct s3c_gpio_chip gpiolib库的初始化实质就是对这个结构体数组进行赋值 (1)这个结构体是一个GPIO端口的抽象,这个结构体的一个变量就可以完全的描述一个IO 阅读全文
posted @ 2018-06-29 19:49 Ocean&Star 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 1. gpiolib学习重点 (1)gpiolib的建立过程 (2)gpiolib的使用方法:申请、使用、释放 (3)gpiolib的架构:涉及哪些目录的哪些文件 2. gpiolib的学习方法 可跳过 3.什么是gpiolib,为什么要有gpiolib? linux中从2.6.35以后就开始有gp 阅读全文
posted @ 2018-06-29 10:01 Ocean&Star 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 转载:https://blog.csdn.net/MingLLu/article/details/50585557 1.cache的定位 cache是位于主存(即是内存)与CPU内部的寄存器之间的一个存储设施,用来加快cpu与内存之间 数据与指令的传输速率,从而加快处理的速度。 2.cache的作用 阅读全文
posted @ 2018-06-29 09:54 Ocean&Star 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 本节开始编写基于TCP的客户端和服务器连接通信程序 3.9.6.1、服务器端程序编写 (1)socket:打开一个文件描述符 (2)bind:让服务器和当前运行服务器的电脑IP绑定。做服务器的电脑必须有一个外网IP地址,做客户端的电脑可以没有,因为客户端可以通过路由器[路由器有外网IP地址]连接到I 阅读全文
posted @ 2018-06-29 09:23 Ocean&Star 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 本节介绍linux API中与网络编程相关的接口函数,后面的实战编程中都要用到这些函数。 3.9.4.1、建立连接 (1)socket。socket函数类似于open,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都通过这个网络文件描述符。 (2)bi 阅读全文
posted @ 2018-06-29 08:50 Ocean&Star 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 本节接上节继续讲解TCP协议,主要讲了TCP协议建立连接和关闭连接时的握手方法,最后讲了使用TCP来实现的常见应用层协议。 3.9.3.1、TCP的三次握手 (1)建立连接需要三次握手 (2)建立连接的条件:服务器listen时客户端主动发起connect。 3.9.3.2、TCP的四次握手 (3) 阅读全文
posted @ 2018-06-29 08:45 Ocean&Star 阅读(157) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/lanxiang/p/7487971.html 阅读全文
posted @ 2018-06-29 00:18 Ocean&Star 阅读(236) 评论(0) 推荐(0) 编辑