00. 目录
01. 命令概述
watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。
02. 命令格式
格式:watch [选项] 命令
- 1
03. 常用选项
-n 或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d 或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。
而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h 或--help 查看帮助文档
- 1
- 2
- 3
- 4
- 5
04. 参考示例
4.1 重复执行uptime命令
[deng@itcast ~]$ watch uptime
- 1
4.2 每隔一秒高亮显示网络链接数的变化情况
[deng@itcast ~]$ watch -n 1 -d netstat -ant
- 1
4.3 每10秒一次输出系统的平均负载
[deng@itcast ~]$ watch -n 10 'cat /proc/loadavg'
- 1
4.4 每隔一秒高亮显示http链接数的变化情况
[deng@itcast ~]$ watch -n 1 -d 'pstree | grep http'
- 1
4.5 查看目录内容的变化
[deng@itcast ~]$ watch -d ls -l
- 1
4.6 监视管理员安装最新的内核
[deng@itcast ~]$ watch uname -r
- 1
05. 附录
概述
功能简介
CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。
物理层支持HS(High Speed)和LP(Low Speed)两种工作模式。HS模式下采用低压差分信号,功耗较大,但数据传输速率可以很高(数据速率为80M~1Gbps);LP模式下采用单端信号,数据速率很低(<10Mbps),但是相应的功耗也很低。两种模式的结合保证了MIPI总线在需要传输大量数据(如图像)时可以高速传输,而在不需要传输大数据量时又能够减少功耗。
图1显示了简化的CSI接口。D-PHY采用1对源同步的差分时钟和1~4对差分数据线来进行数据传输。数据传输采用DDR方式,即在时钟的上下边沿都有数据传输。
图 1 CSI发送、接收接口
MIPI CSI标准分为应用层、协议层与物理层,协议层又细分为像素字节转换层、低级协议层、Lane管理层。
- 物理层(PHY Layer)
PHY层指定了传输媒介,在电气层面从串行bit流中捕捉“0”与“1”,同时生成SoT与EoT等信号。
- 协议层(Protocol Layer)
协议层由三个子层组成,每个子层有不同的职责。CSI-2协议能够在host侧处理器上用一个单独的接口处理多条数据流。协议层规定了多条数据流该如何标记和交织起来,以便每条数据流能够被正确地恢复出来。
- 像素字节转换层(Pixel/Byte Packing/Unpacking Layer)
CSI-2规范支持多种不同像素格式的图像应用。在发送方中,本层在发送数据到Low Level Protocol层之前,将来自应用层的像素封包为字节数据。在接收方中,本层在发送数据到应用层之前,将来自Low Level Protocol层的字节数据解包为像素。8位的像素数据在本层中传输时保持不变。
-
低级协议层(Low Level Protocol) LLP主要包含了在SoT和EoT事件之间的bit和byte级别的同步方法,以及和下一层传递数据的方法。LLP最小数据粒度是1个字节。LLP也包含了一个字节内的bit值解析,即Endian(大小端里的Endian的意思)的处理。
-
Lane管理层(Lane Management)
CSI-2的Lane是可扩展的。具体的数据Lane的数量规范并没有给出限制,具体根据应用的带宽需求而定。发送侧分发(distributor功能)来自出口方向数据流的字节到1条或多条Lane上。接收侧则从一条或多条Lane中收集字节并合并(merge功能)到一个数据流上,复原出原始流的字节顺序。对于C-PHY物理层来说,本层专门分发字节对(16 bits)到数据Lane或从数据Lane中收集字节对。基于每Lane的扰码功能是可选特性。 协议层的数据组织形式是包(packet)。接口的发送侧会增加包头(header)和错误校验(error-checking)信息到即将被LLP发送的数据上。接收侧在LLP将包头剥掉,包头会被接收器中对应的逻辑所解析。错误校验信息可以用来做入口数据的完整性检查。
- 应用层(Application Layer)
本层描述了更高层级的应用对于数据中的数据的处理,规范并不涵盖应用层。CSI-2规范只给出了像素值和字节的映射关系。
运作机制
MIPI CSI模块各分层的作用为:
-
接口层提供打开设备、写入数据和关闭设备的接口。
-
核心层主要提供绑定设备、初始化设备以及释放设备的能力。
-
适配层实现其它具体的功能。
说明:
核心层可以调用接口层的函数,核心层通过钩子函数调用适配层函数,从而适配层可以间接的调用接口层函数,但是不可逆转接口层调用适配层函数。
图 2 CSI无服务模式结构图
开发指导
场景介绍
MIPI CSI仅是一个软件层面的概念,主要工作是CSI资源管理。开发者可以通过使用提供的CSI操作接口,实现对CSI资源管理。当驱动开发者需要将MIPI CSI设备适配到OpenHarmony时,需要进行MIPI CSI驱动适配,下文将介绍如何进行MIPI CSI驱动适配。
接口说明
为了保证上层在调用MIPI CSI接口时能够正确的操作硬件,核心层在//drivers/hdf_core/framework/support/platform/include/mipi/mipi_csi_core.h中定义了以下钩子函数。驱动适配者需要在适配层实现这些函数的具体功能,并与这些钩子函数挂接,从而完成接口层与核心层的交互。
MipiCsiCntlrMethod定义:
struct MipiCsiCntlrMethod {
int32_t (*setComboDevAttr)(struct MipiCsiCntlr *cntlr, ComboDevAttr *pAttr);
int32_t (*setPhyCmvmode)(struct MipiCsiCntlr *cntlr, uint8_t devno, PhyCmvMode cmvMode);
int32_t (*setExtDataType)(struct MipiCsiCntlr *cntlr, ExtDataType* dataType);
int32_t (*setHsMode)(struct MipiCsiCntlr *cntlr, LaneDivideMode laneDivideMode);
int32_t (*enableClock)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
int32_t (*disableClock)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
int32_t (*resetRx)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
int32_t (*unresetRx)(struct MipiCsiCntlr *cntlr, uint8_t comboDev);
int32_t (*enableSensorClock)(struct MipiCsiCntlr *cntlr, uint8_t snsClkSource);
int32_t (*disableSensorClock)(struct MipiCsiCntlr *cntlr, uint8_t snsClkSource);
int32_t (*resetSensor)(struct MipiCsiCntlr *cntlr, uint8_t snsResetSource);
int32_t (*unresetSensor)(struct MipiCsiCntlr *cntlr, uint8_t snsResetSource);
};
c
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: