高通MDM平臺開發入門

shawn4096發表於2018-11-01

原始碼下載

高通MDM平臺程式碼分為兩個部分:高通私有程式碼 以及 開源公有程式碼

針對某一個平臺,高通會提供一條基線,包括了私有程式碼的版本以及公有程式碼每個庫的revision

私有程式碼下載:請訪問https://chipcode.qti.qualcomm.com/ 找到對應的平臺以及基線,有git 下載路徑,需要許可權

公有程式碼下載:在基線中有codeaurora相關的repo下載路徑,找到對應的manifest即可下載,codeaurora的網頁地址為https://source.codeaurora.org/

目錄架構

apps_proc:APSS中的部分私有程式碼,以及對應的oe 編譯規則

boot_images:BootLoader 也就是sbl

cnss_proc:bluetooth 以及wlan的一些檔案

common:最後打包NON-HLOS映象,以及分割槽表

modem_proc:modem程式碼

rpm_proc:rpm程式碼

trustzone_image:tz程式碼

環境配置

MDM編譯包括MPSS、APSS、bootloader、RPM、TZBSP以及最後的NOHLOS-image映象打包

其中bootloader 也就是sbl ,以及tz ,rpm 採用arm編譯鏈,需要lisence,我們採用的是ARMCT5

MPSS也就是modem 採用高通的交叉編譯鏈 Hexagon,我們使用的是 6.4.05,可檢視高通文件安裝

APSS 一般要求在Ubuntu12.04 的64位機器上編譯 用的版本是 r2

其他安裝:

QPST

PYTHON 2.7.5 64 bit

USB driver

配置環境變數:

編譯sbl,tz,rpm時,新建setenv.sh:

export ARMTOOLS=RVCT41
export ARMROOT=${HOME}/DS-5
export ARMPATH=${ARMROOT}/bin
export ARMLIB=${ARMROOT}/lib
export ARMINCLUDE=${ARMROOT}/include
export ARMINC=${ARMROOT}/include
export ARMBIN=${ARMROOT}/bin
export ARMHOME=${ARMROOT}

如果有arm編譯伺服器,需要設定export ARMLMD_LICENSE_FILE=PORT@IP,IP為伺服器IP,PORT為伺服器埠

編譯MPSS時,新建setenv.sh

export ARMTOOLS=NONE
export HEXAGON_ROOT=${HOME}/Qualcomm/HEXAGON_Tools
export PYTHONBIN=`which python`
 

編譯產出

由於mdm一般用於比較低成本的裝置,所以以下都是預設nand flash

APSS:

    cd apps_proc/oe-core
    source build/conf/set_bb_env.sh

    build9640

    產物路徑:apps_proc/oe-core/build/tmp-eglibc/deploy/images/mdm9640
    映象:mdm9640-boot.img、appsboot.mbn、mdm9640-sysfs.ubi

SBL:

    cd boot_images/build/ms

    ./setenv.sh

    ./build.sh TARGET_FAMILY=9x45 --prod -j1

    產物路徑:boot_images/build/ms/bin/9x45/nand
    映象:ENPRG9x45.mbn、NPRG9x45.mbn、sbl1.mbn

MPSS:

    cd modem_proc/build/ms

    ./setenv.sh

    ./build.sh 9645.LEgen.prod  -k

    產物路徑:modem_proc/build/ms/9645.LEgen.prod
    映象:mba.mbn 、qdsp6sw.mbn

RPM:

    cd rpm_proc/build/ms

    ./setenv.sh

    ./build_9x45.sh

    產物路徑:rpm_proc/build/ms/bin/9x45
    映象:rpm.mbn

TZ:

      cd trustzone_images/build/ms
    ./build_9x45.sh

    產物路徑:trustzone_images/build/ms/bin/TAFAANBA
    映象:tz.mbn

COMMON:

    以上編譯完成後執行打包以及分割槽製作

    cd common/build

    python build.py
    產物路徑:common/build
    映象:partition.mbn、NON-HLOS.ubi

燒錄映象

在安裝完usb driver 以及qpst之後,插上樣機,會出現qdloader的USB 埠,這時可以使用qpst 燒錄映象,協議是firehorse

具體請參閱80-NP527-11 中的第4.4節,這裡不多做介紹

 

Reference:80-NP527-11_C_MDM9x40_MDM9x45_LE_Build_Integration.pdf

相關文章