您好,登錄后才能下訂單哦!
1. sensor開發(fā)框圖
2. 設(shè)備驅(qū)動加載及硬件系統(tǒng)配置
cd?mpp/ko #?default?online ./load3518e?-a?-sensor?xxxx?-osmem?32?-total?64 #?vi_vpss?offline ./load3518e?-a?-sensor?xxxx?-osmem?32?-total?64?-offline
load3518e腳本主要是用來配置硬件系統(tǒng)的參數(shù)(引腳復(fù)用、sensor時鐘、VI時鐘)加載驅(qū)動(.ko),包括訪問sensor的I2C接口驅(qū)動。
離線模式時圖像存入DDR中,在線模式時圖像不存入DDR中。
在load3518e腳本中添加sensor的相關(guān)配置。
insert_sns() { case?$SNS_TYPE?in xxxx) himm?0x200f0040?0x2;???? #?I2C0_SCL himm?0x200f0044?0x2;???? #?I2C0_SDA #cmos?pinmux himm?0x200f007c?0x1;???? #?VI_DATA13 himm?0x200f0080?0x1;???? #?VI_DATA10 himm?0x200f0084?0x1;???? #?VI_DATA12 himm?0x200f0088?0x1;???? #?VI_DATA11 himm?0x200f008c?0x2;???? #?VI_VS himm?0x200f0090?0x2;???? #?VI_HS himm?0x200f0094?0x1;???? #?VI_DATA9 himm?0x2003002c?0xb4001; #?sensor?unreset,?clk?27MHz,?VI?148.5MHz # himm?0x20030104?0x1; #?vpss?148.5MHz ;; *) echo?"xxxx?Invalid?sensor?type?$SNS_TYPE?xxxx" report_error;; esac } insert_ko() { #?sys?config sys_config; #?driver?load insmod?mmz.ko?mmz=anonymous,0,$mmz_start,$mmz_size?anony=1?||?report_error insmod?hi_media.ko insmod?hi3518e_base.ko insmod?hi3518e_sys.ko?vi_vpss_online=$b_arg_online?sensor=$SNS_TYPE insmod?hi3518e_tde.ko insmod?hi3518e_region.ko insmod?hi3518e_vgs.ko insmod?hi3518e_isp.ko insmod?hi3518e_viu.ko?detect_err_frame=10; insmod?hi3518e_vpss.ko?rfr_frame_comp=1; insmod?hi3518e_vou.ko #insmod?hi3518e_vou.ko?transparentTransmit=1?#enable?transparentTransmit insmod?hifb.ko?video="hifb:vram0_size:1620"?????#?default?pal insmod?hi3518e_rc.ko insmod?hi3518e_venc.ko? insmod?hi3518e_chnl.ko?ChnlLowPower=1 insmod?hi3518e_h364e.ko insmod?hi3518e_jpege.ko insmod?hi3518e_ive.ko?save_power=0; # insmod?hi3518e_ive.ko insmod?extdrv/sensor_i2c.ko echo?"====?Your?input?Sensor?type?is?$SNS_TYPE?====" insmod?extdrv/pwm.ko insmod?extdrv/piris.ko #insert_sns?>?/dev/null insert_sns insert_audio insmod?hi_mipi.ko echo?"====?Your?input?Sensor?type?is?$SNS_TYPE?====" }
3. sensor的庫文件生成(.so)
sensor的庫文件需要在Linux服務(wù)器中的SDK包中編譯得到,將生成的.so文件放到SDK包中的stream軟件包中的Hi3518E_Stream_xxx/libs目錄下。
sensor_ctl.c實現(xiàn)sensor的讀寫初始化。
sensor_cmos.c主要實現(xiàn)ISP需要的回調(diào)函數(shù),包括ISP、AE、AWB等。
//ISP?function HI_S32?cmos_init_sensor_exp_function(ISP_SENSOR_EXP_FUNC_S?*pstSensorExpFunc) { ????memset(pstSensorExpFunc,?0,?sizeof(ISP_SENSOR_EXP_FUNC_S)); ????pstSensorExpFunc->pfn_cmos_sensor_init?=?sensor_init; ????pstSensorExpFunc->pfn_cmos_sensor_exit?=?sensor_exit; ????pstSensorExpFunc->pfn_cmos_sensor_global_init?=?sensor_global_init; ????pstSensorExpFunc->pfn_cmos_set_p_w_picpath_mode?=?cmos_set_p_w_picpath_mode; ????pstSensorExpFunc->pfn_cmos_set_wdr_mode?=?cmos_set_wdr_mode; ???? ????pstSensorExpFunc->pfn_cmos_get_isp_default?=?cmos_get_isp_default; ????pstSensorExpFunc->pfn_cmos_get_isp_black_level?=?cmos_get_isp_black_level; ????pstSensorExpFunc->pfn_cmos_set_pixel_detect?=?cmos_set_pixel_detect; ????pstSensorExpFunc->pfn_cmos_get_sns_reg_info?=?cmos_get_sns_regs_info; ????return?0; } //AE?function HI_S32?cmos_init_ae_exp_function(AE_SENSOR_EXP_FUNC_S?*pstExpFuncs) { ????memset(pstExpFuncs,?0,?sizeof(AE_SENSOR_EXP_FUNC_S)); ????pstExpFuncs->pfn_cmos_get_ae_default????=?cmos_get_ae_default; ????pstExpFuncs->pfn_cmos_fps_set???????????=?cmos_fps_set; ????pstExpFuncs->pfn_cmos_slow_framerate_set=?cmos_slow_framerate_set;???? ????pstExpFuncs->pfn_cmos_inttime_update????=?cmos_inttime_update; ????pstExpFuncs->pfn_cmos_gains_update??????=?cmos_gains_update; ????pstExpFuncs->pfn_cmos_again_calc_table??=?cmos_again_calc_table; ????pstExpFuncs->pfn_cmos_get_inttime_max???=?cmos_get_inttime_max;? ????return?0; } //AWB?function HI_S32?cmos_init_awb_exp_function(AWB_SENSOR_EXP_FUNC_S?*pstExpFuncs) { ????memset(pstExpFuncs,?0,?sizeof(AWB_SENSOR_EXP_FUNC_S)); ????pstExpFuncs->pfn_cmos_get_awb_default?=?cmos_get_awb_default; ????return?0; }
4. 修改stream軟件包的.ini文件
xxxx_1080p_line.ini文件在Hi3518E_Stream_xxx/configs目錄下,改文件主要指定.so文件的位置、輸入視頻的接口(LVDS/MIPI/DVP)、視頻格式(分辨率、同步方式、目標(biāo)幀率等)等系統(tǒng)配置。
5. 運(yùn)行stream軟件
運(yùn)行stream軟件包中的HiIspTool.sh腳本,通過以太網(wǎng)卡與上位機(jī)的PQTools建立通信。
cd?/Hi3518E_Stream_V1.0.2.0 ./HiIspTool.sh?-a?-p?xxxx_1080p_line.ini
ittb_control進(jìn)程是基于TCP的服務(wù)端,負(fù)責(zé)控制信號的傳輸。
ittb_stream進(jìn)程也是基于TCP的服務(wù)端,負(fù)責(zé)播放H.264或YUV視頻流。
6. 運(yùn)行PQ Tools
雙擊PQ Tools圖片,彈出如下對話框,設(shè)置IP地址。
在下拉菜單中選擇TTP_Stream.exe選項
7. 最終結(jié)果
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。