网站备案 主办单位,备案网站的规则,网络运维工作内容及过程,凡科免费网站能用吗用户态 App#xff1a;cp指令#xff0c;ftp的项目等等这就是App的开发。 App开发需要C的基础和C库#xff0c;C库讲到文件#xff0c;进程#xff0c;进程间通信#xff0c;线程#xff0c;网络#xff0c;界面#xff08;GTk#xff09;。 C库#xff08;是linux标…用户态 Appcp指令ftp的项目等等这就是App的开发。 App开发需要C的基础和C库C库讲到文件进程进程间通信线程网络界面GTk。 C库是linux标准库一定有就是Clibary提供了APP支配内核干活的接口调用的openreadwriteforkpthreadsocket由此处封装实现由写的应用程序调用C库中的各种API调用的是内核态支配内核干活
内核态 进程内存线程网络设备驱动不需要上层应用开发者关心驱动在前面的学习是调用wringpi库实现接下来的学习就是要自己实现wringpi库因为wringpi库由厂家提供可能有可能没有这样当我们拿到另一种类型的板子时同样也可以完成开发。
驱动链表管理所有设备的驱动添加或查找添加是发生在我们编写完驱动程序加载到内核。查找发生在调用驱动程序由应用层用户空间去open。
驱动插入链表的顺序由设备号检索就是说主设备号和次设备号除了除了能区分不同种类的设备和不同类型的设备还能起到将驱动程序创到链表的某个位置。
硬件 linux经典的一句话一切皆文件包括文件设备鼠标键盘LED屏幕flash内存网卡等普通的IO口串口等等。 对于文件学习到对文件的操作有open readwrite这几个API对于这些API是如何区分操作对象是文件还是一些设备这些设备需不需要有驱动驱动又在哪个位置这都是我们需要了解的。驱动肯定是要有的。
假设现在的硬件有pin4pin5pin6这些引脚分别对应于4驱动5驱动6驱动这些驱动需要由我们来开发。 open“/dev/pin4”权限用来调用引脚4的驱动那么如何找到相关的驱动有两个东西供我们查找一是文件名二是设备号包含主设备号和次设备号。 Linux的设备管理是和文件系统紧密结合的各种设备都以文件的形式存放在/dev目录下称为设备文件。应用程序可以打开、关闭和读写这些设备文件完成对设备的操作就像操作普通的数据文件一样。为了管理这些设备系统为设备编了号每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备而次设备号用来区分同一类型的多个设备。
ls -l 查看设备号驱动代码的开发无非就是添加驱动和调用驱动。 例如 用户态调用引脚四open“/de/pin4”,O_RDWR, 这个open会调用System call interface这个函数是在内核中的这个函数会根据设备名找到设备号然后会调用VFS中的sys_opensys_open会找到引脚4中的open函数引脚4中的open函数是对寄存器的操作。用户态进入内核态会发生一次软中断 中断号是0x80。
以上是对下图的解释