1. 程式人生 > >高通MSM平臺上的AMSS

高通MSM平臺上的AMSS

AMSS的source實際上是QC BREW(Binary Runtime Environment For Wireless)平臺的的底層部分,去掉了為應用程式提供介面的AEE(application execution environment)部分,高通在Dual Proc晶片上的其他平臺基本上都是採用的這樣的架構。所以如果要了解這套source的話有必要對BREW作一個基本的瞭解,不需要了解它應用程式的運作機制,只需要瞭解底層的作業系統,尤其是REX(Run Time Executive)的執行機制必須瞭解。
     首先我們來看看這套source的基本結構:
     |-- AMSS 
     |   |-- platform
     |   `-- products
     `-- AMSS_CUST
         `-- products
     AMSS是我們的source,包含platform以及我們對這個晶片提供的一些服務,所有服務都以TASK的形式存在products下。現在 source的配置是針對SURF的,如果是我們自己的板子就必須配置AMSS_CUST目錄下的3個配置檔案,然後拷貝到AMSS相應目錄下後重新編譯。3個檔案都是boot相關的,陳琦同學應該很清楚其中的配置~~
    |-- modem_proc 
    |   `-- drivers
    |       `-- boot
    |           |-- 7627
    |           |   `-- boot_mem_ddr.s
    |           `-- pm_vreg_target.h
    `-- secboot
       `-- cfg_data
           `-- 7627
               `-- ebi1
                   `-- ebi1.cfg
      下面我們來看看AMSS裡面的內容,首先來看看platform,platform為products下的TASK提供了底層執行環境包括L4 microkernel,CS(componet service),libstd(AEE的靜態庫),rte(run time enviroment) :
      |-- cs
      |-- l4
      |-- libstd
      `-- rte
      L4是微核心,提供地址空間,執行緒,IPC等功能;component service是在L4的基礎上提供了一個rte,提供了記憶體保護,執行緒建立,同步等功能,以前高通沒有釋出BREW的時候,要提供更多的系統服務都是在 CS新增的,QC定義了相關的介面可以讓你增加RTE所能提供的功能;libstd裡面包含了AEE的介面和一個靜態的AEE庫;rte裡面主要是一些和 IPC相關的內容。platform的內容我覺得我們只需要瞭解就行了,一般應該是不需要修改的,除了在CS中新增服務之外,不過這個應該也是很久以後的事情~~下面是MSM上面AMSS platform的架構:
          


     我們著重來看看products裡面的內容,在瞭解這部分source之前必須瞭解REX的一些特性。REX是一個搶佔式,多工的RTOS,所有的任務都以task的形式存在,REX提供包括任務建立,同步,互斥,計時器,中斷控制等功能的API,這裡的task實際上就是我們的執行緒,每個 task對應著一個執行緒。REX維護一個task list(雙向連結串列),始終執行高優先順序的task。products裡面所有的服務包括3g協議棧等都是以task的形式跑在rex之上的。
     瞭解了REX的基本特性,我們先overview一下products下面的類容:
`-- 76XX
    |-- 1x                              // Source code for CDMA 1X protocol
    |-- apps                          // Source code for some Brew apps such as core and ui
    |-- apps_proc                 // Applications boot loader
    |-- build                          // Trace32 JTAG script for building, build image, and log
    |-- core                           // Shared APIs folder
    |-- dal                             // Device abstract layer code
    |-- data                          // Source code for data services
    |-- drivers                      // Driver s for LCD, peripherals, etc.
    |-- hal                            // Hardware abstract layer code
    |-- hdr                           // Source code for high data rate protocol
    |-- modem                     // Modem AMSS source code
    |-- modem_proc            // Modem AMSS boot files
    |-- multimedia               // Multimedia files, including audio, video, etc.
    |-- nas                          // Source code for NAS layer protocol
    |-- secboot                   // Boot loaders, from PBL to OEMSBL
    |-- services                   // Source code for services
    |-- tools                        // Code for Flash operations
    |-- wcdma                     // Source code for WCDMA protocol
    `-- wconnect                // BT soc config and ftm(factory test mode)
    上面這些介紹只是給大家一個整體的印象,所有這些source都是通過Rex將其組織起來的,我們看看AMSS啟動以後執行狀態:
       
  


     所有的AMSS task以執行緒的方式執行在CS kernel process中,包括CS的核心服務,都是以task的形式執行在REX之上的。這裡的user process我猜測就是products/apps裡面的類容。看完這個圖以後我們再來詳細一下AMSS source的啟動流程:qcsbl_main_ctl會跳到l4 kernel,l4 kernel啟動好以後會啟動igunar server,然後啟動rex程序(執行 /service/tmc/mobile.c 裡的main函式 ),amss/rex以一個程序的方式執行在l4 microkernel之上,所有的task都是L4的一個執行緒。
     下面我們就仔細看看這個main函式,在這個main函式裡面首先會呼叫rex_init來初始化REX,這裡Qualcomm實現了一個 tmc(task manager controler)來作為rex啟動好以後的第一個TASK,最後由這個task啟動其他所有需要的task,並呼叫rex的系統函式對這些task進行管理,通過跟蹤這些task我們就能很完整地看到一個功能是如何從最上層的task到底層的驅動的,比如說pmic,nv,sim等這些服務都是以 task的形式執行在rex之上的。
      products/76xx/services/tmc.c 裡面的tmc_define_tasks這個函式通過的巨集的判斷來決定需要啟動哪些task,而這些巨集的控制又是通過products/76xx /build/ms/cust*******.h 和 products/76xx/build/ms/target******.h來控制的,在編譯的時候通過配置tsncjnlym.cmd之類的來控制一些編譯環境選項,以及那些模組需要編譯,通過這些cust或者target標頭檔案控制系統啟動以後哪些task會被系統啟動。我們看 products/76xx/services/tmc.c 下的tmc_define_tasks這個函式可以知道現在AMSS裡面支援多少TASK,這個4000多行的函式裡面全部都是呼叫rex系統函式 rex_def_task對task的定義,舉個nv的例子:
     5374       rex_def_task(&nv_tcb,
     5375                    (rex_stack_word_type*) nv_stack,
     5376                    NV_STACK_SIZ,
     5377                    (rex_priority_type) NV_PRI,
     5378                    nv_task,
     5379                    0L); 
     其中nv_task就是這個task的入口函式,我們跟蹤這個函式就能找到這個task的執行和呼叫過程。

相關推薦

MSM臺上AMSS

AMSS的source實際上是QC BREW(Binary Runtime Environment For Wireless)平臺的的底層部分,去掉了為應用程式提供介面的AEE(application execution environment)部分,高通在Dual Pro

平臺android開發總結 MSM臺上AMSS

1、高通平臺android開發總結 1.1 搭建高通平臺環境開發環境 在高通開發板上燒錄檔案系統 建立高通平臺開發環境 高通平臺,android和 modem 編譯流程分析 高通平臺 7620 啟動流程分析 qc

臺上AMSS(Modem端) windows環境搭建

高通平臺上的AMSS(Modeom端)Windows環境搭建 一、首先簡單介紹一下,高通平臺7&8系列平臺的軟硬體架構。 如圖: 硬體上採用的是ARM9+ARM11(最新的採用Cotex-A8或是Cotex-A9)的架構。其中Android是在ARM11上執行,而ARM9部分負責處理通

臺中gpio簡單操作和除錯

        做底層驅動免不了gpio打交道,所以對其操作和除錯進行了一下簡單的梳理 一、gpio的除錯方法         在Linux下,通過sysfs,獲取gpio狀態,也可以操作gpio。 1、獲取gpio狀態         cd /sys/kerne

計劃停用MSM 以SDM為移動平臺命名【轉】

據外媒報道,高通公司計劃停用驍龍移動平臺型號前面的MSM字樣,以SDM取而代之。驍龍835移動平臺(MSM8998)將是最後一款以MSM命名的驍龍移動平臺。下面就隨手機便攜小編一起來了解一下相關內容吧。  驍龍計劃取消MSM命名   報道稱,下一代驍龍旗艦移動平臺——驍龍845將以SDM845命名

創始人復盤30年發展歷程

金融 溝通 語音通話 中國政府 商都 如何 快的 月份 產生 美國西海岸時間12月12日,在聖叠戈高通總部,我們見到了久違的艾文·雅各布(Irwin Jacobs,以下簡稱艾文)。   這是一位已經被寫入傳奇的老人。   最早,他在大學學習的是酒店管理,但只學了一年半,就果

泛泰A820L (MSM8660 cpu) 3.4內核的CM10.1(Android 4.2.2) 測試版第二版

卸載 反饋 span lin clas wan 系統分區 漢化 sof 歡迎關註泛泰非盈利專業第三方開發團隊 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大師) loogeo

iOS 9 臺上 AFNetworking 框架 3.0 版本號解決的問題和問題解決

mon ans net 介紹 otto rac -a div das iOS 9 平臺上 AFNetworking 框架 3.0 版本號解決的問題和問題解決太陽火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商業用途-保持

Android臺上的Aplay與TinyAlsa移植使用

交叉編譯 過程 的人 android 接口 播放音頻 android平臺 lsa util ALSA是高級Linux聲音架構。提供了一系列音頻的邏輯接口,包括PCM、CONTROL等。這些,不影響它的使用,了解一下就可以。 在Android設備上,2.x的版本,要控制錄制播

android開發摘要

lun turn line 不同 ons subscribe master less ade 一部分是開源的。能夠從codeaurora.org上下載,另一部分是高通產權的。須要從高通的站點上下載。 將高通產權的代碼放到:vendor/qcom/proprietary1

ARM Cortex-A7架構,210系列-MSM8909

大廠 制作 平板電腦 客戶端 維護 電阻 電腦 .cn 其它 核心板特性 A7架構 4核(4*1.1GHz(A7)) 產品尺寸小,便於客戶集成,減少產品體積; 支持4G LTE超高速上網,單板兼容移動/聯通/電信2G/3G/4G; 支持2+32存儲器,Micro SD支持

CEO莫倫科夫:5G手機從2019年開始將成主流(轉)

ceo 進行 新的 智能 商業模式 設備 蘋果 手機加速 com 據路透社9月15日報道,高通公司首席執行官預測,首款符合下一代移動標準的5G手機將於2019年在全球主要市場上市,這比預測時間要早一年。   作為世界頂級智能手機芯片制造商,高通公司首席執行官史蒂文?莫倫科夫

階馬由無社照節意是被層速手濟被計但

ptr upm xor caff b2c cad acf c11 bbf 敬祭掠稼酵KGD遺顏認坊http://baobao.baidu.com/article/08abd83ea9f90cee888c3e65e38f11a9.html?n8hx/20171004/4e

QMI協議

int 網絡訪問 imu 以太網 location lock merge message gen QMI(Qualcomm MSM Interface,官方名稱應該是Qualcomm Message Interface)是高通用來替代OneRPC/DM的協議,用來與mode

微軟“出軌”,英特爾“正室”地位會受到影響嗎?

wzzx blank bbb bdd mds lan target zju log x7司偌儀7x淖謨桿l5屠階薪http://bjdsfzdsq.wikidot.com/5t茍信孟j9丈猛茁bj唐囪磺http://nlybjjszgz.wikidot.com/ik擅竊緩4

微軟、虧損數十億美元,為什麽心裏還樂開了花?

為什麽 花旗銀行 特朗普 進行 分享圖片 華爾街 相關 技術 9.1 近日關於微軟和高通新一季財報的報道占據了各大科技媒體的頭條。根據近日公布業績的微軟和高通財報。微軟當季實現營收289.18億美元,同比增長12%;高通當季實現營收61%,同比增長1%。但盈利卻是另一番景象

獎討論】AI、AR、物聯網、圖形圖...[]

z5z icc .cn qss www. mys log pos cnblogs bvdlth禾馴夷卻時狄http://www.58pic.com/c/12201501tz5z5b咕蜒侄範陜前http://www.58pic.com/c/122016674k4ceo凹址鈣上

HAL層之bmp18x.cpp

report handle and n) blog fine targe oat img 繼續上一個鏈接內容所講:http://www.cnblogs.com/linhaostudy/p/8430583.html 下面bmp18x sensor為例進行分析。 BMP18

Rose在虛擬化臺上Ukey的識別

src size vpd mark key 設備管理器 設備 vmw sha vmware的是添加上USB設備,然後插上就能識別Winow系統識別後在設備管理器可以看到如下設備: Rose在虛擬化平臺上Ukey的識別

如果1600億美元賣給博,中國手機廠商將何去何從?

高通近日據媒體報道,芯片業巨頭博通對高通的收購案在近日出現了新的進展。據知情人士透露高通願意接受高達1600億美元的收購價格。並且高通已經在配合博通進行收購前的盡職調查。不得不說高通這一巨大態度的轉變非常的耐人尋味,此前也有分析人士預計,博通將利用此次機會,對高通董事會進行清洗,最終完成收購。 看來不管是企業