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

名词缩写
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
参数介绍
通用参数
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枚举配置
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
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.3中介绍的配置参数在MIPI配置中的使用,以及针对MIPI驱动配置的关键点进行说明
MIPI Host配置
MIPI Host与参数相关的关键配置主要分D-PHY clock的配置,IPI clock的配置,IPI及HSD的配置
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
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

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
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
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
MIPI Device配置
MIPI Device与参数相关的关键配置主要分D-PHY clock的配置,PLL的配置,IPI的配置, VPG模式的配置。特别说明:MIPI Device的IPI Clock来源于MIPI Host, 不用单独配置
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
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
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
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
调试建议
本章节主要介绍在MIPI调试中容易出错的关键点。主要介绍下Host/Camera,Device/AP Rx的流程关系,以及参数配置错误可能带来的问题
配置流程
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状态,掉电也可

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

错误流程
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也进行同样的启/停操作
TX流程错误
1. 在AP侧RX还没有准备好时,Camera->Host->SIF->Device已经开始输出
结果:会造成AP侧RX出现和我们MIPI Host同样类似的问题,如3.2.1
同时,有测量过,如果AP侧RX没有准备好,或者AP侧悬空时,MIPI Device的输出信号会异常,如Clock Lane无信号,Data Lane数据异常的情况
参数错误
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的异常中断
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
错误分析
本章节主要针对调试中常见的错误LOG进行简要的说明和分析,并提供一些之前总结的解决思路
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
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输出的数据是否正常以及信号质量
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输出的数据是否正常以及信号质量
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输出的数据是否正常以及信号质量
INT_ST_PHY
错误描述:datalane上的Warning
1. SOT检测出错,但是PHY可以自动修复(此时数据也是不可信的),报出ErrSotHs
2. Escape进入错误,Escape cmd只有在ULPM下有用,报出ErrEsc
错误分析:
1. 主要确认Camera/Host初始化时序
2. 如果时序确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量
INT_ST_PKT
错误描述:数据传输中和Packet相关的Warning
1. Data type不识别或者不支持,报出ErrID
2. 出现一个ECC错误,已经自动修正了,报出ErrEccCorrected
错误分析:
1. 确认pixlen, format配置是否正确,比如Camera送RAW8,Host却配为RAW12
2. 确认Camera/Host初始化时序
3. 如果时序确认无误,需要示波器测量Camera输出的数据是否正常以及信号质量
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功能,可能会缓解
MIPI Device错误
参考DeviceController data book page 122, 5.1 memmap/CSI2 Registers
如果再调试过程中已经出现MIPI Host报错,那么MIPI Device的报错不用继续分析,Host报错会导致IPI上的数据已经异常,继续分析MIPI Device报错意义不大
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的配置流程
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。
相关文章:
MIPI协议
MIPI调试指南Rev.0.1 June 18, 2019 © 2018 Horizon Robotics. All rights reserved.Revision HistoryThissection tracks the significant documentation changes that occur fromrelease-to-release. The following table lists the technical content changes foreach …...
第十届CCF大数据与计算智能大赛总决赛暨颁奖典礼在苏州吴江顺利举办
2月24日-25日,中国计算机学会(CCF)主办、苏州市吴江区人民政府支持,苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、CCF大数据专家委员会、CCF自然语言处理专业委员会、CCF高性能计算专业委员会、CCF计算…...
PMP高分上岸人士的备考心得,分享考试中你还不知道的小秘密
上岸其实也不是什么特别难的事情,考试一共就180道选择题,题目只要答对60.57%就可以通过考试,高分通过没在怕的,加油备考呀朋友们! 这里也提一嘴,大家备考的时候比较顾虑的一个问题就是考试究竟要不要报班…...
ubuntu下编译libpq和libpqxx库
ubuntu下编译libpq和libpqxx库,用于链接人大金仓 上篇文章验证了libpqxx可以链接人大金仓数据库,这篇文章尝试自己编译libpq和libpqxx库。 文章目录ubuntu下编译libpq和libpqxx库,用于链接人大金仓libpq下载libpq库看看有没有libpq库编译lib…...
ESP-C2系列模组开发板简介
C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有…...
linux权限管理
权限管理 文件的权限针对三类对象进行定义: owner属主,缩写ugroup属组,缩写gother其他,缩写o 1、文件的一般权限 (1)r,w,x的作用及含义: 权限对文件影响对目录影响r(read…...
提高生活质量,增加学生对校园服务的需求,你知道有哪些?
随着电子商务平台利用移动互联网的趋势提高服务质量,越来越多的传统企业开始关注年轻大学生消费者的校园市场。 提高生活质量,增加学生对校园服务的需求 大学生越来越沉迷于用手机解决生活中的“吃、喝、玩、乐”等服务,如“吃、喝”——可…...
Antlr4:使用grun命令,触发NoClassDefFoundError
1. 意外的发现 在学习使用grun命令时,从未遇到过错误 最近使用grun命令,却遇到了NoClassDefFoundError的错误,使得grun测试工具无法成功启动 错误复现: 使用antlr4命令编译Hello.g4文件,并为指定package(…...
基于rootfs构建Docker镜像
1. 背景 在实际工作中,由于系统本身版本过低,在接受新项目时出现系统版本过低而无法开始工作的问题。 为了解决该问题,使用Docker构建基于ubuntu-18.04的Docker镜像,以解决版本兼容问题。 2. 构建rootfs 2.1. 下载ubuntu-18.0…...
电脑文件软件搬家迁移十大工具
10 大适用于 Windows 的数据迁移软件。 数据迁移至关重要,几乎所有组织都依赖于此。如果您认为数据传输不是一件容易的事,那么数据迁移软件可以帮上忙。 1、奇客电脑迁移 将现有操作系统、软件、文件迁移到 新电脑的最佳方法之一是使用名为奇客电脑迁移…...
【数据库】排名问题
返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…...
【redis学习篇】主从哨兵集群架构详解
一、Redis主从架构 1.1 redis主从架构搭建 1、复制一份redis.conf文件 2、将相关配置修改为如下值: port 6380 pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件 logfile "6380.log" dir /usr/local/redis-5.0.3/data/6380 # 指…...
基于jdk8的HashMap源码解析
hashMap常见面试题总览 为什么重写Equals还要重写HashCode方法?HashMap如何避免内存泄漏问题?HashMap1.7底层是如何实现的?HashMapKey为null存放在什么位置?HashMap如何解决Hash冲突问题?HashMap底层采用单链表还是双…...
深度学习J1周-ResNet50算法实战与解析_鸟类识别(CNN)
🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 本周任务: ●1.请根据本文 TensorFlow 代码(训练营内部阅读),编写…...
SpringBoot中一行代码解决字符串向枚举类型转换的问题
1. 场景 在WEB开发,客户端和服务端传输的数据中经常包含一些这样的字段:字段的值只包括几个固定的字符串。 这样的字段意味着我们需要在数据传输对象(Data Transfer Object, DTO)中对该字段进行校验以避免客户端传输的非法数据持…...
Praat之基频分析
Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation(易出现pitch-halving\pitch-double)窄带谱图 Narrowband spectrogram(第一谐波就是基频)倒谱分析 Cepstral analysis测量声门波 glottal pluse(通过波形&a…...
乡村企业门户网站
技术:Java、JSP等摘要:随着时代的发展,电脑与Internet已经进入我们的生活。信息时代的来临,知识经济的扩张,网站已越来越靠近我们的生活。据CNNIC报告显示,中国上网用户有6800万。通过Internet来经营运作一…...
Deploy Workshop|DIY部署环境,让OceanBase跑起来
2023 年 3 月 25 日,我们将在北京开启首次 OceanBase 开发者大会,与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势,分享全新的产品 Roadmap,交流场景探索和最佳实践,此外,OceanBase 开源技术全…...
【CPP】定义一个类
一:当实现一个类的时候,编译器都做了什么 前言:当我们实现一个类的时候,编译器为我们做了什么;在对类进行操作的时候,有哪些特殊的成员函数可以帮助我们更好的操纵类; class A {A();//默认构造…...
谷歌广告投放步骤流程是什么?一文带你全方位了解实操细节
谷歌,大家都不陌生吧,一个人们很常用的搜索引擎。而谷歌还可以打广告,即谷歌广告,那这跟跨境电商有什么关心呢?东哥告诉大家,关系大了去了,毕竟如果用户搜索与我们相关的关键词,就有…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
