chromatix调试

chromatix调试
chromatix调试

目录

1.为chromatix的调试拍摄raw格式的照片

2.Chromatix快速调试指南

3.后期调试修正

4.参考资料

为chromatix的调试拍摄raw格式的照片

安装

以下是必要的仪器设备:

1.灯箱

2.色卡

3.18%的灰卡或者95%的白卡

4.Neutral color diffuser filter

5.ND filter

6.照度计

7.标准sensor模组

注:为了获得最客观的结果并且减少模组差异性的问题,推荐准备一个标准sensor模组

拍摄BLACK Raw格式照片

目的:调试black-level参数

步骤:

1.在三种光源下打开AEC

---low light(50 LUX)

---normal light (250 LUX)

---bright light (10000 LUX)

2.AEC稳定后,通过EZ-tune关闭AEC

(详情见—“如何通过EZ-tune打开/关闭AEC”)

3.在没有其他光源或者sensor完全被滤镜覆盖的情况下拍摄RAW格式的照片

注:关灯的效果要比盖个滤镜好

4.在不同的光源下重复前3步

Info:TL84可提供1000 LUX,0.6ND filter(ND4)提供250 LUX,1.2ND filter提供50 LUX Optical density = -log10 (output/input)

Example – log10 (250 LUX/000 LUX) = 0.602

要获得1000 LUX照度的光线,需室外光

如何通过EZ-tune打开/关闭AEC

通过EZ-tune关闭AEC

1.双击Dianostics -> AEC -> Enable -> 1

2.在New Value中输入0

3.点击OK

4.点击Apply

通过EZ-tune开启AEC

1.双击Dianostics -> AEC -> Enable -> 0

2.在New Value中输入1

3.点击OK

4.点击Apply

拍摄Lens Shading Raw格式照片

目的:生成以下光源相应的rolloff表格:Daylight(D50)

Fluorescent(TL84)

Incandesecent(A)

Low light(TL84+20 LUX)

注:opal diffuser这一面必须靠在camera的lens上

拍摄Lens Shading Raw格式照片(续)

D50,TL84,A的拍摄步骤:

1.确认camera菜单中antiflicker是生效的

2.将camera对准光源

3.在各个光源环境下拍摄Raw格式照片

注:如果太亮了,会出现banding

建议:

1.离光源远一点

2.或者在diffuser上加个ND filter

3.或者用DNP

Low light的拍摄步骤:

1.打开TL84光源

2.确认camera菜单中antiflicker是生效的

3.将camera对准光源

4.检查当前亮度,如果不是20 LUX的话就要使用ND filter

5.拍摄Raw格式照片

注:ND filter必须在diffuser上面

Info:TL84可提供1000 LUX,同时使用括号中的三种filter可提供20 LUX(0.4,0.3和1.0ND filter)

拍摄MCC和Flat-Field(FF)照片目的:优化CC,gamma和color conversion matrices 步骤:

1.拍摄MCC(标准色卡),至少保证色卡占据了80%

的预览画面

2.拍三张Raw格式的MCC(标准色卡)照片

---D65,TL84,A light

3.拍三张Raw格式的FF(灰板)照片

---D65,TL84,A light

注:FF照片和对应光源的MCC照片的可视角要相同注:FF照片即拍摄灯箱内壁。

拍摄Raw格式的AWB照片

目的:调试AWB

步骤:

1.对着18%的灰板或者95%的白板拍照,灰板或者

白板必须完全充满整个屏幕

2.在以下不同光源下拍摄Raw格式照片

---D75,D65和D50

---TL84和Cool White

---A和Horizon

---Custom fluorescent(如有必要的话)

注:拍摄的时候灰板或者白板要充满整个屏幕

拍摄正午时的Raw格式AWB照片目的:

1.调试室外AWB

2.用于purple sky prevention feature of

Qualcomm’s Qcamera AWB algorithm

步骤:

当正午时分,在室外光下拍摄18%灰卡或者95%白卡的Raw格式照片

拍摄ABF Raw格式照片

目的:调试adaptive bayer filter(ABF)

步骤:

1.拍摄前确认MCC卡占据了至少80%的预览画面

2.在以下3种光源下拍摄Raw格式的MCC照片

Info:“拍摄MCC和FF的Raw格式照片”这一步拍得的TL84 Raw格式照片当作TL84 1000 LUX Raw格式照片使用

Info:TL84可提供1000 LUX,0.3 ND filter(ND2)可提供500 LUX,0.4,0.3和1.0 ND filter 同时使用的话可提供20 LUX,

注:我们公司目前ND filter只有两个ND8跟一个ND2,20lux通常在tl84用两个ND8组合起来,这样最接近20Lux

快速调试指南

Scratch模式下的Chromatix调试

1.点击Tune from scratch,开始Chromatix色彩调试

2.选择基带芯片型号,然后点击OK

3.7x-8x25都是选择MSM7x27A

8x30 --- 8960 0208

8x26 --- 8x26 0301

载入驱动信息

Info:如果驱动信息头文件不可用,可以跳过第3、4步

4.点击Load Driver Information Header

5.选择一个可用的驱动信息文件,点击OK

Info:驱动信息文件包含了驱动相关的信息,比如,图像尺寸,最大增益等。

配置sensor

6.点击Setup Sensor

7.输入sensor输出的宽度、高度、单位pixel的bit以及bayer pattern的起始顺序等信息,

然后点击OK

注:0339通常选择640*480尺寸(早期高通版本选择656*486),8位Packed,RGGB格式2235通常选择1600*1200尺寸,10位Packed,GRBG格式

需要强调的是,尺寸跟位数如果选错了会影响后面流程,raw图片会直接打不开报错,这个很容易发现;但是如果颜色格式选错了一切流程都还能能正常走完,但是这时候awb 跟lsc都是错的,基本是怎么调都过不了指标的。为了避免这一步选错造成重大影响,setup sensor这一步结束后可以选择主菜单的open image选项,打开一个MCC的raw照片,如果能正常打开且色卡颜色正确,那便能确保这一步操作无误。

选择Header版本

8.点击Choose Header Version,然后选择一个合适的Chromatix头文件版本,之后点击OK

注:7X选0x0207,8X选0x0208,类推;最终生成的.h文件一般在十几行都会有这个显示,到时可以检查这个有没选错。

注:The version for the Chromatix header file can be found by referring to the sample Chromatix header file in the given software build

Info:头文件的版本信息在该头文件的顶部,例如:

/* Chromatix common DMSS header file version number */

Ox0206,

计算Black Level Subtraction

9.点击Calculate Black level Subtraction value

10.点击Load Image,然后按顺序选择一张Raw格式照片(Bright light,Normal light,Low light)

11.点击Average之后,black level的值将会显示在右边的Value文本框中,点击OK

Note:如果计算出来的几个black level的值之间差异很大的话,可能需要像sensor供应商确认一下。

Info:All value are Q12.Thus,253 in Q12 means 15.8125(253/16) in 8 bits

建立Expousure Table

12.点击Setup Expousure Table

13.选择Linear AFR 然后在每一个框里输入合适的值,点击OK

目前不管是0339还是2235通常都选择浮动帧率(Linear AFR),主要有Fixed FPS Max Line/Gain、Linear AFR Max Line/Gain四个值需要填。

名词解释:Fixed FPS Max Line/Gain:固定帧率时的最大曝光时间/增益

Linear AFR Max Line/Gain:浮动帧率时的最大曝光时间/增益

0339:

Fixed FPS Max Line —500

Fixed FPS Max gain —4 (如果暗处信噪比指标比较难过的时候可以适当降到3倍)Linear AFR Max Line —3000(由于0339暗处效果偏差,一般曝光放到最大3000,此时5FPS)Linear AFR Max Gain —4 (如果暗处信噪比指标比较难过的时候可以适当降到3倍)

2235:

Fixed FPS Max Line —1261

Fixed FPS Max gain —6 (0339最大gain为4,2235最大gain为6,可适当降低)

Linear AFR Max Line —3783

Linear AFR Max Gain —6 (0339最大gain为4,2235最大gain为6,可适当降低)

Note:由于不同的sensor或者手机对帧率和增益的要求不同,高通在这里通常只提供一个适当的值。

计算A光、TL84光和D65光下的Mesh Lens-Rolloff

14.点击Calculate Mesh Lens-Rolloff for A

15.选择A光下拍的Rolloff的Raw格式照片,点击OK

计算A光、TL84光和D65光下的Mesh Lens-Rolloff(续)

16.确认“Tintless Correction”这个选项是被勾选了的

17.Degree of Correction(LSC修正程度)建议设置为80%

18.点击Calculate

19.重复13到17步来完成TL84和D65下的调试

名词解释:Degree of Correction:LSC的修正程度,根据不同的图像质量要求,比如说噪点和shading,这个值是可以调大或者调小的

调大的话可以提供更好的LSC效果但是同时噪点也会越大

预览LSC默认都是走TL84,拍照时候才根据光源走对应分支。

注:Degree of Correction(LSC修正程度)具体值放多少需要根据不同指标来定,高通指标一般我们放80%,天宇的指标LSC要过85%,所以这个值一般放>85%

注:如果最终发现LSC某光源指标过不了,除了重新拍该光源raw照片,还可以回过头重新单独导入该光源的LSC的raw照片,除了调整体的Degree of Correction还可以把RGB分量的的修正程度相应单独修改,这时候就无须RGB分量的修正长度都保持一样。

Linux内核崩溃原因分析及错误跟踪技术

Linux内核崩溃原因分析及错误跟踪技术 随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,要求系统达到安全完整性等级3级以上[1],故障率(每小时出现危险故障的可能性)为10-7以下,相当于系统的平均故障间隔时间(MTBF)至少要达到1141年以上,因此提高系统可靠性已成为一项艰巨的任务。对某公司在工业领域14 878个控制器系统的应用调查表明,从2004年初到2007年9月底,随着硬软件的不断改进,根据错误报告统计的故障率已降低到2004年的五分之一以下,但查找错误的时间却增加到原来的3倍以上。 这种解决问题所需时间呈上升的趋势固然有软件问题,但缺乏必要的手段以辅助解决问题才是主要的原因。通过对故障的统计跟踪发现,难以解决的软件错误和从发现到解决耗时较长的软件错误都集中在操作系统的核心部分,这其中又有很大比例集中在驱动程序部分[2]。因此,错误跟踪技术被看成是提高系统安全完整性等级的一个重要措施[1],大多数现代操作系统均为发展提供了操作系统内核“崩溃转储”机制,即在软件系统宕机时,将内存内容保存到磁盘[3],或者通过网络发送到故障服务器[3],或者直接启动内核调试器[4]等,以供事后分析改进。 基于Linux操作系统内核的崩溃转储机制近年来有以下几种: (1) LKCD(Linux Kernel Crash Dump)机制[3]; (2) KDUMP(Linux Kernel Dump)机制[4]; (3) KDB机制[5]; (4) KGDB机制[6]。 综合上述几种机制可以发现,这四种机制之间有以下三个共同点: (1) 适用于为运算资源丰富、存储空间充足的应用场合; (2) 发生系统崩溃后恢复时间无严格要求; (3) 主要针对较通用的硬件平台,如X86平台。 在嵌入式应用场合想要直接使用上列机制中的某一种,却遇到以下三个难点无法解决: (1) 存储空间不足 嵌入式系统一般采用Flash作为存储器,而Flash容量有限,且可能远远小于嵌入式系统中的内存容量。因此将全部内存内容保存到Flash不可行。

SSB变桨系统试验常见故障

1.SSB变桨系统地面出厂试验时,在调整95°限位开关及挡块位置时操作人员不慎将60947-5-1#95°限位开关直动头冲断。 2.G8-064315变桨控制柜,实验时变桨速度过快,执行速度远大于设定速度。初步判 断电机驱动器损坏,造成无法正常使用。 3. 473399-60#旋编编码器做变桨功能试验时,编码器存在角度无变化故障 4、466631-04#旋编编码器做变桨功能试验时,编码器存在角度跳变故障 5. 叶轮功能试验时,由于操作人不慎误将G8-070588变桨控制柜内的1F1防雷模块的火线与零线接反,导致1F1防雷模块烧坏。 6.变桨控制柜实验时系统报电机过温PTC故障,经更换柜内9A1模块后此故障消除。 7、变桨控制柜实验时系统报电机过温PTC故障,经更换柜内9A1模块后此故障消除。 8、G8-070093#变桨控制柜实验时柜内12A1模块指示灯不亮,经更换此故障消除。 9. 旋编编码器做变桨功能试验时,编码器角度始终保持在0°无变化,无法正常使用。 10、旋编编码器旋转时有卡阻现象,并且内部有异响。无法正常使用 11. 95°限位开关压下直动头不能正常复位,造成该95°限位开关无法正常使用。 12. 变桨系统中有2个限位开关触头有卡阻现象,活动不自如,无法正常使用。 13. 叶轮组在调试时发现,闭合电容开关时,9U1不动作,面板上显示9U1故障,无法正常使用 14. LED显示H.N,面板显示:变流器故障,散热片温度故障,无法正常使用。 15. 变桨柜G8-065677打开电容开关后面板显示电容电压9U1为故障状态,9U1不动作,无法正常使用。 16. SSB控制柜配套带来的旋转编码器形状不同, 一套三个旋编信号线接头位置不同,装后性能不受影响。

工程验收单范本样本

工程竣工验收单的格式

?建筑安装工程质量检验评定标准、施工验收规范及相应的国家、地方现行标准。 工程验收单范本 工程质量评估报告是单位工程、分部工程及某些分项工程完工后, 在施工单位自检质量合格的基础上, 监理工程师根据曰常巡查、旁站掌握的情况, 结合对工程初验的意见, 编写对工程质量予以正确评定的报告。它是监理工程师对工程质量客观、真实的评价, 是监理资料的主要内容之一, 也是质量监督站核验质量等级的重要基础资料. 工程质量评估报告内容一般应包括工程概况、质量评估依据、分部分项工程划分及质量评定、质量评估意见四个部分。 1、工程概况应说明工程所在地理位置、建筑面积, 设计、施工、监理单位, 建筑物功能、结构型式、装饰特色等。 2、质量评估依据 (1)设计文件; (2)建筑安装工程质量检验评定标准、施工验收规范及相应的国家、地方现行标准; (3)国家、地方现行有关建筑工程质量管理办法、规定等。 3、分部分项工程划分及质量评定 分部工程质量评估报告应叙述对分项工程进行划分及施工单位自评质量等级情况, 要着重反映监理工程师曰常对分项工程质量等级的核查情况。地基与基础分部工程还应重点说明桩基的施工质量状况, 主体工程分部应增加对建筑物沉降观测及对混凝土强度的评定情况, 砖混结构应说明对砂浆强度的评定情

况。编写单位工程质量评估报告时, 要简述各分部工程的质量评定情况, 设备安装、高度、试运转情况。重点叙述对质量保证资料的审查、观感质量评定等, 反映工程的结构安全、重要使用功能、装饰工程的质量特色等, 另外还应说明建筑物有无异常的沉降、裂缝、倾斜等情况。 4、质量评估意见监理单位应对所评估的分部、分项、单位工程有个确切的意见。监理工程师能够根据对分项工程旁站检查及等级抽查情况评估分项、分部工程的质量等级。单位工程竣工后, 监理工程师应根据主体、装饰工程质量评定、质量保证资料的审查、观感质量评定等评估工程的结构安全、重要使用功能及主要质量情况, 并应有确切的质量评估结论性意见。 人防工程竣工验收报告( 范本) 一、工程概况 XXXX位于XX区XXXX路XXXX号, 具体地址边界为: 北临XXXX号( 路) , 南临XXXX号( 路) , 东临XXXX号( 路) , 西临XXXX号( 路) 。建设占地XXX公顷, 建筑面积XXXX平方米, 人防地下室所处地下XX层, 面积XXXX平方米, 平时用途为XXXX, 战时用途为XXXX。 工程建设投资单位是XXXX, 勘察单位是XXXX, 设计单位是XXXX, 施工总承

Lust变桨系统调试相关事项说明_更新

Lust变桨系统调试说明 1、操作说明: 为确保系统调试安全,必须预先进行以下措施: ①现场调试人员必须佩戴好安全帽; ②400V电源的三相线、零线和地线必须可靠连接,避免缺相或漏接; ③上电前确认主控箱和轴控箱的开关处于断开状态; ④所有连接电缆连接正确(电机后面的编码器电缆号是S1、S2和S3;冗 余编码器的电缆号是T1、T2和T3,若反接,会出现飞车故障); ⑤上电前将电机的轴键拆除或利用扎带将其捆扎牢固; ⑥上电前确认电机与底座是否可靠固定; ⑦电池箱箱盖闭合(完成检查); 2、系统紧急顺桨: ①Profibus通信故障(或者不正常); ②Pitch Master故障; ③电机侧编码器故障; ④安全链信号输入无+24V(硬输入点); ⑤未提供+24COM(硬输入点); ⑥Emergency mode位为1; 3、手动模式 手动模式用于机械调零和现场安装调整用,转动速度为2.5度/秒。 手动模式前提条件: ①手动模式信号为1(硬输入点),并观察主控箱的9A1的第8通道的灯是 否点亮; ②Profibus通信正常,或者短接17K7的13、14引脚; ③Normal Operation Mode设置为0; ④Emergency Mode位为0; ⑤转动任一个桨叶时,另外两个桨叶为91度位置(或者通过关闭轴箱的电 源模拟); ⑥轴箱电池开关处于断开状态; ⑦手动旋钮的通道选择的0、1、2和3分别对应空档、轴控箱1、轴控箱2 和轴控箱3;转动方向旋钮控制的是电机的正传和反转; 4、自动模式

自动模式必须满足以下条件: ①先闭合主控箱的400V电源; ②Profibus通信正常; ③将Fault Reset置位1,然后置0; ④闭合轴箱的电池开关和电源开关前确保通信的Emerge Mode(读)为0 和Normal Operation Mode(写)为0;硬接点的Safety Signal(为高电平)、+24V和0V有正常连接,Manual Operation为0。否则会出现飞车现象; ⑤轴控箱上电顺序:先闭合电池开关(5Q1),然后闭合电源开关(6S1)。 正常状态下电机会由于内部的电路的控制不会出现转动; ⑥自动控制是通过通信软件控制,先设置好控制桨叶的目标角度、转速(建 议为3度/秒以下)和加速度(建议0.5~2度/秒2),然后将Normal Operation Mode置1,启动自动模式;若要中途停止,只能通过以下任一方式:将Normal Operation Mode置0、将对应的91度限位开关触发和关闭轴控箱电源(6S1); 5、限位开关 91度限位开关用于控制Pitch Master(主控变频器)的输出控制,当触发了该限位开关后,7K6复位,然后电机会停止,相对而言动作比较缓慢; 96度限位开关用于控制电机和Ptich Master的ENPO信号,当触发了该限位开关后,6K2和6K3复位,然后电机立即停止,相对而言动作比较迅速。 6、Bypass Bypass信号是用于旁通2个限位开关触发了以后继续启动电机转动,有硬信号和软信号之分。 Bypass软信号是对应91度限位开关。当91度触发了以后,利用通信将对应桨叶的Bypass信号置1,然后电机才可以往96度方向转动;而需要往0度方向转动不需要将对应桨叶的Bypass信号置1(实际上该Bypass信号用途不大); Bypass硬信号是对应96度限位开关,当96度触发了以后,利用硬结点的Bypass信号置1,然后电机只可以往0度方向转动; 7、温度预处理说明 根据通信中的所有温度值,需要在控制当中进行预处理,其温度的预处理值建议如下(根据Lust技术人员的建议): ①Pitch Master停机温度值为80度;

变桨系统带载测试平台要求

变桨系统带载测试平台试验大纲 1 前言 本部分规定了各种型号的电动变桨驱动系统工作性能的测试要求和测试方法。适用于各种电动 变桨驱动系统出厂性能验收和新产品性能测试。 2 测试内容 电机负载测试内容主要分成三个部分: 1)变桨系统带载功能性测试 2)变桨系统带载故障模拟测试 3)变桨系统带载连续运行测试 测试的主要部件为:变桨电机、刹车系统、伺服驱动器、蓄电池、编码器。 3 测试依据 2MW 风机根据《变桨驱动系统采购规范》SB-030.02.05-A 3.6MW 风机根据《变桨驱动系统采购规范》V-69.2-BV.MR.00.00-A-D GB/T 1311-2008《直流电机试验方法》 GB/T 1029-2005《三相同步电机试验方法》 4 变桨系统带载功能测试 4.1 变桨电机额定负载测试 需测试电机在额定负载下的变桨位置、电机转速、转矩响应特性。位置给定范围为(0°~30°), 测试变桨速度为2°/S。 测试需要得到如下响应曲线图:电机运动位置给定曲线、电机位置响应曲线、电机速度响应曲 线、电机转矩响应曲线、电机电流变化曲线、电机温升曲线。 Y520000064-2 变桨系统带载测试平台试验大纲共3 页第 2 页 FDJL-JS-027 4.2 变桨电机变化负载测试 需测试电机在变化负载下的变桨位置、电机转速、转矩响应特性。位置给定范围为(0°~30°), 变化负载范围为额定负载的±50%,测试变桨速度为2°/S。 测试需要得到如下响应曲线图:电机运动位置给定曲线、电机位置响应曲线、电机速度响应曲 线、电机转矩响应曲线、电机电流变化曲线、电机温升曲线。 4.3 变桨电机最大负载测试 需测试电机在最大负载下(3s 内)的变桨位置、电机转速、转矩响应特性。位置给定范围为(0°~ 30°),测试变桨速度为2°/S。 测试需要得到如下响应曲线图:电机运动位置给定曲线、电机位置响应曲线、电机速度响应曲

Linux内核移植开发手册

江苏中科龙梦科技有限公司 Linux内核移植开发手册 修 订 记 录 项 次 修订日期 版 本修订內容修订者审 核 1 2009‐02‐04 0.1 初版发行陶宏亮, 胡洪兵 2 2009‐11‐20 0.2 删除一些 多余文字 陶宏亮, 胡洪兵

DISCLAIMER THIS DOCUMENTATION IS PROVIDED FOR USE WITH LEMOTE PRODUCTS. NO LICENSE TO LEMOTE PROPERTY RIGHTS IS GRANTED. LEMOTE ASSUMES NO LIABILITY, PROVIDES NO WARRANTY EITHER EXPRESSED OR IMPLIED RELATING TO THE USAGE, OR INTELLECTUAL PROPERTY RIGHT INFRINGEMENT EXCEPT AS PROVIDED FOR BY LEMOTE TERMS AND CONDITIONS OF SALE. LEMOTE PRODUCTS ARE NOT DESIGNED FOR AND SHOULD NOT BE USED IN ANY MEDICAL OR LIFE SUSTAINING OR SUPPORTING EQUIPMENT. ALL INFORMATION IN THIS DOCUMENT SHOULD BE TREATED AS PRELIMINARY. LEMOTE MAY MAKE CHANGES TO THIS DOCUMENT WITHOUT NOTICE. ANYONE RELYING ON THIS DOCUMENTATION SHOULD CONTACT LEMOTE FOR THE CURRENT DOCUMENTATION AND ERRATA. JIANGSU LEMOTE TECHNOLOGY CORPORATION LIMITED MENGLAN INDUSTRIAL PARK,YUSHAN,CHANGSHU CITY,JIANGSU PROVINCE,CHINA Tel: 0512‐52308661 Fax: 0512‐52308688 Http: //https://www.360docs.net/doc/bc10347888.html,

嵌入式Linux之Kernel(裁减移植)启动调试、打印技术 printascii(补充)、内核调试

嵌入式系统搭建过程中,对于系统平台搭建工程师在完成Bootloader 的调试之后就进入Kernel 裁减移植的阶段,其中最重要的一步是Kernel 启动的调试,在调试Kernel 过程中通常遇到最常见的问题是启动异常: Uncompressing Linux............................................................ ........................... done, booting the kernel.( 挂死在此处) 注意:这里是arch/arm/boot/compressed/head.S的解压过程,调用了decompress_kernel()(同目录下的misc.c)->include/asm-arm/arch-xxx/uncompress.h的putc()实现。这是在uboot中初始化的,用的是物理地址,因为此时内核还没有起来。 而printascii则是调用了汇编。printascii()位于arch/arm/kernel/debug.S,他需要调用虚拟地址,此虚拟地址通过machine_start提供,而相关的宏在include/asm/arch-xxx/debug-macro.S实现,这下明白了。 10-05-14添加:debug.s里面需要判断一下当前是否打开了mmu,然后指定uart的基址。在解压阶段的head.s,mmu是1:1映射,目的是加快速度。到了内核的head.s,就是真正的mmu了,此时就是虚拟地址了。 导致驱动异常(启动挂死)的原因有很多,如基于EVM 板的硬件做了修改(如更改了FLASH 空间大小、地址和型号,更改了SDRAM 、DDR SDRAM 空间大小、地址和型号,更改了晶振频率等),板卡ID号不支持等。那么如何进行调试那,其实有两种调试技术比较有效。 Kernel 启动调试技术- 使用printascii() 函数跟踪start_kernel() 有没运行,在booting the kernel 之后Kernel 最先执行的是start_kernel() 函数,确认start_kernel() 有否执行就是在其开始代码段添加printascii("start_kernel …") ,如果串口没有打印出start_kernel …,说明start_kernel() 没有运行,那么可能的原因有Bootloader 配置的启动参数错误、 Kernel 加载到(DDR) SDRAM 的地址不正确, Kernel 编译时指定的(DDR) SDRAM 运行地址不正确等。这样就需要一项一项排查错误,当错误被排查完毕,通常打印出start_kernel …是种必然,如果打印出这仪信息说明 Kernel已进入到start_kernel() 执行,如果此时有串口启动打印就比较成功了,如果仍然没有打印启动信息,就需要另外一种调试技术。 附代码修改:init/main.c <<- … extern void printascii(const char*); // Modify asmlinkage void __init start_kernel(void)

工程竣工验收单-范本[1]

安康市建设工程施工招标 中标通知书 (安康市)招(2015 )第83 号 建设项目名称:贵豪领郡售楼中心装修工程 中标单位名称:陕西天通装饰有限公司 中标项目经理:李宏陕161111105944 中标单位(印鉴) 法定代表人:(签字或盖章)建设单位(印鉴) 法定代表人:(签字或盖章) 2015年11月17日 安康市城乡建设规划局招标办2015年 印

工程竣工验收单

中标通知书 陕西天通装饰有限公司: 我单位的陕西建新煤化有限责任公司生产区办公楼、公寓楼室内外改造工程,经评标委员会评定,现确定贵单位中标。中标金额:28600000.00元,中标项目经理段辛乐. 请收到本通知书后 3 日内,到我单位签订工程合同。 特此通知。 招标人(盖章):陕西建新煤化有限责任公司 日期:2015 年 10 月 20日

陕西省建筑工程施工质量验收技术资料统一用表 施工质量验收技术资料通用表 竣工报告 陕ZTY—0005 陕西省建设厅建制 陕西省建设监理协会承印

B 1041 陕西省建筑工程施工质量验收技术资料统一用表 施工质量验收技术资料通用表 主体结构分部(子分部)工程质量验收记录 陕ZTY—0041 工程名称结构类型层数 施工单位技术部门负责人质量部门负责人 分包单位分包单位负责人分包技术负责人 序号分项工程名称检验批数施工单位检查评定验收意见 1 2 3 4 5 6 7 8 9 质量控制资料 安全和功能检验(检测)报告 观感质量验收 验收单位分包单位:项目经理:年月日施工单位:项目经理:年月日勘察单位:项目负责人:年月日 设计单位: 项目负责人:年月日监理(建设)单位: 总监理工程师: (建设单位项目专业技术负责人)

使用QEMU+GDB调试Linux内核

使用QEMU调试Linux内核 一.使用QEMU安装Ubuntu10.04 1.安装qemu ubuntu下使用sudo apt-get install 安装的qemu版本是0.12.3,该版本中存在bug,使得无法在断点处停下;因此需要在qemu官方网站https://www.360docs.net/doc/bc10347888.html,/Download上下载最新的版本qemu-0.12.5.tar.gz的源代码包自己进行编译安装: ●Sudo apt-get install zlib1g-dev libsdl-dev ●解压源代码后,进入源代码所在目录执行./confingure ●执行make ●执行sudo make install 2.创建QEMU格式的硬盘 qemu-img create –f qcow2name.img size 例如:qemu-img create –f qcow2 ubuntu10.04.img 4GB 3.在创建的硬盘上安装操作系统 qemu–hdaname.img–cdrom ~/Download/ubuntu10.04.iso –boot d 说明:使用hda指定硬盘镜像,使用CDROM选定光驱。-boot d 指从cdrom启动,-boot a是软盘,-boot c 是硬盘;使用qemu或qemu-system-x86_64(64为机子),有时安装系统会很慢,这是可以考虑使用kvm来代替。 例如:kvm–hda ubuntu10.04.img –cdrom ./ubuntu-10.04.iso -boot

d 4.从已经装好操作系统的硬盘启动 qemu–hda ubuntu10.04.img 5.在64位的主机上要使用qemu-system-x86_64命令来代替qemu 二.自己编译内核 现将Linux的编译调节过程简述为: 1. 下载自己要调试的Linux内核的源代码,这个可以从Linux内 核的官方网站上得到:https://www.360docs.net/doc/bc10347888.html, 2. 编译内核最主要的便是配置文件.config,为了能够准确的得到 结果(第一次不要求编译时间),将本机的config文件直接拷 贝到解压后的源代码中。 3.然后进行make操作,结束后将产生的bzImage文件拷到boot 目录下,重启,选择自己编译的内核,这样一般不会出问题,但时间较慢,大约编译一次需要40分钟。 3.1以前编译内核是为调试内核服务的,现在做华为的项目, 发现需要在实际的机器上运行自己编译的内核,参考网站: https://www.360docs.net/doc/bc10347888.html,/tips/compiling-linux-kernel-26.html 4.为了降低编译时间,就需要对配置文件进行裁剪,在配置文件 中有好多是本机不需要的模块,参考: https://www.360docs.net/doc/bc10347888.html,/Linux/kernel_options.html。另外调试内 核与模块无关,所以辨识为M的直接可以不选。 5.剪裁的时候采用“逐步瘦身”法,先剪裁掉某个或某几个模块, 然后在进行编译,若没错,在进行模块裁剪,这样可以最大程

在vmware虚拟机上调试内核

安装系统(在创建一个新的虚拟机时一定要用IDE硬盘) 1、在vmware上安装一个linux虚拟机(我用的软件版本:vmware 5.5, fedora 6) 从Internet下载源代码 1、linux-2.6.16 2、kgdb-2.6.16 编译内核 1、将kgdb-2.6.16补丁打到Linux内核源码里。 2、编译内核(make menuconfig, make, make modules_install, make install) 在内核配置菜单的Kernel hacking选项中选择kgdb调试项,例如: [*] KGDB: kernel debugging with remote gdb [*] KGDB: Console messages through gdb Method for KGDB communication (KGDB: On generic serial port (8250)) ---> < > KGDB: On ethernet [*] Simple selection of KGDB serial port (115200) Debug serial port baud rate (0) Serial port number for KGDB 3、修改grub.conf 例如: title Fedora Core (2.6.16) root (hd0,0) kernel /vmlinuz-2.6.16 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.16_debug.img 改为: title Fedora Core (2.6.16) root (hd0,0) kernel /vmlinuz-2.6.16 ro root=/dev/VolGroup00/LogVol00 kgdb8250=0,115200 initrd /initrd-2.6.16_debug.img 4、请检验新编译的内核是否可用。如果不能启动,可能是编译选项没有选好(一直困扰我的问题。实在不行就多选点)。如果没有问题,关闭这个linux虚拟机,进入下一步。

国电 变桨 调试

PROJECT GUP CCV风场变桨调试TO GUP Customer ENGINEER MOOG Service Remark GUP CCV风场变桨调试 1、变桨柜内无电检查 1.1 查验系统元器件包括电缆有无缺陷。 a、检查柜体在运输过程中是否存在由于震动造成的一些元器件损伤,主要是看元器件有无硬件损伤。 b、检查所要连接的重载电缆有无绝缘破损情况,Harting有无损坏。 c、查看柜内有无铁屑、铜丝等金属危险品 确保上电后设备及人身的安全。 1.2 校线检查 1.2.1 24V控制滑环线缆检查 使用万用表对从滑环进轮毂的线缆进行校线检查,确保接线没有错误。 注意:防雷模块的区别 6R1:接Profibus通讯线为5V防雷模块 16R1、17R1为24V防雷模块 注:此项接线必须校线检查,不然24V如果接线短路,就会造成防雷模块的损坏。 1.2.2 400V线缆检查 使用万用表对从机舱进轮毂的线缆进行校线检查。 注:400V的线缆校线检查必须提高警惕,严禁出现零线与火线或者地线与火线接反的情况!!! 目前在已经调试的风场中 1)尚义风场发现400V的防雷模块损坏较多,查出原因为机舱出火线与地/零线接反导致防雷模块的损坏2)在武川风场出现有,机舱零线未接紧,上电之后,系统缺零导致烧坏AC400充电器以及24V开关电源。 1.2.3 测量Canbus终端电阻60±5? 可测量BVL E线harting上,白棕两线间阻值 1.2.4 激活profibus终端电阻 DP插头上拨动开关处于ON状态 1)未接主控通讯线时,可测得6R1:1-2间阻值为220±10? 2)若连接主控通讯线之后阻值在110±5? 注:此阻值测量是在主控与变桨均未上电情况下测量的 1.2.5 线路测量 连接外部电源线之后(外部给变桨供电400V电源开关必须保持断开),闭合变桨柜体内所有开关(电池柜5Q1,axis1,axis2,axis3开关保持断开),做上电之前的线路测量 1)检测L1、L2、L3、N、PE线间的短路测量。 2)24+与L1、L2、L3、N、PE线间的短路测量。 3)24-与L1、L2、L3、N、PE线间的短路测量。 4)测量柜内各个端子排N线与N线以及PE线间的导通性。 注意:各个电压等级之间不能有回路电压串入 5)检测PITCHmaster进线进出线的对地的短路测量 确保上电之前线路无短路情况,保护设备及人身安全 1.2.6 电池电压测量 查看连接电池的短接线,保证电池短接线完全连接好,不能有虚接现象。 依次测量每个电池柜的电压,查看电池柜电压是否平衡,一般在230V左右,若出现电池柜电压偏低情况,上电后优先闭合这个电池柜开关,优先充电。

Linux内核启动流程分析(一)

很久以前分析的,一直在电脑的一个角落,今天发现贴出来和大家分享下。由于是word直接粘过来的有点乱,敬请谅解! S3C2410 Linux 2.6.35.7启动分析(第一阶段) arm linux 内核生成过程 1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩, 带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o init/built-in.o --start-group arch/arm/mach-s3c2410/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o drivers/built-in.o net/built-in.o --end-group .tmp_kallsyms2.o 2. 将上面的vmlinux去除调试信息、注释、符号表等内容,生成arch/arm/boot/Image,这是不带多余信息的linux内核,Image的大小约 3.2MB; 命令:arm-linux-gnu-objcopy -O binary -S vmlinux arch/arm/boot/Image 3.将 arch/arm/boot/Image 用gzip -9 压缩生成arch/arm/boot/compressed/piggy.gz大小约 1.5MB;命令:gzip -f -9 < arch/arm/boot/compressed/../Image > arch/arm/boot/compressed/piggy.gz 4. 编译arch/arm/boot/compressed/piggy.S 生成arch/arm/boot/compressed/piggy.o大小约1.5MB,这里实 际上是将piggy.gz通过piggy.S编译进piggy.o文件中。而piggy.S文件仅有6行,只是包含了文件piggy.gz; 命令:arm-linux-gnu-gcc -o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/piggy.S 5. 依据arch/arm/boot/compressed/vmlinux.lds 将arch/arm/boot/compressed/目录下的文件head.o 、piggy.o 、misc.o链接生成arch/arm/boot/compressed/vmlinux,这个vmlinux是经过压缩且含有自解压代码的内核, 大小约1.5MB; 命 令:arm-linux-gnu-ld zreladdr=0x30008000 params_phys=0x30000100 -T arch/arm/boot/compressed/vmlinux.lds a rch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/misc.o -o arch/arm /boot/compressed/vmlinux

Linux内核漏洞调试环境搭建

Linux内核漏洞调试环境搭建 一.前言 之前没怎么用过Linux,但是那天看到exploit-db上有不少Linux内核漏洞的POC。当时想如果可以请自动手调试一下这些漏洞,肯定会学到一些Linux下特定漏洞的利用技巧。(比如怎么利用空指针引用漏洞来进行本地提权)。所以就GOOGLE了很多关于Linux内核调试的文章,虽然一步一步老老实实照前人的指点的做,但是还是问题连着问题。反反复复的尝试,才历尽千心万苦搭建起了这个内核漏洞调试环境。 在此过程中得到了广大网友的帮助,特别是wzt85和塞(他的ID为塞)这两位前辈的指点。既然取之于“网”,那我觉得应该把这个过程用文字描述出来放到网络上,与同道中人分享。 本文的第二部分将简单介绍目前Linux下内核调试的几种常用调试技术路线,由于我对Linux的了解确实不多,所以这一部分写的肯定会很不专业,但目的在于抛砖引玉——更专业的文章烦请自行GOOGLE。 本文的第三部分会详细介绍该调试环境的搭建过程,关键点会有截图说明。 本文的第四部分是一点补充性的文字。 二.Linux下内核调试技术路线 1.QEMU+GDB QEMU是一款开源的虚拟机软件,它自身带有gdb stub可用于和Host 主机上的GDB通信来对Guest主机的Linux内核进行源码(C代码)级调试。为实现源码级调 试,那必须要有调试信息以及符号表,所以首先从https://www.360docs.net/doc/bc10347888.html,上下载一份 Linux内核源代码进行编译。编译成功后会得到bzImage文件和vmlinux文件。其中vmlinux就是要供Host主机上的GDB进行调试的带有调试信息,符号表的内核文 件。 使用这种方法试验环境的搭建比较简单,而且最吸引人的地方在于它能够实现源码级的调试。但是遗憾的是,这种方法调试不了漏洞。因为当Guest主机上的内核发生内存访问异常的时候,Host主机中的GDB根本得不到异常事件,这样一来也就无法获知是那条指令引发的异常,以及被访问的内存地址是什么。

REE-OAT变桨系统现场调试手册

版本:V1.0 REE-OAT变桨系统现场调试手册 发布日期:2009年9月9日

REE-OAT变桨系统现场调试手册 本文件用于指导1.5MW(低温型)风机用变桨系统的现场调试,变桨系统的调试要严格按照调试步骤进行,做好调试记录。 一、调试工具 ●调试软件Windbench; ●笔记本电脑一台; ●万用表一个; ●工具箱一个:配有一字型、十字型螺丝刀、一套内六角扳手和尖嘴钳等 工具; ●REE-OAT变桨系统原理图一份; 二、上电前的常规检查 ●确认变桨系统各部件间的电缆连接正确,且各航空插头连接牢靠; ●检查各控制箱内及箱外的元器件是否完好无损; ●确认各控制箱和电池箱的电源开关均处于断开状态,箱内的电路保护开 关均处于断开状态; ●电池电压在满电状态应为246V,如低于241V,电池已处于充电状态, 此时充电激活以及充电电流项的指示灯应为绿色,电池电流值为负值。

充电器激活 注意:系统上电前一定要确保三相400V电压正常和相序正确,N线和PE接地线连接正确且固定牢靠,电源不能缺项,否则容易造成模块烧毁。 三、单独调试步骤 1.首先一定要先合上三个电池箱的开关1Q2,2Q2,3Q2; 2.PC调试步骤(按照以下示意图分步完成): ●检查Q1(400V AC)进线端电压是否正常,出线端是否对地短路,正常 则合上Q1; ●检查S1(230V AC)进线端电压是否正常,出线端是否对地短路,正常 则合上S1,检查照明灯是否正常; ●检查Q11,Q21,Q31(400V AC)进线端是否正常,出线端是否对地短 路,正常则合上Q11,Q21,Q31; ●检查F11,F21,F31(230V AC)进线端是否正常,出线端是否对地短路, 正常则合上F11,F21,F31;

Linux内核调试

0x00 前言 这段时间开始学习了linux内核提权,也跟进看了一些漏洞。但是由于linux系统版本、内核版本的不同,驱动模块或者是某个函数的加载地址都是不同的,如果不能自己亲自调试内核,就算给了exp也是无法利用。之前也没有怎么接触过内核调试,所以这几天找了许多资料开始学习调试内核的方法,总结整理在这。 本文测试系统是Ubuntu12.04 64位。 0x01 准备环境 首先当然是准备需要调试的内核版本,linux的所有历史版本都可以在这里找到。 down下来后进入源码树根目录,开始配置内核,这里使用基于ncurse库编制的图形界面工具: $ make menuconfig 由于我们需要使用kgdb调试内核,注意下面这几项一定要配置好: KernelHacking --> 选中Compile the kernel with debug info 选中Compile the kernel with frame pointers 选中KGDB:kernel debugging with remote gdb,其下的全部都选中。 Processor type and features--> 去掉Paravirtualized guest support KernelHacking--> 去掉Writeprotect kernel read-only data structures(否则不能用软件断点) 保存config文件之后make、make modules_install、make install编译安装就好。 具体安装编译内核可以看我另一篇笔记 0x02 使用kvm、gdb调试内核 先介绍一下现在用得比较多的调试内核方法吧,简单地说就是在linux系统里再装一个kvm虚拟机配置好gdb远程调试支持,然后在linux主机上连接调试。但是我因为电脑配置不高,装了kvm太卡就放弃了这个方法orz 总之还是讲一下怎么调试吧。 查看cpu是否支持,如果没有输出,要在虚拟机设置里选上Inter VT: $ grep vmx /proc/cpuinfo

linux内核编程规范

竭诚为您提供优质文档/双击可除 linux内核编程规范 篇一:00-linux系统编程常识-王保明 linux系统编程-应用编程常识--专题讲座 writtenby王保明 计算机系统组成 1计算机系统硬件组成 2操作系统 篇二:linux2.6驱动开发系列教程 [置顶]linux2.6驱动开发系列教程 这段时间一直在做android下的驱动,android驱动底层跟linux如出一辙,所以这里准备做一个专题,把linux 驱动做一个总结,为android接下来的驱动开发打好基础,大致的思想如下: 一、linux驱动基础开发 0、 1、 2、 3、

4、linux驱动基础开发4——linux字符驱动模型(memdriver内存读写) 5、linux驱动基础开发5——linux设备文件注册(devfs、mdev、sys、proc)讲解 6、linux驱动基础开发6——linuxgpio驱动实例分析(s3c2440/6410io操作) 7、linux驱动基础开发7——linux1*3io键盘驱动实例分析 8、linux驱动基础开发8——linux中断机制讲解与实 例分析(s3c2440/6410外部中断机制) 9、linux驱动基础开发9——linux数据缓冲机制(kfifo)讲解与实例分析 10、linux驱动基础开发10——linux并发、同步、互 斥机制(信号量、互斥锁、等待任务队列)讲解与实例分析 11、linux驱动基础开发11——linux周期性事件(内 核定时器)讲解 12、linux驱动基础开发12——linux周期性事件(内 核线程)讲解 13、linux驱动基础开发13——linux任务阻塞 (select\poll)机制讲解 14、linux驱动基础开发14——linux异常处理(内核 信号)讲解

基于Linux内核定制X86平台的微操作系统(很完整详尽文章)

基于Linux内核定制X86平台的微操作系统摘要:1 0 前言2 0.1 Linux系统简介2 0.2 Linux的基本思想2 0.3 Linux内核2 0.4 Linux内核版本命名3 0.5 Linux文件系统3 0.6Linux内核引导4 0.7Linux系统组成4 1 平台的搭建4 1.1 硬件平台4 1.2 软件平台4 1.2.1 Ubuntu系统的下载4 1.2.2 Ubuntu系统的安装4 1.2.3 Ubuntu系统的配置4 2 Linux内核的编译5 2.1 内核的下载5 2.2 内核的定制5 2.3 内核的编译5 2.4 内核的制作6 3 BusyBox的编译6 3.1 BusyBox的下载6 3.2 BusyBox的配置6 3.3 BusyBox的编译7 4 Linux文件系统的制作7 4.1 文件系统的制作7 4.2 文件系统的配置9 4.3 文件系统的压缩7 5 Linux引导程序配置10 5.1 ISOLINUX的下载10 5.2 ISOLINUX的配置10 6 LinuxCD-ROM的制作10 7 Linux定制系统的运行11 7.1 VirtualBox下的运行11 7.2 U盘引导在X86平台下的运行12 8定制系统过程中的问题12 8.1 平台搭建中的问题12 8.2 内核编译中的问题12

8.3 BusyBox编译中的问题12 8.4 文件系统制作中的问题12 8.5 引导程序制作中的问题12 8.6 CD-ROM制作中的问题13 8.7 定制系统运行的问题13 参考13 基于Linux内核定制X86平台的微操作系统 王林强 (河南大学物理与电子学院通信专业,河南开封,475004) 摘要: Linux是一种自由和开放,用C语言和汇编语言写成,并符合POSIX标准的类Unix操作系统。并且由于其可定制、可裁剪的特性,不仅在桌面操作系统中有重要的地位,而且在手机、平板电脑、路由器和视频游戏控制台等嵌入式设备有其巨大的优势。 为了更好、更深入的了解及掌握Linux系统。本文详细的讲述并实践,如何从Linux内核源码,经过定制、裁剪、编译、制作文件系统、内核引导,iso光盘制作到最终完整的基于Linux内核定制的微操作系统。 通过基于Linux内核定制的微操作系统的制作,深入的理解Linux内核的工作原理、文件系统结构、内核引导等,从而精通嵌入式开发。 关键词: Linux;定制;嵌入式;微系统 An implementation of micro-operating system based on the x86 platform Linux kernel customization Wang Lin-qiang (School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China) Abstract: Linux is a free and open, and POSIX-compliant Unix-like operating system written in C and assembly language. And can be cut because of its customizable features, not only in the desktop o perating system in an important position, and its huge advantage in the embedded devices, mobile phones, tablet PCs, routers, and video game consoles. In order to better and deeper understanding of and master Linux system. This article tells in d etail and practice, from the Linux kernel source code has been customized, cutting, compiling, pro

相关文档
最新文档