多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > MSM8909+Android5.1.1啟動流程(5)---app_init()

MSM8909+Android5.1.1啟動流程(5)---app_init()

來源:程序員人生   發布時間:2016-07-04 09:09:26 閱讀次數:6365次

MSM8909+Android5.1.1啟動流程(5)---app_init()

 

調用關系

kmain()--->bootstrap2()--->apps_init()

/* one time setup */ void apps_init(void) { conststruct app_descriptor *app; /*call all the init routines */ for(app = &__apps_start; app != &__apps_end; app++) { if(app->init) app->init(app); } /*start any that want to start on boot */ for(app = &__apps_start; app != &__apps_end; app++) { if(app->entry && (app->flags & APP_FLAG_DONT_START_ON_BOOT) ==0) { start_app(app); } } }

遍歷所有在__apps_start 到__apps_end段里的函數,并調用LK中所謂的app的init函數,然后調用start_app(app),哪些app被放入 boot thread section, 則定義在 include/app.h 中的 APP_START(appname),app.h文件中相干定義:

 

#define APP_START(appname) structapp_descriptor _app_##appname __SECTION(".apps") = { .name =#appname,

#define APP_END };

 

aboot_init 就將在這里開始被運行,androidlinux 內核的加載工作就在 aboot_init 中完成的 。aboot.c中的定義以下:

 

APP_START(aboot)

       .init= aboot_init,

APP_END

 

為了更好理解,看對應的system-onesegment.ld文件(該文件在”bootable\bootloader\lk\ build-目標平臺”目錄下),

system-onesegment.ld

.rodata : { *(.rodata.rodata.* .gnu.linkonce.r.*) .= ALIGN(4); __commands_start= .; KEEP(*(.commands)) __commands_end= .; .= ALIGN(4); __apps_start= .; KEEP(*(.apps)) __apps_end= .; .= ALIGN(4); __rodata_end= . ; }


 

原來,在其終究的連接文件里,是將需要啟動的apps括在了SECTIONS下的.rodata段中,且以__apps_start為開頭,以__apps_end標志結束(這里觸及到文件結構的部份內容,內容拓展可以看《程序員的自我修養—鏈接、裝載與庫》1書)。

正如網上所說“在 app 中只要像 app/aboot/aboot.c 指定就會在 bootloader bootup 時放入 thread section 中被履行”。這點我們可以直接在全部lk中搜索關鍵字“APP_START”會發現我們的bootloader中到底有多少個類似這樣的app(不同的bootloader情況有所不同):


圖1

 

可知滿足條件的app有pcitests、stringtests、tests、aboot、clocktests和shell

 

后面我們接著學習aboot_init()

 

 

參考:

平述factory reset     ——從main system到重引導流程

http://blog.csdn.net/loongembedded/article/details/51635999

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩乱轮| 欧洲美女a视频一级毛片 | 日本特黄特色aa大片免费 | 亚洲视频区 | 欧美 亚洲 一区 | 色婷婷91 | 免费爱做网站在线看 | 国产精品一二区 | 日韩在线一区二区 | 亚洲国产第一页 | 伊人久久五月天 | 国产18视频 | 看看免费a一片欧 | 中文字幕在线第一页 | 欧美男男激情videos高清不卡 | 欧美性生活视频免费播放网址大全观看 | 国产高清在线精品免费不卡 | 欧美黑人喷潮水xxxx | 一区二区三区免费 | 色综合小说久久综合图片 | 亚洲一区2区三区4区5区 | 国产三级精品三级在线观看 | 在线观看 日韩 | 亚洲嫩草影院久久精品 | 大美香蕉伊在看欧美 | www一级黄色片 | 久久www成人看片 | 免费羞羞 | 欧美一区二区三区免费播放 | 伊人精品视频在线 | 中文字幕乱码一区三区免费 | 国内精品久久国产大陆 | 波多野结衣四虎 | 日本特一级毛片免费视频 | 日本亚洲免费 | 波多野结衣视频一区二区 | 日本无卡αv免费视频 | 女人色图 | 欧美国产亚洲18 | 夜夜精品视频一区二区 | 欧美一区亚洲 |