自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奶牛养殖场小马

正经人谁写博客啊

  • 博客(440)
  • 收藏
  • 关注

原创 九_进程控制8-FreeBSD中进程-进程组-会话-控制终端之间的联系

FreeBSD 是一种类UNIX操作系统。

2024-04-29 10:41:13 90

原创 九_进程控制7-shell执行程序

前面描述了 不支持作业控制的shell 在执行命令时候,其进程 进程组 会话,前台进程之间的关系。由于不支持作业控制,所以不论命令标注是前台执行 还是 后台执行,相关的进程都在前台进程组,无后台进程组。可以控制产生 前台进程组 或者 后台进程组。如果不支持 作业控制,则无法控制产生后台进程组。即 不支持作业控制的shell 只有前台进程组。TPGID 控制终端进程组ID(由控制终端修改,用于指示当前前台进程组)使用支持作业控制的shell 对比分析。PPID 父进程ID。PGID 进程组ID。

2024-04-29 10:38:50 69

原创 九_进程关系6-作业控制

可以控制产生 前台进程组 或者 后台进程组。如果不支持 作业控制,则无法控制产生后台进程组。即 不支持作业控制的shell 只有前台进程组。

2024-04-29 10:35:46 68

原创 九_进程关系5-进程组与终端

2024-04-29 10:33:19 254

原创 九_进程关系4-控制终端-进程组-会话的关系

2024-04-29 10:32:11 188

原创 九_进程关系3-会话

2024-04-29 10:31:03 359

原创 九_进程关系2-进程组

2024-04-29 10:29:45 191

原创 九_进程关系1+1-终端设备

控制终端,即当前用户正在使用的终端,是一个映射,指向当前所使用的真正的虚拟终端(例如/dev/tty1,/dev/pts/0)。/dev/tty and /dev/console 可以简单的理解为 他们俩都代表当前打开的实际终端的链接,是映射到某个实际的虚拟终端的链接终端。在linux中,每一个系统与用户进行交流的界面称为终端(用户与进程交流的窗口),每一个从此终端开始运行的进程,都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。三 /dev/ttySn。

2024-04-29 10:28:36 202

原创 九_进程关系1-终端

控制台的特点在于它只能被管理员使用,且每一台计算机只能有一个控制台,它在外观上与普通终端并没有太大的差异,但是它具有最高的权限(例如以单用户模式启动操作系统时,控制台是唯一的可登录终端,其他终端是没有权限登陆的)。通过线缆连接在主机上,由于早期的计算机很贵很庞大,不可能人手一台,所以工作人员是通过终端设备来连接到计算机上,键盘提供文字输入,显示器提供文本输出,这样就提供了一个人机交互的接口。我们每天都用终端,终端中能玩儿俄罗斯方块,甚至能显示高清的图片,从上个实际的古董硬件发展到先到的软件工具。

2024-04-29 10:21:17 195

原创 八_进程控制14 - 进程时间

【代码】进程控制14 - 进程时间。

2024-04-28 21:39:36 82

原创 八_进程控制13 - 进程调度

相比之下 当父进程有最高的nice值(最低优先级)时,我们看到父进程占用 1.4%的CPU,而子进程占用 98.6%的CPU,这些值取决于进程调用程序如何使用nice值,因此不同的UNIX系统会产生不同的CPU占用比。当两个进程 nice值相同的时候,两个进程各自占用进阶50%的CPU。可以看到,两个进程被有效地进行了平等对待。百分比并不完全相同,是因为进程调度并不精确。

2024-04-28 21:36:03 142

原创 八_进程控制10 - 函数system()

2024-04-28 21:30:49 56

原创 八_进程控制7 - exec函数族

下面这个demo使用execl函数,传入path也就是execlnewpro的路径(这里也可以写绝对路径),argv的第一个参数是我们需要的可执行文件名字,abc是第二个参数,结尾必须以NULL结尾。如果execl执行后返回-1,代表没有这个文件,会执行printf(“execl filed!我们可以通过perror来打印错误信息,那么紧接着会执行printf(“Execute after failure!,因为filed会原程序的调用点接着往下执行。如果成功就直接去调用execlnewpro了。

2024-04-28 21:10:45 159

原创 八_进程控制6 - 获取子进程终止状态 wait()系列

2024-04-28 20:51:12 321

原创 八_进程控制5 - exit()退出+子进程被收养+僵死进程

我们应当知道的是,在用fork创建子进程后,父子进程的执行的先后顺序是不定的,这时,我们可以用wait函数,wait()会暂停当前进程的执行,直到有信号到来或者子进程结束。总的来说,wait()的作用就是阻塞父进程,等待子进程。我们是在父进程中使用wait(),可以不让父进程先于其产生的子进程结束,因为如果父进程结束了,而子进程还没有结束,那这个进程就会变成一个“孤儿进程”,他会被init进程收养(进程号为1),并由init进程对它们完成状态收集工作。

2024-04-28 20:43:49 212

原创 八_进程控制4 - vfork

2024-04-28 20:19:29 206

原创 八_进程控制3 - fork()详解,父子进程的文件共享

2024-04-28 20:14:37 106

原创 Socket缓冲区,可读可写条件

1 首先会检查缓冲区,如果缓冲区的可用空间长度小于要发送的数据,那么 write()/send() 会被阻塞(暂停执行),直到缓冲区中的数据被发送到目标机器,腾出足够的空间,才唤醒 write()/send() 函数继续写入数据。2 如果TCP协议正在向网络发送数据,那么输出缓冲区会被锁定,不允许写入,write()/send() 也会被阻塞,直到数据发送完毕缓冲区解锁,write()/send() 才会被唤醒。1 首先会检查缓冲区,如果缓冲区中有数据,那么就读取,否则函数会被阻塞,直到网络上有数据到来。

2023-01-30 11:21:33 1068 1

原创 RTSP,RTP,RTCP协议

比如,对于I帧、P帧、B帧数据,由于其重要性依次降低,故在网络状况不好的情况下,可以考虑在B帧丢失甚至P帧丢失的情况下不进行重传,这样,在客户端方面,虽然可能会有短暂的不清晰画面,但却保证了实时性的体验和要求。如果是UDP传输 则需要另外创建 RTP udp Socket 与 RTCP udp Socket,并且 RTP和RTCP分别使用两个相邻的UDP端口,RTP报文使用低端口,并且是偶数的UDP端口,RTCP报文使用高端口,并且是奇数的UDP端口(偶数的UDP端口+1)。

2023-01-30 10:08:34 1335 1

原创 sysfs--kset, kobj, kobj_type

内核sysfs文件系统使用kobject将上述目录中的各个对象链接起来,并组成一个分层的结构体系。内核为sysfs文件目录内的每个目录都创建一个kobject结构。

2023-01-26 20:48:48 763

原创 sysfs文件系统简述

当然跟设备驱动具体的实现方式有关,通常情况下,一般简单地设备会使用 sysfs 方式操控,其设备驱动在实现时会将设备的一些属性导出到用户空间 sysfs 文件系统,以属性文件的形式为用户空间提供对这些数据、属性的访问支持,譬如 LED、GPIO 等。编译为内联方式的模块则只在当他有非0属性的模块参数时会出现的对应的 /sys/module// ,这些模块的可用参数会出现在 /sys/module//parameter/中。

2023-01-26 12:17:13 1303 1

原创 Udev 为设备节点起别名

在插入u盘后,出现sdb相关节点, 则当前u盘对应的设备节点就是sdb。KERNELS - 硬件端口号,有些设备的 idVendor和idProduct 是相同,依靠这两个并不能完全准确的区分目标设备,这时候就需要用 KERNELS 硬件端口号。同理 SD卡 操作也类似: 示例中硬件端口号是随机写的,思路是一样的,只不过这里 也指定了原生的设备名为 “sd*”,增加了筛选条件。这样就为 sdb 取了一个别名为 “usb-Upan” ,以后在程序里直接访问 “usb-Upan”,就可以与该u盘通信了。

2023-01-19 17:45:29 1843

原创 Udev设备管理器

udev 引入在2.4内核中 引入了 devfs,他支持设备节点的动态创建。devfs提供了在内存中的文件系统中创建设备节点的能力。设备驱动程序能够自主的管理自己的设备文件。而命名节点的任务还是落到了设备驱动程序头上。但是,设备命名策略是可管理的,不应该与内核混在一起,设备命名策略可以位于头文件,模块参数,或者用户空间中。而udev则将设备管理的任务推向了用户空间。

2023-01-19 14:52:04 1298

原创 USB大容量存储设备浅析

当插入U盘,USB主机控制器会识别到该设备是一个海量存储设备,然就就会根据SCSI协议,先发送CBW命令块包,U盘收到后根据SCSI协议解析该报,并回复命令执行状态包(CSW),就是应答,作为对前一个CBW命令块包处理结果的回应。同IDE(ATA)完全不同的接口, IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。IDE、SCSI、USB,并行口,串口,其中并行口与串口的速度非常慢,不提也罢,最主要的就是IDE,usb, SCSI。

2023-01-09 16:11:15 3181

原创 嵌入式系统IO体系简述

CPU的主要职责是负责运算,而计算机是需要各种外设的,否则无法和人进行交互。早期x86体系的CPU,需要使用前端总线(fsb)和北桥芯片相连,北桥再和南桥相连。南北桥是一种架构的划分,设计者的原始图架构上,在上部的称为北桥,下部的成为南桥。典型上,北桥的功能主体是AGP控制、内存控制,南桥包括IDE、PCI、串并口多功能控制单元,集成网卡控制器、音效控制器就在南桥。而集成的图形控制单元,就是集成显卡核心了,就在北桥。总之,CPU控制外部设备需要依赖于南北桥,而南北桥中就集中了各种外部设备的控制器。

2023-01-06 15:55:51 936

原创 USB客户驱动简析

内核为我们提供了一个最基础的USB驱动,即USB骨架程序,是一个最简单的USB设备驱动实例。通过分析该驱动可以了解 USB设备驱动主要工作、如何读写数据。

2023-01-05 23:02:03 258

原创 USB子系统简述

引子:关于 lsusb 命令Bus 004 :表示第四个 usb 主控制器(机器上总共有四个 usb 主控制器,可以通过命令 lspci | grep USB 查看)。Device 001表示系统给 usb 鼠标设备分配的设备号(devnum),同时也可以看到该设备是插入到了第4个 usb 主控制器。ID 1d6b:0003 表示 usb 设备的 ID(这个 ID 由芯片制造商设置,可以唯一表示该设备)。

2023-01-05 22:04:29 1034

原创 USB基础

一个USB分层星型结构有且仅有一个USB主机控制器,并且USB主机控制器一般都伴随有一个Root Hub(根集线器),都在在最顶层,主机通过Root Hub提供若干个连接点,由于集线器和电缆中的信号传输有定时限制,该星形拓扑结构的最大层数为7层(包括根层)。当USB设备插入到USB集线器后,一切的工作都是由USB集线器开始的。当USB设备插入到USB集线器的一个端口后,该端口会检测到有设备插入,检测依据是USB设备在D+ 或 D- 数据线的上拉电阻,当设备的上拉电阻在D+时,为全速设备。

2023-01-03 20:00:50 4117

原创 PHY启动

stmmac_open()会去尝试到mdio总线上 匹配 phy device 与 phy driver。当匹配成功后 会调用 phy driver的 probe()函数,设置 phy 状态为准备状态PHY_READY,启动phy 状态机任务。然后做一系列操作后 最终 切换phy 状态为驱动 PHY_UP,这样 状态机任务就会继续执行下去。当执行ifconfig eth0 up 希望启动网络的时候,会执行 网卡设备的操作集 open()问题: PHY 是怎么启动的。

2022-12-30 23:56:55 637

原创 PHY驱动注册部分

所以 一般情况下,如果不需要使用PHY厂家提供的自定义的寄存器配置实现一些个性化的功能,那么PHY驱动就基本不需要修改。phy_driver注册成功了,那就差phy_device的注册。看代码就知道 phy_device的注册不依靠设备树,而是在GMAC控制器注册时候 在其中的mdiobus_register中会注册phy_device。对应的目录是/sys/mdio,在/sys/mdio/devices目录中会有挂载在mdio的phy设备,在/sys/mdio/drivers中会有phy设备的驱动。

2022-12-29 00:20:33 1092

原创 MAC控制器驱动

所以以太网模块的硬件相关的驱动代码主要包括 GMAC 和 PHY,其中MAC控制器驱动由SoC厂商开发,PHY芯片驱动由PHY厂商开发,PHY 驱动一般使用通用 PHY 驱动,如果有需要修改特殊寄存器,请使用对应的 PHY 驱动,代码都在 drivers/net/phy。对应的目录是/sys/mdio,在/sys/mdio/devices目录中会有挂载在mdio的phy设备,在/sys/mdio/drivers中会有phy设备的驱动。GMAC 驱动代码,高于3.10 的内核版本,

2022-12-28 23:52:19 2376

原创 嵌入式终端的以太网系统简析

比如发送数据时,MAC主要处理的数字信号,而 PHY芯片就是负责把MAC的数字信号进行编码,串行化等操作后,转化为模拟信号进行发送。就是PHY一旦连入网络,PHY 会和它相连接的端口的PHY进行协商,当前通信使用的速率是 1000M, 100M 还是10M?MII 数据接口总共需要 16 个信号,包括 TX_ER,TXD[3:0],TX_EN,TX_CLK,COL,RXD[3:0],RX_ER,RX_CLK,CRS,RX_DV 等。根据当前网络的传输速率,是否有数据传输,来自动控制LED 灯的行为。

2022-12-28 22:03:58 1053

原创 ASOC系统简析

ASOC系统简述

2022-12-22 13:20:22 821

原创 ALSA系统简析

Audio ALSA 概述

2022-12-12 11:19:31 1354

原创 音频基础概念

音频基础知识

2022-12-10 22:56:33 1486

原创 基于RV1126 Video分析-----添加所有media模型到多媒体设备

添加所有media模型到多媒体设备

2022-12-04 00:43:34 430

原创 基于RV1126 Video分析-----链接 mipi csi phy与 sensor 的media模型

链接 mipi csi phy与 sensor 的media模型

2022-11-30 23:50:57 922 1

原创 基于RV1126 Video分析-----链接 mipi csi 与 mipi csi phy 的media模块

链接 mipi csi 与 mipi csi phy 的media模块

2022-11-30 23:38:17 666

原创 基于RV1126 Video分析-----链接 isp 与mipi csi 的media模块

链接 isp 与mipi csi 的media模块

2022-11-30 22:54:59 1608

原创 基于RV1126 Video分析-----图像处理media模块注册

图像处理模块所代表的media模块注册

2022-11-29 04:06:25 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除