姓名:張猛
【嵌牛導讀】:在海思+ov9712相機調(diào)試完成之后各薇,便更改了比亞迪的相機BYD2013進行調(diào)試,在調(diào)試這個相機簡單的更改了相機配置寄存器之后圖像很容易的出來了授瘦,但是圖像有很大的噪點通惫,失真,這個問題一直在研究搞不定(感覺自己在硬件軟件配置是對的)涵但,便想到用海思的Hi_ISP實現(xiàn)圖像的在線調(diào)試,看能不能達到一些意外的收貨帖蔓,但是在用海思ISp工具時便遇到了問題矮瘟,搞了兩天終于才把這個問題解決,在這里記錄一下塑娇。
【嵌牛鼻子】:ISP? HiPQtools? ?stream? ??
【嵌牛提問】:對于海思在線調(diào)試工具澈侠,如何進行加載,加載的流程是什么埋酬,以及要要注意這里面的坑哨啃。
【嵌牛正文】:
1.首先加載設(shè)備驅(qū)動及進行系統(tǒng)配置
在ko目錄下,執(zhí)行./load3518e -i? ?系統(tǒng)便會進行加載
2.sensor庫文件的生成(.ko)
sensor的庫文件需要在linux服務(wù)器中的sdk包中編譯得到写妥,將生成的.so文件放到Sdk的stream軟件包的libs/目錄下拳球。
這樣就在上一層目錄的lib/目錄下生成了.so文件
3.修改stream軟件包的.ini文件
sc3035_3m_4lan.ini文件在Hi3516A_Stream_xxx/configs目錄下,改文件主要指定.so文件的位置珍特、輸入視頻的接口(LVDS/MIPI/DVP)祝峻、視頻格式(分辨率、同步方式扎筒、目標幀率等)等系統(tǒng)配置莱找。
[sensor]
Sensor_type???=sc3035???????????????????;sensor?name
Mode??????????=0????????????????????????;WDR_MODE_NONE?=?0
;WDR_MODE_BUILT_IN?=?1
;WDR_MODE_2To1_LINE?=?2
;WDR_MODE_2To1_FRAME?=?3
;WDR_MODE_2To1_FRAME_FULL_RATE?=4?...etc
DllFile???=libs/libsns_sc3035_4lan.so????????;sensor?lib?path
[mode]
input_mode?=0???????????????????????????;INPUT_MODE_MIPI?=?0
;INPUT_MODE_SUBLVDS?=?1
;INPUT_MODE_LVDS?=?2?...etc
dev_attr?=?0???????????????????????????? ;mipi_dev_attr_t?=?0
;lvds_dev_attr_t?=?1
;NULL?=2
[mipi]
;----------onlyformipi_dev---------
data_type?=?1???????????????????????? ;raw?datatype:?8/10/12/14bit
;RAW_DATA_8BIT?=?0
;RAW_DATA_10BIT?=?1
;RAW_DATA_12BIT?=?2
;RAW_DATA_14BIT?=?3
lane_id?=?0|?1?|?2?|?3?|-1|-1|-1|-1|????????;lane_id:?-1?-?disable
[isp_image]
Isp_x??????=0
Isp_y??????=0
Isp_W??????=2304
Isp_H??????=1536
Isp_FrameRate=30
Isp_Bayer??=3???;BAYER_RGGB=0,?BAYER_GRBG=1,?BAYER_GBRG=2,?BAYER_BGGR=3
4. 運行stream軟件
運行stream軟件包中的HiIspTool.sh腳本,通過以太網(wǎng)卡與上位機的PQTools建立通信
./HiIspTools.sh?-a?-p?ov9712_720p_line.ini?
遇到的問題就出在這一塊嗜桌,報錯是
研究其腳本文件HiIsptool.sh? ,發(fā)現(xiàn)ISP的安裝是分為板端工具和PC端安裝奥溺,而板端安裝是根據(jù)這個腳本進行配置的,具體分兩個部分:
(1)killall ittb_control; #殺死ittb_control進程
DLL_PATH=${LD_LIBRARY_PATH}:${PWD}/libs; #指定庫路徑
export LD_LIBRARY_PATH=${DLL_PATH}#export 庫
LD_LIBRARY_PATH即Linux環(huán)境變量名症脂,該環(huán)境變量主要用于指定查找共享庫(動態(tài)鏈接
庫)時除了默認路徑之外的其他路徑(該路徑在默認路徑之前查找)谚赎。
工具里使用了自己編譯好的動態(tài)庫淫僻,而這些動態(tài)庫放在發(fā)布包的libs文件夾下诱篷。當執(zhí)行函數(shù)動態(tài)
鏈接時,如果此文件不再缺省目錄下’/lib’ and ‘/usr/lib’,那么就需要指定環(huán)境變量
LD_LIBRARY_PATH
? (2)運行可執(zhí)行程序
./ittb_control&
總結(jié):
ittb_control進程是基于TCP的服務(wù)端雳灵,負責控制信號的傳輸棕所,也就是負責將海思板子和PC端的工具連接起來
ittb_stream進程也是基于TCP的服務(wù)端,負責播放H.265或YUV視頻流悯辙。琳省,也就是負責將板端的數(shù)據(jù)進行傳輸處理
小插曲:
理論上上直接運行上面的Hi腳本就可以了迎吵,但是我在具體的操作過程中是報錯的,ps一下發(fā)現(xiàn)并沒有ittb_controls 和ittb_stream兩個進程针贬,單獨運行./ittb_controls報錯沒有權(quán)限击费,運行chmod 777¤胨ittb_controls獲得權(quán)限蔫巩,此時運行卻發(fā)生缺少so文件,但是libs目錄下是有這個文件的快压,仔細查看腳本文件圆仔,
這里面設(shè)計到了Makefile的一些知識,這里面的路徑并不是指軟件目錄下的lib目錄蔫劣,而是指的海思板系統(tǒng)根目錄下的lib目錄坪郭,復制報錯的.so到系統(tǒng)根目錄下報錯就換了一個.so 報錯,這驗證了我的想法
執(zhí)行命令cp÷龃薄*⊥嵛帧/usr/lib/ 將軟件路徑lib下的所有.so復制到系統(tǒng)根目錄下的.lib/目錄下,此時鸵隧,發(fā)現(xiàn)沒有報錯绸罗。ps查看linux進程中也有了control和stream兩個進程
這個時候打開window系統(tǒng)的pqtools,選擇sdk版本豆瘫,填寫海思板子的IP珊蟀,port默認就可以連接上板子了