入門雖易,精通不易,且學且珍惜!
展訊驅動入門
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地址
compatible = "sprd,sensor_main";
reg = <0x3c>;
};
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月份):那時候學了前端兩月有余,很多傻傻不知道。 面試官人蠻好的,問了很多我都不知道,所以什麽方面都問了一些,不過最後還是說了句,算你過了。 技術面: 自我介紹語言混,沒有邏輯