1. 程式人生 > >入門雖易,精通不易,且學且珍惜!

入門雖易,精通不易,且學且珍惜!

展訊驅動入門

fastboot download cmd:

   fastboot flash uboot u-boot.bin

   fastboot flash boot boot.img

LCM

code path: kernel/drivers/video/sprdfb/lcd

kernel/drivers/video/backlight

u-boot64/drivers/video/sprdfb/lcd

porting:

U-boot:

u-boot64/drivers/video/sprdfb/lcd/Makefile

+obj-$(CONFIG_FB_LCD_ILI9806E_MIPI)  += lcd_ili9806e_mipi.o  u本來就有

u-boot64/drivers/video/sprdfb/sprdfb_panel.c u本來就有

加extern struct panel_spec lcd_ili9806e_mipi_spec;

panel_cfg裡面加

#ifdef CONFIG_FB_LCD_ILI9806E_MIPI

{

    .lcd_id = 0x4,

    .panel = &lcd_ili9806e_mipi_spec,

},

#endif

panel_info   =================沒加

u-boot64/drivers/video/sprdfb/lcd

+lcd_ili9806e_mipi.c     u在sprocomm中新增

根據id腳相容模組:

+static uint32_t lcd_id_vol_to_kernel = 0;

+int get_lcd_id_value(unsigned int gpio)

+{

+    int lcd_id_value; 

+    sprd_gpio_request(NULL,gpio); 

+    sprd_gpio_direction_input(NULL,gpio); 

+    lcd_id_value = sprd_gpio_get(NULL,gpio); 

+

+    return lcd_id_value?1:0; 

+}

+void save_lcd_id_vol_to_kernel(uint32_t id_vol)

+{ 

+    lcd_id_vol_to_kernel = id_vol;

+}

+

+uint32_t load_lcd_id_vol_to_kernel(void)

+{

+    return lcd_id_vol_to_kernel;

+}

+extern uint32_t load_lcd_id_vol_to_kernel();

+

+int fdt_fixup_lcdid_vol(void *fdt)

+{

+       char buf[16];

+       extern uint32_t load_lcd_id_vol_to_kernel();

+       uint32_t lcd_id_vol = 0;

+       int str_len;

+       int ret;

+

+       lcd_id_vol = load_lcd_id_vol_to_kernel();

+       memset(buf, 0, 16);

+

+       sprintf(buf, "lcd_id_vol=");

+       str_len = strlen(buf);

+       sprintf(&buf[str_len], "%x",lcd_id_vol);

+       str_len = strlen(buf);

+       buf[str_len] = '\0';

+

+       ret = fdt_chosen_bootargs_append(fdt, buf, 1);

+       return ret;

+}

+

+

@@ -88,6 +88,7 @@ void fdt_fixup_all(void)

        fdt_initrd_norsvmem(fdt_blob, RAMDISK_ADR, RAMDISK_ADR + hdr->ramdisk_size, 1);

 #ifdef CONFIG_SPLASH_SCREEN

        fdt_fixup_lcdid(fdt_blob);

+       fdt_fixup_lcdid_vol(fdt_blob);

        fdt_fixup_lcdbase(fdt_blob);

 #endif

Kernel:

sprocomm_proj\X5099I\kernel\arch\arm\configs\sp7731ceb_dt_defconfig

加CONFIG_FB_LCD_JD9161_MIPI=y

kernel/drivers/video/sprdfb/lcd/Makefile

加obj-$(CONFIG_FB_LCD_JD9161_MIPI) += lcd_jd9161_mipi.o

kernel/drivers/video/sprdfb/Kconfig

加config FB_LCD_ST7701_MIPI

       boolean "support ST7701 mipi panel"

       default n

sprocomm_proj\kernel/drivers/video/sprdfb/lcd\

加驅動檔案

重要code: adapt_panel_from_readid()

Lcm:idh.code\kernel\drivers\video\sprdfb\lcd

背光:idh.code/kernel/drivers/video/backlight/sprd_pwm_bl.c

背光:

Uboot: set_backlight

u-boot64/board/spreadtrum/sp7731ceb/sprd_bl.c中set_backlight

Kernel:sprd_pwm_bl_update_status,預設是在probe函式中設定的

NTC

1.基礎知識:http://blog.csdn.net/xubin341719/article/details/8497830

2.內部文件文件:

3.程式碼路徑:

idh.code/kernel/drivers/power/sprd_2713_power.c

Dts:idh.code/kernel/arch/arm/boot/dts/sprd-battery.dtsi

電量百分比和內阻

sprdfgu_get_cur_rint

溫度和電流

sprdbat_charge_works

電量百分比和電壓

ocv-tab-vol = <4150 4100 4059 4024 3986 3946 3911 3881 3856 3833 3813 3797 3783 3769 3757 3742 3723 3695 3660 3620 3400>;

ocv-tab-cap = <100  95   90   85   80   75   70   65   60   55   50   45   40   35   30   25   20   15   10   5    0>;

記得chg-end-vol-l = <4150 >;和100%電壓同步,0%電壓用3400

庫侖計相關:

fgu-mode = <0>; 庫侖計模式

cnom = <1500>; 電池電量單位mAh

rint = <200>;    電池內阻 毫歐

Camera

(1)根據攝像頭模組廠打樣時的攝像頭擺放方向,配置好device\sprd\scx35\BoardConfigCommon.mk檔案內的前/後攝像頭方向。

若模組廠打樣時攝像頭拍照方向為橫屏,則TARGET_BOARD_BACK_CAMERA_ROTATION及TARGET_BOARD_FRONT_CAMERA_ROTATION設定為false,否則設定為true。

(2)idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/BoardConfig.mk檔案中CAMERA_SUPPORT_SIZE配置攝像頭的解析度(可比實際值大,可插值)、攝像頭通訊介面等

(3)    根據電路原理圖,在kernel/arch/arm/boot/dts/sprd-scx35_sp7731geaplus_pad_qhd.dts檔案中sprd_sensor處配置好前後攝像頭的pwdn、reset腳。

(4)       vendor/sprd/open-source/libs/libcamera/sensor內新增具體的攝像頭驅動。

(5) vendor/sprd/open-source/libs/libcamera/sc8830/src/sensor_cfg.c內設定前後攝像頭

除錯攝像頭時,要尤其注意VDDCAMA(2.8V)、VDDCAMIO(1.8V)、VDDCAMMOT(3.0V)這三個LDO的輸出電壓大小區別。客戶的模組廠在打樣時經常會忽視VDDCAMA、VDDCAMIO這兩個LDO的供電電壓輸出區別,從而造成攝像頭點不亮。因此在除錯時,如果出現攝像頭點不亮,可以嘗試跳線短接VDDCAMA(2.8V)、VDDCAMIO(1.8V),確認是否是這個問題。

專案中如果有前後攝像頭,在除錯時如果點不亮,也可以嘗試對調前後攝像頭的pwdn設定腳。在實際除錯中也時常出現模組廠將這連個引腳對調的問題。

Kernel/drivers/media/sprd_dcam/

Kernel/drivers/media/sprd_sensor /

Kernel/drivers/media/sprd_isp/

Dts修改:

Kernel 註冊的platform device  ,配置上電,reset相關引腳

sprd_sensor {

 compatible  = "sprd,sprd_sensor";

Kernel dts中i2c掛在,配置I2C地址

 [email protected]{

        compatible = "sprd,sensor_main";

        reg = <0x3c>;

 };

 [email protected]{

        compatible = "sprd,sensor_sub";

        reg = <0x21>;

 };

vendor/sprd/modules/libcamera/sensor

新增camera引數檔案目錄:

Eg:vendor/sprd/modules/libcamera/sensor/gc0409/

sensor_cfg.c中新增

extern SENSOR_INFO_T g_gc2355_mipi_raw_info;

camera引數到陣列中,

\vendor\sprd\modules\libcamera\Camera.mk

LOCAL_SRC_FILES+= \處新增

sensor/gc2355/sensor_gc2355_mipi_raw.c \

vendor\sprd\modules\libcamera\hal3\SprdCamera3Setting.cpp

const sensor_fov_tab_t front_sensor_fov_tab[] =裡新增

{"gc2355_mipi_raw", {2.828f, 2.156f}, 2.6865f},

hal3/SprdCamera3Setting.cpp新增到tab中

back_sensor_fov_tab

閃光燈:

\kernel\drivers\media\sprd_dcam\flash\flash_sgm3140.c

sprd_img_setflash

kernel\drivers\media\sprd_dcam\common\flash_test.c

int setflash(uint32_t flash_mode)

檢視camera幀率 adb shell logcat -v time | grep “got one frame”

閃光燈:

kernel/drivers/media/sprd_dcam/common/flash_test.c

kernel/drivers/media/sprd_dcam/flash/flash_sgm3140.c

Thermal

1. Remove thirdpart apk

modified:   vendor/google/products/gms.mk

modified:   vendor/ThirdpartApp/X5088LV/install.mk

+++ b/idh.code/vendor/google/products/gms.mk

@@ -1,4 +1,4 @@

-ifeq ($(MODULES_FEATURE_GMS),yes)

+ifeq ($(MODULES_FEATURE_GMS),no)

+++ b/idh.code/vendor/ThirdpartApp/X5088LV/install.mk

@@ -15,23 +15,7 @@ $(shell mkdir -p $(PRELOAD_WALLPAPER_DIR))

 ################

 PRODUCT_PACKAGES += \

-       Torch \

-       AgingTest \

-    SprdAppBackup \

-    LavaUpdateClient \

        LQLauncher_OLauncher_X5088LV \

-    Quickoffice \

-       SettingsService \

-       Snapdeal \

-       Saavn \

-       OLX \

-       CleanMaster \

-       Hike \

-       UC_Browser \

-       MonsterTruckSaga \

-    TempleParadiseDash \

-       Activation_Tracker \

-    360MobileSecurityLite

2.降低lcd背光亮度

3.降低充電電流

4.修改wifi功率,具體檔案射頻胡巧提供

vendor\sprd\open-source\res\productinfo\scx20_sp7731ceb_connectivity_configure.ini

5.降低audio功率,具體檔案由劉義華提供

\modem\X5088LV\nvitem.bin

\sprocomm_proj\X5088LV\device\sprd\scx20_sp7731ceb\audio_params\audio_para

6. 降低camera 幀率,具體檔案由萬飛提供,驅動也可以改

vendor/sprd/modules/libcamera/sensor/gc0409/sensor_gc0409_raw_param_v3.c

ivendor/sprd/modules/libcamera/sensor/ov5670/sensor_ov5670_raw_param_v3.c

New Procject

必須以X開頭,因為編譯指令碼buildall_eng.sh會檢查

                if [ ${first_ch} = "X" ] ; then

                        PROJECT=${newstr}

 cp sprocomm_proj/X5088LV/ sprocomm_proj/X4086M -R

 cp build/buildplus/buildspec/X5088LV.spec build/buildplus/buildspec/X4086M.spec 

 cp modem/X5088LV/  modem/X4086M -R

Key

Dts

compatible = "sprd,sci-keypad";

u-boot64/board/spreadtrum/sp7731ceb/key_map.h

Sensor

1.驅動

Kernel\driver\input\misc\

Sprocmm\X5088LV\device\sprd\scx20_sp7731ceb\BoardConfig.mk

2.Hal

vendor\sprd\open-source\libs\libsensors_sprd\

  新增CPP

  修改Android.mk

3.Init.rc

system/core/rootdir/專案對應的init.rc

4.Sepolicy

device\sprd\scx20\sepolicy\file_contexts

檢視gpio狀態Adb shell cat  /d/gpio

相容:

+BOARD_ACC_COMPATIBLE := true

GPIO

根據S3121_GPIO配置_V1.0.xls中找到BAT_ID,然後在會看到PROX_INT,然後在

u-boot64/board/spreadtrum/sp7731ceb/pinmap-sp7731.c中找到PROX_INT,註釋掉

PA:

kernel/arch/arm/mach-sc/board-sp7731ceb.c

u-boot64/board/spreadtrum/sp7731ceb/pinmap-sp7731.c

PRODUCT_COPY_FILES += 

夾具自動化測試:

kernel/drivers/autotst/

vendor/sprd/open-source/apps/autotest/

device/sprd/scx35/sepolicy/改許可權

相關推薦

入門精通不易珍惜

展訊驅動入門 fastboot download cmd:    fastboot flash uboot u-boot.bin    fastboot flash boot boot.img LCM code path: kernel/drivers/video/spr

【www.itechlife.net】使用容易 精通珍惜

專欄達人 授予成功建立個人部落格專欄

天書一般的gcc嵌入彙編(內聯彙編)似乎沒有選擇硬著腦瓜皮下去吧

 執行結果:(參考書籍《LInux核心完全註釋》,趙炯編著) 仿照手中自己編寫的程式碼: #include <stdio.h> #define mystrcpy(dest, source) \ ({ \ register char *mydest __asm__

整理不易珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼 7.spring與mybatis整合中Junit的測試 8.maven專案的啟動 9.Restful

整理不易,且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼

【無私分享:從入門精通ASP.NET MVC】從0開始一起搭框架、做專案(7.1) 模組管理驗證許可權展示模組列表

索引 簡述 今天我們來做模組管理的 展示 模組列表 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。

前端微專業JavaScript程序設計基礎篇:數組

start 數組創建 重要 dsc splice 程序 () tro eve 不論什麽一種語言數組都是比較重要的,其作為一種基礎對象應用非常多,如Java你肯定少不了集合(List,Map)這些。因此本篇主要記錄JS的數組使用和經常用法。要點例如以下:1,數組創建兩種方

生活的茍必將坦然面對慫了或許... ——自勉

在北京欣欣然,一切都該睡醒了。一些人兒認知的不可能,已經開始邁步前進了,不是嗎?這是不聽人勸必然面對的嗎? 選擇了就好好做把,畢竟,投資和收獲都是自己的,不就是這樣嘛生於憂患,死於安逸。自勉吧生活的茍且,必將坦然面對,慫了,或許... ——自勉

徐玉玉案有感——安全測試有風險珍惜

alt 現在 images 安全 黑客 滲透 工程師 log 感覺 徐玉玉案中黑客原來就是安全測試工程師,又稱滲透測試工程師; 滲透測試工程師換個說法又叫灰帽子:黑客的技術白客的心; 現在不少公司都在有在找滲透測試工程師; 但是這塊水很深,都沒黑過別人怎麽做

尊重開源珍惜

打包成 開源軟件 關於 ace 版權信息 sch arangodb 客戶 ted 摘要: ——致開源多模型數據庫ArangoDB 在中國市場的“山寨友” 今天在簡書讀到一篇文章,說的是關於 abuse 開源項目的協議開放性,突然之間產生了好大的共鳴。因為最近一直在負責德

Java入門-類HelloWorld是公共的應在名為HelloWorld.java的文件中聲明

world! void java源代碼 clas pan 保存文件 -h 明顯 命令行 public class HelloWorld { public static void main(String[] args) { System.ou

JS學習之路系列總結四象陣(此文猶如武林之中的筋經是你馳騁IT界的武功心法學會JS五大陣法就學會了JS博主建議先三才陣)

元素 ins dom 命名 aslist element 多個 及其 nod 四象陣法: 增加 刪除 改變 查找 【為了便於記憶,減少占用大腦內存,我命名為JS心法為:道陣法,兩儀陣法,三才陣法,四象陣法,五行陣法,只需記住陣法的關鍵字,即可搜索大腦中相應的內容,學

Oracle-4 - :超級適合初學者的入門級筆記:plsql基本語法記錄類型循環遊標異常處理存儲過程存儲函數觸發器

個人 就會 逗號 n) 循環結構 less 寫上 所有 targe 初學者可以從查詢到現在的pl/sql的內容都可以在我這裏的筆記中找到,希望能幫到大家,視頻資源在 資源, 我自己的全套筆記在 筆記 在pl/sql中可以繼續使用的sql關鍵字有:update delet

中國人的精神體現在在《經》中在《道德經》中在《論語》和《春秋》中那是一種對現實生活深沈的熱愛

商業 印度 世界 人的 裏的 們的 mda 什麽是 現實 作者:粵若稽古鏈接:https://www.zhihu.com/question/36129534/answer/250725916來源:知乎著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

瘋牛開啟最後階段珍惜1月5日行情分析

屬於 所有 mic 反彈 ack 向上 國內 span 一定的 今天更新比較早,在昨天晚間微博已經通知大家,歡迎將狂人加到特別關註,及時收到推送消息:狂人曾經在上一輪牛市告訴過大家一個牛市輪回的思路,不知道有多少人還記得,一個牛市大體上分為幾個階段:1.龍頭領漲;2.大面積

星球手機挖礦仿公信寶不要太明顯偽區塊鏈搜集用戶隱私?

加速 信用 信息 是什麽 復制。 必須 需求 進入 基於 昨天,網易上線了一款名為“星球”的區塊鏈產品,目前正在內測中,內測期間,用戶需要通過老用戶邀請方能註冊,新用戶註冊後可領取數字資產“黑鉆”。 看下面的文字之前,建議先看關於公信寶的稿子。標題為《公信寶PK李笑來Can

IT講師韓順平:創業不易尚矽谷延續教育初心

韓順平 泰牛程序員 尚矽谷 創業一、我是誰,為什麽從事IT培訓,並且一幹就是10多年 ? 我叫韓順平,是一名IT講師。從事IT培訓有10多年了,國內很多自學Java和PHP的朋友都看過我的視頻課程,算是有些知名度。 我03年從清華畢業,畢業後加入王誌東的點擊科技,在王誌東的帶領下參與開發了協同軟件和lava即

對於src路徑問題深層理解的實踐。對於輸出流write()兩個方法的源碼閱讀。

nco != gpo del ppi 本地 thead name println 根據昨天的總結,可深層理解圖片中src的路徑。所以今天實現了一個想法。就是路徑寫入的是Controller,然後自動去本地找。 其實就是將電腦的本地圖片 顯示出來。通過輸出流的方式。 代碼如下

零基礎到精通Linux從這篇文章開始

nginx 搭建 keepalive 課程 cat sta git分支合並 時機 sys 2018年想做Linux運維的人應該如何學習才能快速精通Linux? Linux入門這麽簡單,為什麽很多人學不會? 想要成為一個合格的運維工程師,到底怎麽才能從零開始精通Linux?

web頁面找不到資源文件報404但是資源文件存在路徑沒錯

環境搭建 思維 邏輯 資源 存在 lan 開始 details tails 如題 , 今天遇到這個問題,maven項目導入本地myeclipse,正常跑起來之後,在web端存在部分頁面資源加載不進來。 但是項目資源確實存在,一開始以為是myeclipse開發環境搭建錯誤導

2017年秋季校招前端面經(百度騰訊華為樂視等)

優勢 end 曾經 agg line 網上 秋季 期望 概念 華為實習生面試(人生第一面,4月份):那時候學了前端兩月有余,很多傻傻不知道。 面試官人蠻好的,問了很多我都不知道,所以什麽方面都問了一些,不過最後還是說了句,算你過了。 技術面:   自我介紹語言混,沒有邏輯