MIPI协议

news2024/11/24 18:40:28

MIPI调试指南


Rev.0.1

June 18, 2019

© 2018 Horizon Robotics. All rights reserved.

Revision History

Thissection tracks the significant documentation changes that occur fromrelease-to-release. The following table lists the technical content changes foreach revision.

Revision

Date

Description

V0.1

2019-06-18

tianyu.zhang, Draft

Contents

Revision History..................................................................................................

Contents................................................................................................................

References............................................................................................................

1 概述................................................................................................................

1.1 MIPI完整通路....................................................................................

1.2 名词缩写..........................................................................................

1.3 参数介绍..........................................................................................

1.3.1 通用参数................................................................................

1.3.2 MIPI Host专用参数.............................................................

1.3.3 MIPI Device专用参数.........................................................

2 参数配置........................................................................................................

2.1 MIPI Host配置...................................................................................

2.1.1 D-PHY clock配置.................................................................

2.1.2 IPI clock配置.........................................................................

2.1.3 HSD配置................................................................................

2.1.4 IPI配置....................................................................................

2.1.5 AdvancedFeatures..............................................................

2.2 MIPI Device配置...............................................................................

2.2.1 D-PHY clock配置.................................................................

2.2.2 PLL配置...................................................................................

2.2.3 IPI配置....................................................................................

2.2.4 VPG配置.................................................................................

3 调试建议........................................................................................................

3.1 配置流程..........................................................................................

3.1.1 RX配置流程...........................................................................

3.1.2 TX配置流程.........................................................................

3.2 错误流程.......................................................................................

3.2.1 RX流程错误.........................................................................

3.2.2 TX流程错误.........................................................................

3.3 参数错误.......................................................................................

3.3.1 Clock配置错误...................................................................

3.3.2 Frame rate配置错误.........................................................

4 错误分析.....................................................................................................

4.1 MIPI Host错误................................................................................

4.1.1 INT_ST_PHY_FATAL............................................................

4.1.2 INT_ST_PKT_FATAL.............................................................

4.1.3 INT_ST_FRAME_FATAL......................................................

4.1.4 INT_ST_PHY.........................................................................

4.1.5 INT_ST_PKT..........................................................................

4.1.6 INT_ST_IPI............................................................................

4.2 MIPI Device错误............................................................................

4.2.1 INT_ST_PHY.........................................................................

4.2.2 INT_ST_IPI

References

MIPI-CSI-2-Specification-v1

mipi_D-PHY_specification_v1-2

DWC_mipi_csi2_host_databook

DWC_mipi_csi2_host_user

DWC_mipicsi2_device_databook

DWC_mipicsi2_device_user

dwc_mipi_d_r4_tsmc28hpcp18ns_databook

dwc_mipi_d_t4_tsmc28hpcp18ns_databook

  1. 概述

本文主要针对MIPI调试过程中的常见问题进行一些分析,并结合MIPI配置参数对MIPI相关寄存器/功能的影响进行说明。尽量为调试MIPI的同学提供一些解决问题的方向,同时能更清楚的了解在用户层配置的参数会对MIPI通路造成什么样的影响。

  1. MIPI完整通路

  1. 名词缩写

PPI:PHY-Protocol Interface

IPI: ImagePixel Interface

HS: High-Speed

LP: Low-Power

RX: Receiver

TX:Transmitter

SoT: Start ofTransmission

SoF: Start ofFrame

Vsync: VerticalSynchronism

Hsync:Horizontal Synchronism

Mbps: Megabitsper second

FPS: FramesPer Second

HSA: HsyncActive time

HSD: HsyncDelay time

HBP: HorizontalBack Porch time

CLK: clock

ULPM: UltraLow Power Mode

  1. 参数介绍

  1. 通用参数

lane: MIPI传输中物理线对的数量

mipiclk: MIPI传输中总的Bit Rate, 单位Mbps

fps: Camera送数的帧率

width: Camera输出实际有效宽度,单位为pixel数量

height: Camera输出实际有效高度,单位为line数量

linelenth: Camera输出行长,包括有效宽度和消隐区的宽度,单位为pixel数量

framelenth: Camera输出行数,包括有效高度和消隐区的行数,单位为line数量

settle: Camera输出时,从LP到进入HS的delay

format: Camera输出图像格式,按照SIF的图像格式枚举配置

pix_len: Camera输出图像每个pixel占用的bit数,按照SIF的pixel length枚举配置

  1. MIPI Host专用参数

hsa: IPI 产生的Hsync持续时间

hbp: IPI 产生Hsync到使能data_en的时间

hsd: IPI收到有效数据到产生Hsync(准备取数据)的delay时间

vc_num: Camera输入的virtual channel个数,最大支持2个

vc0_index: Camera输入的virtual channel 0需要对应的IPI index

vc1_index:Camera输入的virtual channel 1需要对应的IPI index

  1. MIPI Device专用参数

format: MIPIDevice输出图像的CSI2格式,在device单独输出时使用,如IAR/VPG

width: MIPIDevice输出图像的宽度,在device单独输出时使用,如IAR/VPG

height: MIPIDevice输出图像的高度,在device单独输出时使用,如IAR/VPG

vpg: 是否开启VPG模式

ipi_lines:MIPI Device检测IPI传入图像的总行数,主要在IAR时使用

  1. 参数配置

本章节主要说明1.3中介绍的配置参数在MIPI配置中的使用,以及针对MIPI驱动配置的关键点进行说明

  1. MIPI Host配置

MIPI Host与参数相关的关键配置主要分D-PHY clock的配置,IPI clock的配置,IPI及HSD的配置

  1. D-PHY clock配置

关键函数:x2_mipi_dphy.c:mipi_dphy_clk_range

使用参数:lane,mipiclk

配置说明:

1. 根据mipiclk/lane,计算出单lane的bit rate(laneclk)

2. 根据laneclk, 结合data book,选择合适的HS clock range

3. 将range value,写入到IPS对应的寄存器中

data book参考:RX D-PHY data book page 143, Table 5-8

  1. IPI clock配置

关键函数:x2_mipi_host.c:mipi_host_pixel_clk_select

使用参数:width,height, fps, linelenth, framelenth

配置说明:

1. 计算总的pixel clock, pixel clock = linelenth*framelenth*fps

特别说明,新的计算公式pixclk = (width + 128) * (height + 96) * fps

这里修改了pixclk的计算方式,主要是避免出现在Camera blanking过大时,HSD的计算会超出范围(最大4095)。理论上,pixel clk只要比Camera的实际传输速率大一些,就可以满足需求,但是这个方法对FPS的准确度要求较高,在项目中可以灵活调整下

2. 根据data book说明,48-bit的IPI在传输raw时一个clock可以传3个pixel, yuv时一个clock可以传1个pixel。ipiclk= pixel clock (YUV), ipiclk = pixel clock / 3 (RAW)

3. 根据ipiclk,结合当前的clock tree, “向上”查找到合适的(且真实)的clock

data book参考:csi2 host data book page 53, Figure 2-28

  1. HSD配置

关键函数:x2_mipi_host.c:mipi_host_get_hsd

使用参数:width,fps, linelenth, framelenth, format, pix_len, ipiclk, HSA, HBP

配置说明:

1. 在用户层会用format, pix_len转为CSI2的data type

2. 根据data type, 得到bits_per_pixel和cycles_to_trans两个关键参数

3. 计算rx_bit_clk = linelenth*framelenth*fps*bits_per_pixel, line_size =width

4. HSD > (bits_per_pixel* line_size * pixclk / rx_bit_clk)-(hsa + hbp + cycles_to_trans)

data book参考:

HostController User Guide page 66, 3.3.3.1

Host data bookpage 60, 2.6.7.1 Camera Timing

  1. IPI配置

关键函数:x2_mipi_host.c:mipi_host_configure_ipi

使用参数:format,pix_len , vc_num, vc0_index , vc1_index, HSA, HBP, HSD

配置说明:

1. 在用户层会用format, pix_len转为CSI2的data type,配置到DATA_TYPE寄存器

2. 如果vc_num==2, 会新增配置IPI2

3. vc0_index,vc1_index会分别配置到IPI_VCID, IPI2_VCID寄存器,表示IPI1接收virtual chanel id为vc0_index的数据,IPI2会接收virtual chanel id为vc1_index的数据

4. HSA=4,HBP=4为代码中的默认值,如果JSON文件有配置hsa, hbp, 则会用配置的值。HSD为2.1.3计算得出,如果JSON文件中有配置hsd,则会用配置的值

data book参考:

Host data bookpage 150, Table 5-5 MemMap/CSI2 Registers

  1. Advanced Features

关键函数:x2_mipi_host.c:mipi_host_configure_ipi

使用参数:N/A

配置说明:

1. 默认没有开启Advanced Features,controller会自动识别合适的时机来产生Vsync, Hsync信号

2. 在使用不同的camera时可能需要配置相应的line event selection,控制controller产生Vsync, Hysnc的时机。比如Video数据在Vsync/Hsync很久后才来,可能需要开启en_video;Camera确认有送Line Start/End短包,可以开启en_line_start等

data book参考:

Host data bookpage 69, 2.6.12 IPI Advanced Features

Host data bookpage 190, Table 5-30 IPI_ADV_FEATURES

  1. MIPI Device配置

MIPI Device与参数相关的关键配置主要分D-PHY clock的配置,PLL的配置,IPI的配置, VPG模式的配置。特别说明:MIPI Device的IPI Clock来源于MIPI Host, 不用单独配置

  1. D-PHY clock配置

关键函数:x2_mipi_dphy.c:mipi_dphy_clk_range

使用参数:lane,mipiclk

配置说明:

1. 根据mipiclk/lane,计算出单lane的bit rate(laneclk)

2. 根据laneclk, 结合data book,选择合适的HS clock range

3. 将range value,写入到IPS对应的寄存器中

data book参考:TX D-PHY data book page 142, Table 5-12

  1. PLL配置

关键函数:x2_mipi_dphy.c:mipi_tx_pll_div

使用参数:lane,mipiclk

配置说明:

1. 根据mipiclk/lane,计算出单lane的bit rate(laneclk)

2. 计算输出频率fout = PLL Fout(GHz) = data rate(Gbps) / 2

3. 根据fout, 结合data book中频率范围的说明,得到fvco和fout合适的分频关系

4. 计算fvco = fout << vco_div

5. 根据TX默认的参考时钟TX_REFSCLK_DEFAULT=24M,计算合适的分频(n)和倍频(m)值

特别说明:为了提高计算精度,目前固定n值为12,使分频器出来频率为整数2MHz

6. 因为非浮点运算精度问题,重新计算fout = fvco >> vco_div = ((refsclk * (*m + 2)) / (*n + 1))>> vco_div

7. 根据data book中vco range,选择合适的vco range以及当前range的频率上限

特别说明:

结合实际使用以及公式推导,data book中的VCO range value应该为fout range

8. 根据得到的fvco_max, 重新计算可以得到这个频率倍频(m)

特别说明:

这里重新根据fvco_max计算m值,是希望最终输出频率在vco range内尽量的大,因为在实测中遇到过,按照正常频点(fvco)计算出来的m直接使用的话,某些camera会遇到device报overflow的错误。请RTL分析原因中,有结论再更新。

data book参考:TX D-PHY data book page 67, PLL Programmability

  1. IPI配置

关键函数:x2_mipi_dev.c:mipi_dev_initialize_ipi

使用参数:format,pix_len, width, height/ipi_lines

配置说明:

1. 在用户层会用format, pix_len转为CSI2的data type,配置到PKT_CFG寄存器

2. PKT_CFG可以控制Device是否发送line sync,以及隔行扫描

特别说明:如果配置了Arbitrary Value Mode, 需要额外配置START_LINE_NUM和STEP_LINE_NUM寄存器

3. 配置width到IPI_PIXELS寄存器,配置height+ 1(默认)或ipi_lines到IPI_LINES寄存器

特别说明:

为了满足MIPIDevice的时序需求,SIF在BYPASSIPI数据的过程中,在每帧图像最后会多加一个hsync,否则MIPI Device这里会报underflow的错误(参考Device Controller data boot Figure 2-24, Device IPI在最后一个data_en信号之后,还需要有一个Hsync, 去取最后一行的数据,否则会提前生成Frame End packet)。同时,需要在IPI_LINES这里要配置为height + 1 (多了一个SIF在帧尾加的hsync),否则会报error lines的错误。

另外,如果在MIPIHost中开启了Advance feature中的legacy mode, Host 会在生成Vsync的同时多生成一个Hsync, 此时MIPI DeviceIPI_LINES这里要配置为height + 2(1个Host在帧头加的Hsync, 1个SIF在帧尾加的Hsync)

data book参考:

DeviceController data book page 41, 2.3 Image Pixel Interface

DeviceController data book page 122, 5.1 memmap/CSI2 Registers

HostController data book page 57, 2.6.6 Vertical Timing

  1. VPG配置

关键函数:x2_mipi_dev.c:mipi_dev_initialize_vgp

使用参数:format,pix_len, width, height, linelenth, framelenth

配置说明:

1. 在用户层会用format, pix_len转为CSI2的data type,配置到PKT_CFG寄存器

2. 配置width到PKT_SIZE, height到ACT_LINES寄存器

3. VPG模式下需要自己配置HSA/HBP/HLINE/VSA/VBP/VFP,目前HSA/HBP/VSA/VBP是固定的。

4. 计算HLINE, 根据data type和linelenth计算一行的时间(in lane byteclk)

5. 计算VFP, 根据framelenth计算VFP

6. 目前VPG模式配置为Vertical Color Bar, 可以根据需求调整

data book参考:

DeviceController data book page 51, 2.4 Video Pattern Generator

DeviceController data book page 122, 5.1 memmap/CSI2 Registers

  1. 调试建议

本章节主要介绍在MIPI调试中容易出错的关键点。主要介绍下Host/Camera,Device/AP Rx的流程关系,以及参数配置错误可能带来的问题

  1. 配置流程

  1. RX配置流程

参考HostController User Guide 3.3 Programming Flow

MIPI Host的配置流程大体分为3个步骤

1. 初始化: Start up -> Initialize -> Configure IPI

此时Host会Check 线上Stop状态

此时Camera应该在LP11, 即Camera处于Stop状态/Stream Off状态

2. 开始工作: Start HS Reception -> Detect Errors

此时Host会Check 线上HS状态,并注册系统中断,如果收到中断要及时查看对应的中断状态寄存器

此时Camera应该在HS mode,即Camera开始送数/Stream On状态

3. 结束: Stop HS Reception -> Reset Controller/PHY

此时Camera应该在LP11,即Camera处于Stop状态/Stream Off状态,掉电也可

  1. TX配置流程

参考DeviceController User Guide 3.2 Programming Flow

MIPI Device的配置流程大体分为3个步骤

1. 初始化: Initialize PHY -> Initialize Controller -> Wake Up

此时Device会检测PLL Lock状态并确认是否线上进入LP11, 即处于Stop状态, 等待IPI数据输入

此时AP侧RX应该已经初始化完毕,并处于等待数据输入的状态

2. 开始工作:

IPI数据到Device时,Device会自动进入HS状态并开始向外输出数据

3. 结束: Reset Controller/PHY

  1. 错误流程

  1. RX流程错误

1. Camera在MIPI Host初始化完毕前就开始送数

结果:MIPIHost在初始化的过程中或者刚初始化完内部信号不稳定时,收到Camera的数据,导致PHY或IPI出现不可恢复的错误。

建议:按照3.1.1的顺序对Camera/Host进行配置,其中Host初始化时建议不要绕过Stop和HS的状态检查,避免出现一些不可预知的问题

2. 在MIPI Host开始正常工作时,不断的重启Camera

结果:Camera再重启/上下电时,不能保证Camera本身TX部分数据的完整性和准确性,可能会对MIPI Host的工作状态造成影响

建议:Camera启/停时,最好按照3.1.1的顺序对MIPIHost也进行同样的启/停操作

  1. TX流程错误

1. 在AP侧RX还没有准备好时,Camera->Host->SIF->Device已经开始输出

结果:会造成AP侧RX出现和我们MIPI Host同样类似的问题,如3.2.1

同时,有测量过,如果AP侧RX没有准备好,或者AP侧悬空时,MIPI Device的输出信号会异常,如Clock Lane无信号,Data Lane数据异常的情况

  1. 参数错误

  1. Clock配置错误

涉及参数:mipiclk,lane, settle

1. lane speed= mipiclk/lane,这个参数会用于配置Host/Device的PHY基本配置,涉及Host/Device PHY的HS clock range, Device PHY的PLL计算,同时lane数也会配置到Host/Device PHY的相关寄存器。这2个参数必须要正确!!!

2. settle, 正常这个参数PHY可以自动适配,但是有些极端情况下PHY适配不了这个参数,因此在驱动中开启了settle的配置,正常需要Camera厂商提供这个参数,单位为PPI clock,如果厂商未提供,可以试错,这个值的范围很小且鲁棒性尚可

错误情况:如果以上参数配置错误,会导致PHY在接收/解析CSI2数据时直接出错,报各种PHY/PKT/FRAME Fatal的异常中断

  1. Frame rate配置错误

涉及参数:width, height, linelenth, framelenth, fps

1. 对于MIPI Host,这些参数会参与IPI Clock以及HSD的计算,如果配置错误,会导致IPI报overflow/underflow,最终影响数据向SIF传输的正确性

2. 对于MIPI Device, width/height是直接配置到IPI寄存器的,直接影响最终输出实际尺寸。linelenth和framelenth会在VPG模式时用到,模拟正常Camera输出的blanking

  1. 错误分析

本章节主要针对调试中常见的错误LOG进行简要的说明和分析,并提供一些之前总结的解决思路

  1. MIPI Host错误

参考HostController User Guide page 115 Error Handling

Host data bookpage 76, 2.9 Error Detection

Host data bookpage 150, Table 5-5 MemMap/CSI2 Registers

MIPI CSI-2 Specificaation

  1. INT_ST_PHY_FATAL

错误描述:在datalane上SOT检测出错且无法修复,报出ErrSotSyncHS, SOT为LP-HS的必有数据包,出错会影响数据接收

错误分析:

1. 主要检查PHY Clock以及settle的配置,参考3.3.1

2. 如参数配置确认无误,根据3.1.1确认Camera/Host初始化时序

3. 如果前2条确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量

  1. INT_ST_PKT_FATAL

错误描述:数据传输中和Packet相关的错误

1. 数据包中ECC错误,报出ErrEccDouble

2. 数据包中CRC校验错误,报出ErrCrc

错误分析:

1. 主要检查PHY Clock以及settle的配置,参考3.3.1

2. 如参数配置确认无误,根据3.1.1确认Camera/Host初始化时序

3. 如果前2条确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量

  1. INT_ST_FRAME_FATAL

错误描述:数据传输中Frame相关的错误,包括:

1. 整帧数据中有CRC错误,报出ErrFrameData:

2. SOF/EOF没有配对,比如连续收到两次同一个VC的SOF没有收到EOF,报出ErrFrameSync

3. FrameNumber顺序错误,比如前一帧SOF的framenumber是1,下一次收到的frame number变成了4

错误分析:

1. 主要检查PHY Clock以及settle的配置,参考3.3.1

2. 如参数配置确认无误,根据3.1.1确认Camera/Host初始化时序

3. 如果前2条确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量

  1. INT_ST_PHY

错误描述:datalane上的Warning

1. SOT检测出错,但是PHY可以自动修复(此时数据也是不可信的),报出ErrSotHs

2. Escape进入错误,Escape cmd只有在ULPM下有用,报出ErrEsc

错误分析:

1. 主要确认Camera/Host初始化时序

2. 如果时序确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量

  1. INT_ST_PKT

错误描述:数据传输中和Packet相关的Warning

1. Data type不识别或者不支持,报出ErrID

2. 出现一个ECC错误,已经自动修正了,报出ErrEccCorrected

错误分析:

1. 确认pixlen, format配置是否正确,比如Camera送RAW8,Host却配为RAW12

2. 确认Camera/Host初始化时序

3. 如果时序确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量

  1. INT_ST_IPI

错误描述:IPI相关的Warning

1. FIFOunderflow: IPI在取到足够的pixel数量前FIFO已经空了

错误分析:IPIClock过快,或者HSD过小,导致PPI的数据还没有送完,IPI已经(提前)把FIFO的数据取完了。结合2.1.2和2.1.3,检查width,height, linelenth, framelenth, fps的配置是否正确

2. FIFO overflow:FIFO溢出

错误分析:IPIClock过慢,或者IPI取数慢了,比如HSD过大或者在收到Hsync后过了太久(超过根据blanking计算出的HSD时间太多),导致FIFO已经被塞满后IPI还没开始取数或者IPI取数速度低于PPI填充FIFO的速度导致FIFO被塞满。结合2.1.2和2.1.3,检查width, height, linelenth, framelenth, fps的配置是否正确。

另外可以通过2.1.5介绍的ADV_FEATURE寄存器的配置,调整Hsync产生的时机

3. Frame SyncError: 新的Vsync来的时候,上一帧还没有结束

错误分析: 没有遇到过这种情况,只能从字面上推测,可能某些情况下会和ErrFrameSync的情况一起出现

4. FIFO nempty:在新的Vsync来的时候,FIFO里还有数据

错误分析:通常和FIFO Overflow or Underflow一起出现,尤其是Overflow的情况,overflow时FIFO始终处于full的状态,所以一定也会报出nempty。underflow时,因为IPI在FIFO数据填充完前已经结束取数了,所以在新的Vsync来时FIFO里还有上一帧最后被填进去的一些数据。

在X1时遇到过FIFO nempty独立出现的情况,目前X2还没有遇到过。这种情况的发生应该主要出现在3.2.1 流程上的一些问题,在Host正常工作前,FIFO里已经被填了一些数据。开启MEM_FLUSH寄存器的auto flush功能,可能会缓解

  1. MIPI Device错误

参考DeviceController data book page 122, 5.1 memmap/CSI2 Registers

如果再调试过程中已经出现MIPI Host报错,那么MIPI Device的报错不用继续分析,Host报错会导致IPI上的数据已经异常,继续分析MIPI Device报错意义不大

  1. INT_ST_PHY

错误描述:TXD-PHY上的错误

1. TX想要进入LP1, 即想要将line拉高时,检测到了RX端的控制争夺(拉不起来),报errcontentionlp1

2. TX想要进入LP0, 即想要将line拉低时,检测到了RX端的控制争夺(拉不下去),报errcontentionlp0

3. TX想要进入HS,检测到了RX端的控制争夺,导致HS timeout

错误分析:

目前没有遇到过这种错误,但是从字面看,应该是AP侧RX处于错误的状态且对MIPI Lane有强制动作(如拉高,拉低等),导致TX这里进行传输时出现无法控制Lane上行为。如3.2.2中描述,建议遵循3.1.2的配置流程

  1. INT_ST_IPI

错误描述:IPI相关的Warning

1. errpixel:IPI收到的pixel数与配置到寄存器的pixel数(行长)不符

错误分析:主要检查配置参数width是否错误,width大了和小了都会报这个错误。如果width偏差过大,还会报overflow的错误

2. fifo_overflow:FIFO溢出

错误分析:主要检查配置参数width是否错误,width如果配置比实际大很多,会报errpixel的同时报出overflow。另外有遇到过在低频情况时(400Mbps/Lane), 如果如2.2.2 PLL配置中m值过小,也会报出这个错误,可以理解为取数据速度比送数速度慢。目前驱动中PLL的计算已经能适配多个项目,如果后续项目遇到Device Clock的问题修改了计算方式,导致报出overflow的问题可以参考这里

3. errline:IPI收到的line数与配置到寄存器的line数不符

错误分析:主要检查配置参数height是否错误,height大了和小了都会报这个错误。如果height偏小,还会报underflow的错误

4.fifo_underflow: IPI在取数时FIFO为空

错误分析:主要检查配置参数height是否错误,height偏小,在报出errline的同时会报underflow。另外,如果遇到只报underflow的情况,参考2.2.3中描述,确认SIF是否在帧尾加了Hsync。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568平台开发系列讲解(显示篇)framebuffer屏幕显示

🚀返回专栏总目录 文章目录 一、FrameBuffer介绍二、FrameBuffer应用程序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍如何通过framebuffer进行显示。 一、FrameBuffer介绍 FrameBuffer中文译名为帧缓冲驱动,它是出现在2.2.xx内核中的一种驱动程序接口…

飞沃科技上市,张友君还缺颗“螺丝”

文丨熔财经作者|余一去年7月&#xff0c;湖南飞沃新能源科技股份有限公司(下称&#xff1a;飞沃科技)首发过会&#xff0c;至今7个多过去了&#xff0c;若是按照2022年以来整体IPO排队时长来计算&#xff0c;飞沃科技已经来到了临近上市的关键节点。资料显示&#xff0c;近年来…

测开:前端基础-css页面布局-定位

一 、传统网页布局的三种方式 网页布局的本质–用CSS来摆放盒子&#xff0c;把盒子摆放到相应的位置&#xff0c;css提供了三种传统布局方式&#xff0c;分别是标准流&#xff0c;浮动和定位三种。 二、 定位 2.1 啥是定位 我的理解&#xff0c;就是要把这个元素&#xff0c…

一文掌握组织项目等级划分维度,标准和实例

当你遇到多项目怎么管&#xff1f;遇到项目之间的冲突怎么解决&#xff1f;很多公司没有项目优先级的划分&#xff0c;会对企业造成很多严重的问题。首先&#xff0c;会造成不合理的资源分配&#xff1a;缺少项目优先级的情况下&#xff0c;很难确定哪些项目是最重要的&#xf…

DAGA项目 代码阅读笔记1——LSTM-LM部分代码

DAGA 代码阅读笔记1——LSTM-LM部分代码 文章目录DAGA 代码阅读笔记1——LSTM-LM部分代码概述main函数逻辑分析设置训练参数fields初始化训练数据读入模型建立优化器概述 ​ 学习人工智能的必经之路——读代码。目前阅读的代码来自于github数据增强项目DAGA&#xff0c;这个项…

socket 编程实战(编写客户端程序 )

编写客户端程序 接着上一篇&#xff1a;实战服务端程序 接下来我们再编写一个简单地客户端应用程序&#xff0c;客户端的功能是连接上小节所实现的服务器&#xff0c;连接成功之后向服务器发送数据&#xff0c;发送的数据由用户输入。示例代码如下所示&#xff1a; #include…

大数据开发治理平台 DataWorks

序言学习下阿里DataWorks的设计理念以及要做的事情cuiyaonan2000163.com参考文档:https://www.aliyun.com/product/bigdata/idehttps://help.aliyun.com/document_detail/73015.htmlhttps://help.aliyun.com/document_detail/324149.html ----数据治理LaunchDataWorks基于阿里云…

ECCV 2022|面向精确的主动相机定位算法

标题&#xff1a;ECCV 2022,山东大学、北大、腾讯AILab、斯坦福和三维家联合提出&#xff0c;面向精确的主动相机定位算法项目地址&#xff1a;https://github.com/qhFang/AccurateACL.文章&#xff1a;Towards Accurate Active Camera Localization&#xff08;ECCV 2022&…

oneblog_justauth_三方登录配置【Gitee】

文章目录oneblog添加第三方平台gitee中创建三方应用完善信息oneblog添加第三方平台 1.oneblog管理端&#xff0c;点击左侧菜单 网站管理——>社会化登录配置管理 ,添加一个社会化登录 2.编辑信息如下&#xff0c;选择gitee平台后复制redirectUri,然后去gitee获取clientId和…

vulnhub five86-2

总结&#xff1a;sudo -l&#xff0c;抓流量包&#xff0c;搜索引擎。。 目录 下载地址 漏洞分析 信息收集 网站渗透 ​编辑 反弹shell提权 下载地址 Five86-2.zip (Size: 1.7 GB)Download (Mirror): https://download.vulnhub.com/five86/Five86-2.zip使用&#xff1a;下…

电子台账:模板制作之一——列过滤(水平过滤)

1 简介列过滤即水平过滤。一般情况下&#xff0c;企业数据源文件中有很多数据列&#xff0c;其中大部分数据列中的数据对电子台账来说是没有用的。列过滤就是确定企业数据文件的哪几列有用&#xff0c;以及有用的列分别对应到台账&#xff08;模板&#xff09;的哪一列。列过滤…

FreeSql使用

目的: 1.方库分表 2.主从分离 3.分布式事务 过程&#xff1a; 官网&#xff1a;指南 | FreeSql 官方文档 1.Startup.cs 添加配置&#xff08;本地数据库MySql&#xff09; ConfigureServices&#xff1a; Func<IServiceProvider, IFreeSql> fsql r >{IFreeSql …

吉利银河L7、长城哈弗B07、比亚迪宋Plus DM-i,自主品牌决战混动

2月23日&#xff0c;吉利推出全新的中高端新能源产品序列——吉利银河。当日&#xff0c;吉利推出了首款智能电混SUV「银河L7」&#xff0c;新车将在二季度交付。本月10日&#xff0c;长城汽车也计划举办智能新能源干货大会&#xff0c;其「颠覆技术」等宣传直面新一代的新能源…

SUDO(CVE-2021-3156复现)提权rsync未授权访问提权

一、SUDO(CVE-2021-3156复现 判断漏洞存在&#xff1a; 1.版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 2.报错存在次漏洞 sudoedit -s / 不是报错信息&#xff1a; 复现&#xff1a; 环境&#xff1a;docker的centos7 需要新建一个用户 docker pull chenaot…

k8s学习之路 | Day20 k8s 工作负载 Deployment(下)

文章目录3. HPA 动态扩缩容3.1 HPA3.2 安装 metrics-server3.3 验证指标收集3.4 扩缩容的实现3.5 增加负载3.6 降低负载3.7 更多的度量指标4. 金丝雀部署4.1 蓝绿部署4.2 金丝雀部署4.3 金丝雀部署的实现5. Deployment 状态与排查5.1 进行中的 Deployment5.2 完成的 Deployment…

wordpress更新文章后总是向文章内连接发送GET请求

通过观察wordpress请求发现&#xff0c;wordpress在更新文章后会向文章发送GET请求。在发送请求之前会执行一个调用定时的一个请求POST /wp-cron.php?doing_wp_cron1678081385.6844499111175537109375 HTTP/1.1执行这个定时后&#xff0c;这篇文章的所有链接都会发送HEAD和GET…

源码阅读笔记 InputFormat、FileInputFormat、CombineTextInputFormat

1. InputFormat InputFormat是MapReduce框架提供的用来处理job输入的基类 它主要定义了三个功能&#xff1a; 1.验证job输入是否合法 2.对输入文件进行逻辑切片(InputSplit)&#xff0c;然后将每个切片分发给单独的MapTask 3.提供切片读取器(Re…

Java的注解(Annotation)

Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。Java 中的类、构造器、方法、成员变量、参数等都可以被注解进行标注。例如JUnit单元测试中的Test方法&#xff0c;可以使得方法直接运行。JUnit单元测试Test单元测试是针…

2023年湖北助理工程师在哪里申报?助理工程师的五大作用你知道吗

2023年湖北助理工程师在哪里申报&#xff1f;助理工程师的五大作用你知道吗 助理工程师申报条件&#xff1a; 大学本科毕业&#xff1a;毕业满一年&#xff0c;工科类专业&#xff0c;6个月以上社保证明 大学专科毕业&#xff1a;毕业满三年&#xff0c;工科类专业&#xff0…

贝塞尔曲线与B样条曲线

文章目录0.参考1.问题起源与插值法的曲线拟合1.1.问题起源1.2.拉格朗日插值1.3.“基”的概念1.4.插值存在的Runge现象2.贝塞尔曲线2.1.控制点的思想2.2.由控制点生成贝塞尔曲线2.3.多个控制点时的贝塞尔曲线公式2.4.贝塞尔曲线的递推公式2.5.贝塞尔曲线的性质3.B样条曲线3.1.B样…