第十四章:sensor驅動原始碼解析與實戰
海思的sensor驅動大部分工作在應用層,即應用層驅動(非ko形式存在),這樣一來在對sensor改動時,就不需要重新編譯核心了。
缺點是,不穩定,效率會比較低。純應用層驅動是沒辦法操作硬體的,所以需要呼叫底層i2c驅動。
1、驅動原始碼路徑
Hi3518E_SDK_V1.0.3.0\package\mpp\mpp\component\isp\sensor目錄下。2、sensor驅動呼叫
sensor驅動編譯完之後會生成xxx.a和xxx.so兩個庫,一個是靜態連結用的,一個是動態連結用的。
這兩個檔案會被放到Hi3518E_SDK_V1.0.3.0\package\mpp\mpp\lib目錄下。3、sensor驅動檔案命名規則
xxxx_cmos.c中定義回撥和上層函式。
xxxx_sensor_ctl.c中定義底層硬體相關的暫存器值配置函式。4、sensor驅動在哪被呼叫
從之前的sample_venc開始看,在第三部分step 3: start vi dev & chn to capture
SAMPLE_COMM_VI_StartVi()
SAMPLE_COMM_VI_StartIspAndVi()
SAMPLE_COMM_ISP_Init()
sensor_register_callback()
5、sensor_register_callback
這個函式就是對整個sensor初始化,內部封裝了操作sensor所需要的函式,(ISP、AE(自動曝光)、AWB(白平衡))
其中的cmos_init_sensor_exp_function函式將sensor操作時所需要的函式一一掛接起來,例如初始化呼叫的sensor_init。6、sensor_init
初始化sensor,初始化的方式就是呼叫i2c函式介面來實現操作sensor內部暫存器。7、黑電平
黑電平(Black Level Correction)也就是黑色的最低點,以8bit資料來說,指在經過一定校準的顯示裝置上,沒有一行光亮輸出的視訊訊號電平。定義影象資料為0時對應的訊號電平。
sensor中的黑電平是可以調節的,就相當於標準值,就像零攝氏度這種概念。8、sensor驅動編譯實戰
(1)修改驅動原始碼
以AR0130為例,修改mpp\component\isp\sensor\ar0130目錄下的應用驅動原始碼。
如果是調整黑電平,就修改ar0130目錄下的ar0130_coms.c檔案裡面的cmos_get_isp_black_level函式中的au16BlackLevel陣列。(2)清除,並重新編譯
首次編譯需要在mpp\component\isp目錄下將整個isp進行編譯。
執行make clean指令。
再執行make
(3)確認mpp中lib目錄下的libsnsxxx.a/so已經被更新。
(4)重新編譯sample並執行檢視效果。9、AR0130sensor暫存器
參考AR0130_RR_C.pdf文件的Register Behavior暫存器章節,瞭解各暫存器用途。相關推薦
第十四章:sensor驅動原始碼解析與實戰
海思的sensor驅動大部分工作在應用層,即應用層驅動(非ko形式存在),這樣一來在對sensor改動時,就不需要重新編譯核心了。 缺點是,不穩定,效率會比較低。純應用層驅動是沒辦法操作硬體的,所以需要呼叫底層i2c驅動。1、驅動原始碼路徑
“全棧2019”Java第十四章:二進位制、八進位制、十六進位制
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第十四章:二進位制、八進位制、十六進位制 下一章 “全棧2019”Java第十五章:Unic
Java程式設計思想 第十四章:型別資訊
執行時型別資訊使得你可以在程式執行時發現和使用型別資訊 Java是如何讓我們在執行時識別物件和類的資訊的。主要有兩種方式: 一種使用傳統的“RTTI”,它假定我們在編譯時就已經知道了所有的型別資訊。另 一種是“反射”機制,它允許我們在執行時發現和使用型別資訊。
演算法導論 第十四章:區間樹
區間樹是一種對動態集合進行維護的紅黑樹,具體設計如下: step1:基礎資料結構 我們選擇的基礎資料結構式紅黑樹,其中每個節點x包含一個區間域x.int,x的關鍵字為區間的低端點 x.int.low. step2:附加資訊 每個節點x除了區間資訊外,還包含一個
從零開始Desire HD刷機指南——第十一章:利用第三方recovery備份與還原系統
原文地址:http://blog.sina.com.cn/s/blog_722b43a60100q5jf.html 本教程由symen 原創,轉載請註明出處。 上一章我們介紹瞭如何把第三方recovery 刷進手機,本章來介紹如何利用它來備份與還原系統。 先來看一下
Python編程:從入門到實踐——【作業】——第十四章(記分)
wid ont elif pac rom ext splay 添加 能夠 第十四章 14-1 按P開始新遊戲 : 鑒於遊戲《外星人入侵》 使用鍵盤來控制飛船, 最好讓玩家也能夠通過按鍵來開始遊戲。 請添加讓玩家在按P時開始遊戲的代碼。 也許這樣做會有所幫助: 將check_
第三十四章:Filter過濾器
作者:java_wxid Filter,什麼是過濾器? 1.Filter過濾器是javaWeb的三大元件之一, 2.三大元件分別是:Servlet程式,Filter過濾器,Listener監聽器。 3.Filter是介面。 4.Filter的作用是:攔截請求,過濾響應。 Filter
“全棧2019”Java第三十四章:可變引數列表
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第三十四章:可變引數列表 下一章 “全棧2
“全棧2019”Java第四十四章:繼承
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第四十四章:繼承 下一章 “全棧2019”
“全棧2019”Java第五十四章:多型詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第五十四章:多型詳解 下一章 “全棧2019”Java第五十五章:方法的靜態繫結與動態繫結
“全棧2019”Java第六十四章:接口與靜態方法詳解
分享圖片 java 回復 開發語言 java學習 dea 接口 了解 學習計劃 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”Java第六十四章:
SpringBoot | 第三十四章:CXF構建WebService服務
前言 上一章節,講解了如何使用Spring-WS構建WebService服務。其實,建立WebService的方式有很多的,今天來看看如何使用apache cxf來構建及呼叫WebService服務。 一點知識 何為Apache-CXF Apache C
第五十四章:Dubbo分散式服務框架
Dubbo官網 什麼是Dubbo? 它有什麼特點?它的優點是什麼? 為什麼要使用它?有什麼功能?Dubbo能做什麼? 什麼是Dubbo? 1.Dubbo是一個分散式服務框架。 說明:如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這
第四十四章:單一(偽分散式)架構:SSM整合02
單一(偽分散式)架構之使用Maven建立各個工程之間的依賴、繼承、聚合關係 SSM jar包依賴統一管理 工程:parent pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w
“全棧2019”Java第八十四章:介面中巢狀介面詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第八十四章:介面中巢狀介面詳解 下一章 “
“全棧2019”Java第七十四章:內部類與靜態內部類相互巢狀
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十四章:內部類與靜態內部類相互巢狀 下一章
第十七章:STA模式USB WIFI驅動移植
1、下載原始碼 首先將原始碼複製到ubuntu中實驗目錄,並解壓開,這裡我們用到的是sta模式,所以解壓MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2這個檔案。 我們這裡解壓之後放在了以下目錄中. 2、修改
“全棧2019”Java第九十四章:區域性內部類詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第九十四章:區域性內部類詳解 下一章 “全棧2019”Java第九十五章:方法中可以定義靜態
【無私分享:ASP.NET CORE 專案實戰(第十四章)】圖形驗證碼的實現
1 public class VierificationCodeServices 2 { 3 /// <summary> 4 /// 該方法用於生成指定位數的隨機數 5 /// </summary> 6
JAVA程式設計思想學習總結:第十四章型別資訊
import java.util.*; interface Factory<T>{T create();} class Part{ public String toString(){ return getClass().getSimpleName(); } static List<