come from :
3.2. amss 部分編譯
主要由以下部分構成:
adsp, boot, debug, modem, rpm, trustzone, wcnss,分別根據高通的說明編譯這些模組,不過其中有些模組我們不會改,直接用release的binary檔案就行,比如:debug,rpm,trustzone,wcnss。
3.3. 打包成可刷寫檔案
高通沒有提供乙個完整的製作可刷寫包的工具,我自己寫了乙個。
核心思想是執行:common/build/update_common_info.py生成non-hlos.bin和把system.img,userdata.img等大包分成小包,以及生成分割槽表。
pack.sh封裝了update_common_info.py,能夠生成乙個完整的可刷寫包。
3.4.2. 刷機過程
刷機完成後,自動重啟。
如果手機不能進入刷機模式,需要和硬體一起檢查是usb的問題,還是別的電路問題。
3.4.3. fastboot 刷機
如果手機裡面已經有分割槽表,可以通過fastboot來分別刷入不同的模組:boot.img system.img userdata.img
fastboot flash boot boot.img
3.5. 開機測試
這是最為關鍵的一部,需要根據log來定位問題。
一般可以通過串列埠和jtag工具來除錯,對於基於linux的智慧型手機來說,一般用串列埠工具來除錯已經足夠了。
串列埠log能夠打出從sbl1, lk到kernel的log,看看到底問題出在什麼地方?
下面是需要注意的:
➢ 修改硬體board_id
boot_images/core/boot/secboot3/hw/msm8974/boot_cdt_array.c
uint8 config_data_table[config_data_table_max_size] =
; ➢ ddr引數
手機能進如kernel,但是做kernel裡會死,從log上看,bitflip或者相關的問題。在這種情況下,需要修改ddr引數。
從晶元廠商獲取資料手冊,根據高通的說明來改動,改動後的資料放在
boot_images/core/boot/secboot3/hw/msm8974/boot_cdt_array.c
uint8 config_data_table[config_data_table_max_size] =
➢ 只編譯對應的dts
高通的**編譯時,把一大堆的dts都生成了,放在一起,這樣對我們的系統開發會造成不利影響。系統啟動時呼叫的dts不是我們所希望的,所以需要改動build系統,只編譯相關dts。
kernel/androidkernel.mk
-dts_files = $(wildcard $(top)/kernel/arch/arm/boot/dts/$(dts_name)*.dts)
+dts_files = $(wildcard $(top)/kernel/arch/arm/boot/dts/$(dts_name)*$(oem_project_name).dts)
kernel/arch/arm/mach-msm/makefile.boot
+ dtb-$(config_arch_msm8974) += msm8974pro-ac-pm8941-$(oem_project_name).dtb
➢ adb log
如果前面的問題都解決了,手機能進入kernel,就可以用adb log了。
$ adb shell cat /proc/kmsg |tee log.txt
3.6. 除錯好lcd和tp驅動
具體的除錯見4.1和4.2。
lcd,tp功能正常,手機能進入idle介面,能正常使用,usb連線正常。這樣bring-up工作就基本完成了。
高通平台手機開發之Sensor
4.6.sensor 高通文件 1 80 n7635 1 e snapdragon sensors core new sensor driver integration la.pdf 2 80 na157 92 c msm8974 snapdragon sensors core deep dive....
高通平台手機開發之Sensor
come from 4.6.sensor 高通文件 1 80 n7635 1 e snapdragon sensors core new sensor driver integration la.pdf 2 80 na157 92 c msm8974 snapdragon sensors core ...
高通平台LCD開發
lcd除錯主要有三個任務 1.供電 2.背光 3.lcd驅動 vdd 2.8v 給ic內部供電 vddio 1.8v 給gpio供電 mdss dsi0 qcom,mdss dsi mdss dsi0 qcom,mdss dsi ctrl0 1a94000 主要有兩個gpio需要配置,reset和t...