色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>高通手機開機的全過程代碼詳細分析

高通手機開機的全過程代碼詳細分析

2019-12-02 | doc | 0.15 MB | 次下載 | 3積分

資料介紹

  本文試圖通過代碼來深入剖析Qualcomm手機開機的整個過程,即從按下開機鍵一直到出現(xiàn)待機界面,Qualcomm的手機軟件在整個流程中究竟完成了哪些工作。本文的主要目標是理清手機的初始化流程,并為今后Amoi定做初始化工作提供一個參考。

  一、開機的簡要流程分析

  Qualcomm的平臺軟件支持兩種啟動方式:一種是Nor Flash啟動方式,另外一種就

  是Nand Flash啟動方式。Nor Flash啟動方式就相當于硬件直接找到一個入口點開始執(zhí)行代碼,相比較而言會 比較簡單,且Amoi沒有采用此種方式,所以本文對于這種方式不做詳細分析。另外一種就是Nand Flash啟動方式,這種方式和PC的啟動方式比較相像,也是Amoi采用的Boot方式,下面將詳細分析在此方式下面的開機過程。

  按下開機鍵之后,將產(chǎn)生一個時鐘中斷,從而通知AMSS主芯片的Boot Load硬件去將放置于Nand Flash上面的第一個Block(8K)里面的Boot代碼Copy到內(nèi)核內(nèi)存(RAM,這個內(nèi)存應該是CPU自帶的內(nèi)存,同后面提到的SDRAM有一定區(qū)別,可以把它當作CPU的Cache)的0xFFFF0000地址,并開始執(zhí)行Boot代碼。Boot的主要任務是完成整個系統(tǒng)的硬件初始化工作(類似于PC上面的BIOS所完成的硬件自檢工作,至于Boot的詳細工作機制,后文會有詳細描述)。Boot所完成的工作里面,最重要的一件事就是會將整個手機軟件代碼(AMSS軟件包)拷貝到SDRAM中,并最后將控制權(quán)交給AMSS軟件。說白了,就是Boot執(zhí)行完成之后,代碼的執(zhí)行點將由Boot跳轉(zhuǎn)到AMSS軟件的的入口點函數(shù)main()。(此函數(shù)在mobile.c里實現(xiàn))。

  代碼運行到了Main()之后,在這個函數(shù)里面將完成操作系統(tǒng)(rex)的初始化工作,其實現(xiàn)方法是調(diào)用 rex_init()。Rex_init()完成的工作很簡單:

  1.完成操作系統(tǒng)必要的一些數(shù)據(jù)結(jié)構(gòu)(timer鏈表、任務鏈表等))的初始化之外;

  2.接下來,它創(chuàng)建了三個任務,分別是:rex_idle_task、rex_dpc_task和tmc_task。

  Idle任務沒什么好解釋的,目前這個任務為空,什么也沒做,dpc_task目前不知道是做什么的,暫時可以不用管。前面的這兩個任務都屬于操作系統(tǒng)層面的,由操作系統(tǒng)來維護,和手機軟件關系不大。哪一個和手機軟件關系大呢?答案是:tmc_task。大家可以把這個當作操作系統(tǒng)的入口(主)任務,也可以把它當作整個手機軟件的入口任務。即AMSS軟件里的所有其它任務的創(chuàng)建和維護就是由這個tmc_task來完成的。

  到此為止,整個AMSS軟件還并沒有跑起來,只是跑到了tmc_task里面了。在tmc_task里面,會調(diào)用tmc_init()來完成整個AMSS軟件包的初始化工作,其中最重要的一項工作就是調(diào)用tmc_define_tasks()將AMSS軟件包所有需要的任務都創(chuàng)建起來了。比如說slee_task、dog_task、cm_task、wms_task、ui_task等。這些任務,一般不需要直接和AL層軟件打交道,但請大家記住,手機上所有功能的實現(xiàn)最根本點就是由這些服務組件(Service Task)來完成的。將來大家跟蹤一個具體的功能模塊時,比如說通話模塊,如果需要,可以再去深入研究它的具體實現(xiàn)。

  好了,到現(xiàn)在為止,所有的AMSS核心軟件就全部跑起來了(手機的功能模塊,在軟件方面就體現(xiàn)為OS層面的一個任務)。但現(xiàn)在大家還根本看不到Brew和AEE的影子。呵呵,各位不要急。到了這個層面之后,我想稍微多說幾句。最早的Qualcomm平臺,比如說5xxx系列,是根本沒有Brew的,那個時候的AL(Application Layer)層軟件開發(fā),是直接調(diào)用底層Service task所提供的API來完成相應的工作的。從這種角度來看的話,顯然那時的開發(fā)是比較郁悶和難度較高的。不過,到了65xx之后,Qualcomm平臺引入了Brew,手機開發(fā)商就沒必要去從這么底層(Service API)的層面進行手機開發(fā)了,他們完全可以基于Brew來實現(xiàn)一臺手機的所有功能(Qualcomm給我們的參考代碼,就是全Brew平臺的)。

  Brew的運行環(huán)境AEE是如何跑起來的呢?關鍵在于ui_task(),由于ui_task和我們手機開發(fā)的關系非常密切,其地位也相當重要,所以,后文我將單獨對它進行一個深入的研究與分析。到目前為止,大家只需要知道ui_task將AEE加載起來了,并且,它起到了一個中間層的作用,即所有AMSS底層服務組件的消息,都將經(jīng)由ui_task而轉(zhuǎn)到AEE,并最終轉(zhuǎn)到具體的App(Applet)的執(zhí)行代碼里面(HandleEvent())。

  注意:

  1.上述的開機過程,在每一次按開機鍵都需要走一遍,即關機之后,整個系統(tǒng)的所有功能都將消失,而不像有些手機,看起來是關了機,但實際上底層還是有一些軟件模塊在跑。為什么可以肯定地說上述開機過程每次都必須走一遍,原因很簡單,因為我們的平臺軟件是基于Nand Flash啟動的,所有的代碼都需要Copy到SDRAM才能運行,而關機斷電之后,SDRAM里的東東會全部丟失,所以,毫無疑問,上述的過程必須每次開機都執(zhí)行;

  2.關機的過程相對比較簡單,系統(tǒng)檢測到關機中斷之后,將調(diào)用tmc_powerdown_handler()來完成關機動作,它將把所有AMSS的任務都Stop掉,并最后調(diào)用rex_exit()退出Rex,從而完成整個關機動作。

  3.顯然,關機動作前,如果有必要,每一個任務必須將它希望保存的信息保存到Flash上面,以便下次開機時可以得到這些信息;

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 嫩B人妻精品一区二区三区 内射一区二区精品视频在线观看 | 粗暴玩烂货调教 | 日韩欧美一区二区中文字幕 | 一级毛片免费下载 | 国产久久精品热99看 | 99国内精品| 国产精品 中文字幕 亚洲 欧美 | 黑人巨茎vide抽搐 | 国产欧美二区综合 | 处xxxx.88| 美丽的姑娘BD在线观看 | 午夜理伦大片一级 | 亚洲人成电影网站在线观看 | 影音先锋男人资源813. | 久久成人免费大片 | 国产一区二区在线免费观看 | 日本三级按摩推拿按摩 | 日日干夜夜爱 | 护士日本ⅹxxx丰满hd | 丰满少妇69激懒啪啪无码 | 男女又黄又刺激B片免费网站 | 国产三级精品三级在线观看 | 美国女孩毛片 | 2021国产精品一卡2卡三卡4卡 | 欧美亚洲另类丝袜自拍动漫 | 国内精品久久久久影院亚洲 | 国色精品VA在线观看免费视频 | jlzzzjizzzjlzzz亚洲 | 99久久国产露脸精品竹菊传煤 | 亚洲黄色片免费看 | 日本精品久久无码影院 | 国产精自产拍久久久久久蜜 | 娇小萝被两个黑人用半米长 | 久久精品午夜一区二区福利 | 国产伦精品一区二区三区免费 | 中文字幕无码A片久久 | 亚洲AV永久无码精品澳门 | 色欲AV色欲AV久久麻豆 | 99久久国产露脸国语对白 | 亚洲欧美综合视频 | 亚洲精品久久久久AV无码林星阑 |