日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高通android开发摘要

發布時間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通android开发摘要 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一部分是開源的,可以從codeaurora.org上下載,還有一部分是高通產權的,需要從高通的網站上下載。 將高通產權的代碼放到:vendor/qcom/proprietary

1. 設置bms一些參數

@msm-pm8226.dtsi中 
?? ?pm8226_bms: qcom,bms{
?? ??? ?qcom,low-soc-calculate-soc-threshold = <15>; //認為是低電壓的soc(15%)
?? ??? ?qcom,low-soc-calculate-soc-ms = <5000>; //低電壓情況下,計算soc 的時間間隔5s
?? ??? ?qcom,calculate-soc-ms = <20000>; //正常情況下,計算soc 的時間間隔20s
?? ??? ?qcom,v-cutoff-uv = <3400000>;//用于計算soc
?? ??? ?qcom,low-voltage-threshold = <3420000>;//用于設置關機低電壓
?? ?}

?

2.pm8909_bms設備樹節點

位于msm8909-qrd-skue.dtsi文件

?

&pm8909_bms {?
status = "okay";?
qcom,resume-soc = <95>;?
qcom,use-reported-soc;?

qcom,report-charger-eoc;? ?
qcom,force-bms-active-on-charger;?
qcom,battery-data = <&qrd_batterydata>;?
};

紅色部分是PMIC上報的充電事件,采用PMIC充電時采用,采用TI的BQ24296充電時不需要。

?

?

end-of-charge (EOC)

An apparatus and method for accurate end-of-charge (EOC) detection in a battery charger is provided. An EOC circuit determines that a battery has been fully charged when two conditions are met. The first condition for EOC detection is that the battery has reached a predetermined voltage and, as a result, the battery charger has transitioned to a constant voltage phase of the charging process. The second condition for EOC detection is that the battery current has fallen below a predetermined, set level. When both of these conditions are met, EOC is detected. This bi-condition EOC detection scheme is capable of accurate EOC detection, i.e. determining when the battery is fully charged.

?

3.MIPI LCD clock計算

在lk/dev/gcdb/display/gcdb_autopll.c的頻率計算方法中,是通過屏的參數,計算的mipi ?clk頻率

?

static void calculate_bitclock(struct msm_panel_info *pinfo)

?

4.\device\qcom\msm8909\mixer_paths_msm8909_pm8916.xml

?

此文件對應系統的system/etc/mixer_paths_msm8909_pm8916.xml,主要是針對收音機,聽筒,普通耳機,線控耳機和降噪,相關鏈接點擊打開鏈接

?

5.驗證RTC時間校準功能打開的方法:.檢測寄存器值:

adb shell
cd /sys/kernel/debug/spmi/spmi-0
echo 1 > count
echo 0x5A5B > address
cat data

80 ?未打開?D0 打開

?

6.主要的設備樹文件
?

?

7.MSM8909包含的子系統

APPS:Cortex-A7,啟動地址0xFC010000

RPM:Cortex-M3,Resource Power Manager資源功耗管理子系統,啟動地址0x00200000(subsystem vierw),0x0(system view)

Modem:MSS_QDS,調制解調(基帶)處理子系統

Pronto:ARM9TM

?

?

8.TLMM

MSM TLMM pinmux controller,Qualcomm MSM integrates a GPIO and Pin mux/config hardware, (TOP Level Mode?Multiplexer in short TLMM). It controls the input/output settings on the?available pads/pins and also provides ability to multiplex and configure the?output of various on-chip controllers onto these pads. The pins are also of?different types, encapsulating different functions and having differing register?semantics.

?

9.高通一些縮寫

QRD就是高通參考設計(Qualcomm Reference Design)

PBL:APPS PBL(Application Primary Boot Loader),主引導加載程序
RPM:Resource Power Manager,資源電源管理器
RPM(Resource Power Manager)是高通MSM平臺另外加的一塊芯片,雖然與AP芯片打包在一起,但其是一個獨立的ARM Core。之所以加這個東西,就是要控制整個電源相關的shared resources,比如ldo,clock。負責與SMP,MPM交互進入睡眠或者喚醒整個系統。
L2 TCM:Tightly-Coupled Memory,緊耦合內存
Some ARM SoC:s have a so-called TCM (Tightly-Coupled Memory). This is usually just a few (4-64) KiB of RAM inside the ARM processor.?
Due to being embedded inside the CPU The TCM has a Harvard-architecture, so there is an ITCM (instruction TCM) and a DTCM (data TCM). The DTCM can not contain any instructions, but the ITCM can actually contain data.


CDT: Configuration Data Table,包含CDB0: platform info信息和CDB1: DDR配置參數。
TZ:
PIL:Peripheral image loader
MBA:Modem Boot Authenticator,調制解調器引導認證
HLOS:High-level operation system,高級操作系統
Pronto image:


SMEM : shared memory
RPC : remote procedure call
QCSBL ?: qualcomm second bootloader
OEMSBL ?: oem second bootloader
AMSS ? ?: Advanced Mobile Subscriber Software
SDI : System Debug Image
QSEE : ?Qualcomm Secure Execution Environment
TZBSP ?: ?TrustZone BSP
SBL1:Scondary Boot Loader Stage1
MSS:Mobile Subscriber Software移動用戶軟件

?

?

WCD: wafer codec/decodec

WCN: wireless connectivity network

WTR: Wafer Transceiver

RTR: Radio Transceiver

QCA: Qualcomm Atheros

QFE: Qualcomm Front-end

RFFE: Radio Frequency Front-end

HDET: High Power Detector

ASM: Anntena Switch Module

MTP: Modem Test Platform

CDP: Core Development Platform

FFA: Form Factor Accurate

SURF: Subscriber Unit Reference Platform

XPU: Embedded Memory Protected Unit

UniPro: Universal Protocol

FLCB: Fast Low Current Boot

MSM: Mobile Station Modem

APQ: Application Processor Qualcomm

SRLTE:?Simultaneous ?Radio and LTE

?

QSD: Qualcomm Snapdragon

MDM: Mobile Data Modem

MPQ: Media Processor Qualcomm

QSC: Qualcomm Single Chip

PnP: Plug and Play

PBM: Phonebook Manager

FSG: A golden file system

modemst: modem efs partition

EDL:?Emergency Download

mbn: Modem Configuration binary

CV: customer visit

FFBM: fast factory boot mode

?

IPO: instant?power?on

MPM:modem power management

SMD:?Shared Memory Driver

PON:Power ON

Top Level Module Multiplex (TLMM) ?GPIO部分

------------------------------自己增加的

9.1 音頻部分

Low-Power Audio Subsystem (LPASS)、Application Subsystem (APSS) software、Audio Calibration Database (ACDB) and ACDB loader

?

10.kernel/drivers/power/reset/msm-poweroff.c文件下的download_mode控制死機是否重啟還是抓dump

?

節點?/sys/module/msm_poweroff/parameters/download_mode的值控制死機是否自動重啟

0為死機重啟

1為死機抓dump

?

11.抓取kmsg,logcat,event.log,dump一體的測試腳本工具

?

12.msm8909的只有一路CCI(Camera Control Interface) master,對應設備樹qcom,cci-master = <0>,msm8974有2路,大多數情況下只需要一路即可。

?

13.system\core\rootdir\init.rc可修改驅動和應用的權限

?

14.board-id

msm8909-1gb-qrd-skue.dts文件相關內容

qcom,board-id= <0x1000b 0xc>;

b對應于

uint32_t board_hardware_id()
{
return board.platform_hw;
}

?

c對應于

uint32_t board_hardware_subtype(void)
{
return board.platform_subtype;
}

15.\device\qcom\msm8909\BoardConfig.mk記錄了分區信息

?

16.boot_images/core/storage/tools/ptool/

ptool.py ? ? ? ? //分區生成工具 partition =========> rawprogram0.xml

Python ptool.py –x partition.xm

-rawprogram0.xml是高通代碼中帶的,根據partition.xml生成,也就是分區表,高通會給論證的emmc根據經驗值提供一個partition.xml 至于生成unspare格式,是方便QPST下載,python腳本就在NON-HLOS的common下面,搜下split

?

16.是否采用雙mic降噪

build\buildplus\namespace\names.ini文件下ro.qc.sdk.audio.fluencetype=none-----代表不采用雙mic降噪

fluence代表采用高通的fluece進行雙mic降噪

?

17.高通源代碼

高通的android代碼分為兩部分,一部分是開源的,可以從網站下載,需要知道要下載的代碼的分支及build id。另一部分是非開源的,需要從高通的另一個網站上下載,這個下載是有權限限制的,曉光的帳號可以下載代碼。后面這部分代碼需要放到第一部分代碼的vendor指定目錄下,可能是vendor/qcom-proprietary或vendor/qcom/proprietary,根據版本的不同有所區別。
高通平臺相關的東西基本都在vendor/qcom/proprietary下或device/qcom下

比如我們的msm8909平臺

./device/lge/mako/self-extractors/qcom
./device/asus/deb/self-extractors/qcom
./device/qcom
./system/qcom
./vendor/qcom
./vendor/qcom/opensource/fm/qcom
./hardware/qcom
./kernel/arch/arm/boot/dts/qcom
./kernel/arch/arm64/boot/dts/qcom
./kernel/drivers/firmware/qcom
./kernel/drivers/misc/qcom
./kernel/drivers/clk/qcom
./kernel/drivers/power/qcom
./kernel/drivers/soc/qcom
./kernel/include/linux/qcom
./kernel/include/soc/qcom

?

高通的代碼分兩部分:一部分是開源的,可以從codeaurora.org上下載,還有一部分是高通產權的,需要從高通的網站上下載。?
將高通產權的代碼放到:vendor/qcom/proprietary。?
編譯對應的目標:?
sourcebuild/envsetup.sh?lunch msm8974-userdebug?
$ make -j4?
編譯出來的有以下幾個目標文件:?
Boot.img emmc_appsboot.mbn system.img userdata.img

18?device\qcom\msm8909\WCNSS_qcom_wlan_nv.bin:WIFI射頻功率配置

此文件位于system/etc/firmware/wlan目錄下。

此文件在device\qcom\msm8909\msm8909.mk中有用到

?

19.USB默認工作模式

\device\qcom\msm8909\system.prop,修改persist.sys.usb.config=charging即可。

?

20.電池驅動,bms檢測到充電結束,通知battery驅動停止充電

POWER_SUPPLY_PROP_STATUS
This property is set by BMS whenever BMS detects end of charge
condition. Charger driver uses this to stop charging.
當BMS檢測到充電結束的情況,BMS設置此屬性來通知充電器多功能停止充電

21. BMS

Note that the Battery Management (BMS) supply is a special case as there is
a circular notification requirement of the STATUS (battery) and the CAPACITY
(bms) properties.
請注意,BMS是一個需要循環通知電池狀態和容量(bms)屬的特殊實例。

?

主要功能是基于周期性采樣VBAT(vattery voltage)來計算SOC(state of charge)

qcom,report-charger-eoc是BQ

qcom,use-reported-soc是默認。

?

22.rc文件

android通用的rc文件目錄:\system\core\rootdir\init.rc

qcom平臺共用的rc文件目錄:device\qcom\common\rootdir\etc

qcom特定型號處理器的rc文件目錄:比如device\qcom\msm8909

?

23?sensor dtsi對應的意思,比如camera的sensor

kernel/Documentation/devicetree/bindings/media/video/msm-cci.txt有說明

?

24.Serial Communication log can't be printed

Issue the following commands in root/device/qcom/common/rootdir/etc/init.qcom.rc
write /proc/sys/kernel/printk "7 6 1 7" ?

?

25.修改攝像頭預覽角度vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/configs/msm8937_camera.xml

<MountAngle>270</MountAngle>

?

26音頻增益db和數值對應關系

比如hardware/qcom/audio/configs/msm8937/mixer_paths_qrd_sku2.xml下相關內容

? ? <ctl name="ADC1 Volume" value="8" />
? ? <ctl name="ADC2 Volume" value="8" />
? ? <ctl name="ADC3 Volume" value="8" />
? ? <ctl name="DEC1 Volume" value="90" />
? ? <ctl name="DEC2 Volume" value="90" />

這些數值和dB對應關系,文檔《80_NV213_1EC_Audio_Tuning_Handbook.pdf》有相關描述

?

?

26.解析前需要確保vimlinux跟ramdump的一致性

$ strings vmlinux |grep "Linux version"
Linux version 3.18.31 (android@ubuntu) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Aug 9 23:23:27 CST 2017


$ strings DDRCS0.BIN |grep "Linux version"
Linux version 3.18.31 (android@ubuntu) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Aug 9 23:23:27 CST 2017

如果不匹配,無法繼續分析,若確認匹配后就可以執行解析

?

27.攝像頭驅動,Android7.1使用的HAL3對應Qcamera2以及ISPIF_V2

攝像頭在開機的時候會初始化一次,保證攝像頭的mediaserver是正常的,在這個過程中camera會上下電一次,每個攝像頭都會上下電一次

?

28.高通參考設計用I2C4掛載sensor,我們產品沒有sensor,用來掛載nfc,需要把vendor/qcom/proprietary/sensors/dsps/reg_defaults/sensor_def_qcomdev.conf文件相關內容去掉,可以去掉,只剩下面的

另外也要采用對應修改過devcfg.mbn,否則有問題,我遇到的問題是掛載i2c4的時候,在內核階段反復重啟。

?

29. 今天一直一個gpio驅動,在/dev/下看不到設備名,串口信息提示:

?could not find pctldev for node,/soc/xxx_gpio/xxx_gpio_active, deferring probe

后來發現原來是設備樹對應的節點掛載地方錯了。

30. PM8937和PMI8937

PMI是Power Management Integrated的縮寫,PM8937主要負責系統供電和音頻,PMI8937主要是作為充電功能

31. android9.0下sensor_def_qcomdev.conf的替換驗證

?

32. 攝像頭是否走高通內置ISP

如果外置ISP輸出是YUV數據格式,高通代碼識別處理后,就不走內置的ISP處理。

總結

以上是生活随笔為你收集整理的高通android开发摘要的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99久久伊人 | 色婷婷中文 | 中文字幕欧美色图 | 污污视频免费观看 | 三级视频网站在线观看 | 少妇逼逼| 免费h片在线观看 | 苍井空亚洲精品aa片在线播放 | 成人精品区 | 亚洲精久| 亚洲av人人夜夜澡人人 | 久久东京| 日本涩涩网站 | 一本色道久久88亚洲精品综合 | 亚洲www久久久 | 女同性αv亚洲女同志 | 亚洲一区二区三区在线免费观看 | 久久99激情 | 999www| 青青五月天| 草民午夜理伦三级 | 亚洲综合精品在线 | 日韩无码电影 | 天天骑夜夜操 | 毛片久久久久久 | 国产精品8 | 天堂网视频在线 | 国产成人精品一区二区三区免费 | 日韩中文字幕av | 一区二区在线 | 公侵犯人妻中文字慕一区二区 | 日本久久99| 欧美成人免费网站 | 国产欧美一区二区三区视频在线观看 | 又黄又爽在线观看 | 免费a视频在线观看 | 手机看片福利在线 | 青青操免费在线视频 | 日本免费电影一区二区三区 | 影音av资源 | 视频一区免费 | 91亚洲一线产区二线产区 | 成人精品在线视频 | 国产乱一区二区三区 | 日本午夜免费福利视频 | 在线国产日韩 | 中国1级毛片 | 日韩欧美亚洲天堂 | 免费视频黄色 | 精品无码一区二区三区爱欲 | 182tv福利视频 | 香港三级在线视频 | 免费一级特黄特色大片 | 青草视频在线免费观看 | 日韩黄色网络 | 国模小黎自慰gogo人体 | 1000部啪啪| 久久国产精品一区 | 日本人做受免费视频 | 日韩精品毛片 | 国产成人精品一区二区三区在线观看 | 69堂免费视频 | 青青草手机视频在线观看 | 高清不卡一区二区三区 | 欧美在线精品一区 | 日本不卡一二三 | 精品免费国产一区二区三区 | 亚洲精品福利网站 | 最新中文字幕在线观看 | 欧美成人va | 中国女人一级片 | 欧美 日韩 成人 | 亚洲熟妇一区 | 天天干视频| 91精品久久久久久久久久久 | 欧洲亚洲天堂 | 国产精品久久久久久久久毛片 | 污网在线观看 | 尤物久久| 国产网站免费 | 男女激情啪啪 | jizz精品| 国产精品日韩一区二区 | 精品一区二区三区在线播放 | 影音先锋每日资源 | 亚洲 小说 欧美 激情 另类 | 日韩精品久久久久久 | 人人干夜夜操 | 国产视频福利 | 午夜痒痒网 | 99久久伊人 | 鬼灭之刃柱训练篇在线观看 | 日韩性高潮 | 国产中文字幕91 | www.爆操 | 国产一区美女 | 国产无遮挡免费观看视频网站 | 欧美黄色小说视频 | 一边顶弄一边接吻 |