在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在基于ARM的設(shè)計(jì)上調(diào)試Android平臺(tái)

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Achim Nohl ? 2022-06-22 11:04 ? 次閱讀

如果不觸及 Android 軟件堆棧的內(nèi)部,就無(wú)法在新設(shè)備上啟動(dòng) Android。雖然 Java 應(yīng)用層在很大程度上保持不變,但必須在 Java 原生層、硬件適配層以及底層 Linux 內(nèi)核及其驅(qū)動(dòng)程序中完成工作。此外,特定于設(shè)備的服務(wù)和應(yīng)用程序需要與 Android 的其余部分一起集成和測(cè)試。

在軟件堆棧中的所有這些層之間垂直集成設(shè)備功能是一個(gè)相當(dāng)大的挑戰(zhàn)。在單層中隔離和調(diào)試一個(gè)軟件模塊可能很困難;更重要的是,任何調(diào)試框架都不支持跨所有層調(diào)試多個(gè)交互模塊,因此需要耐心和許多 printf 跟蹤消息。

為了解決這個(gè)問(wèn)題,CoWare 開(kāi)發(fā)了適用于 Android 的 Virtual ARM 開(kāi)發(fā)板,它提供了一個(gè) Android 感知的調(diào)試和分析框架,支持確定性和連續(xù)的自上而下的調(diào)試方法。Android 意識(shí)首先通過(guò)檢測(cè)和跟蹤 ARM Linux 操作系統(tǒng)上下文(如中斷處理程序、內(nèi)核線程、驅(qū)動(dòng)程序和用戶空間進(jìn)程)的能力而引人注目。立即觀察進(jìn)程調(diào)度的能力可以洞察整個(gè)系統(tǒng)行為。

例如,圖 1 顯示了設(shè)備從深度睡眠掛起模式恢復(fù)后系統(tǒng)死鎖的在線上下文跟蹤。當(dāng)設(shè)備喚醒但未對(duì)任何按鍵或觸摸屏做出反應(yīng)時(shí),系統(tǒng)陷入軟件中斷 (swi) 處理程序和 Android 的輸入設(shè)備讀取器進(jìn)程 (InputDeviceRead) 之間的死鎖。通過(guò)這種分析,很明顯沒(méi)有其他重要進(jìn)程(例如窗口管理器)用于處理按鍵操作。

圖 1:在線上下文跟蹤顯示設(shè)備從深度睡眠掛起模式喚醒后出現(xiàn)系統(tǒng)死鎖。

pYYBAGKyhtmAKlueAAST-3qeqrY494.png

支持自上而下的調(diào)試流程,每個(gè)過(guò)程都可以在功能上進(jìn)一步研究到指令級(jí)。甚至可以跟蹤內(nèi)存訪問(wèn),從而可以有效地分析軟件堆棧中各層的行為。

圖 2 說(shuō)明了 Android 輸入設(shè)備讀取器進(jìn)程與內(nèi)核軟件中斷之間的函數(shù)級(jí)交互。識(shí)別實(shí)際執(zhí)行的代碼有助于隔離大型第三方軟件代碼庫(kù)中需要開(kāi)發(fā)人員注意的位置,并演示軟件如何跨各個(gè)層進(jìn)行交互。在圖 2 中,觀察 Android 中間件函數(shù) read_notify 如何觸發(fā)內(nèi)核軟件中斷 swi。

圖 2:調(diào)試 Android 用戶空間和 Linux 內(nèi)核之間的差距展示了軟件堆棧中跨層的行為。

poYBAGKyhuSAbQgcAAcKFUlts5Y684.png

分析解決方案集成了 Android 和 Linux 中存在的日志記錄和跟蹤功能。無(wú)需對(duì)軟件的任何部分進(jìn)行檢測(cè)或更改,Android 記錄器和內(nèi)核調(diào)試消息就會(huì)與之前引入的跟蹤一起被捕獲和可視化。這樣,開(kāi)發(fā)人員可以繼續(xù)使用那些具有附加值的工具,即所有日志和跟蹤都同步,并且可以輕松地與流程和軟件功能相關(guān)聯(lián),如圖 3 所示。

圖 3:開(kāi)發(fā)人員可以可視化 Android 記錄器和內(nèi)核調(diào)試消息以及之前引入的跟蹤。

pYYBAGKyhuyAGZmeAAalhULqiak481.png

請(qǐng)注意,Android 日志并沒(méi)有與重要的內(nèi)核調(diào)試消息分開(kāi),查看這些消息不再需要工作的用戶空間應(yīng)用程序(例如 dmesg 或 logcat)。當(dāng)系統(tǒng)損壞并且查看器應(yīng)用程序或調(diào)試橋不再運(yùn)行時(shí),通常需要訪問(wèn)跟蹤。一個(gè)示例是引導(dǎo)的早期階段或與深度睡眠模式之間的轉(zhuǎn)換。該分析解決方案通過(guò)虛擬平臺(tái)提供的非侵入式控制和檢查功能直接從嵌入式軟件中捕獲跟蹤。

虛擬 ARM 開(kāi)發(fā)板和工具通過(guò)強(qiáng)大的系統(tǒng)級(jí)分析工具補(bǔ)充了現(xiàn)有的 Android 開(kāi)發(fā)環(huán)境。該板可與使用 Android 調(diào)試橋的 Google Eclipse SDK 等工具配合使用。RealView Debugger (RVD)、Lauterbach 或 Data Display Debugger (DDD) 等最先進(jìn)的調(diào)試器可以使用板作為目標(biāo)而不是硬件來(lái)執(zhí)行嵌入式軟件調(diào)試(參見(jiàn)圖 4)。

這種高水平的可見(jiàn)性以及非侵入式檢查和可控性使調(diào)試 Android 成為一項(xiàng)更加簡(jiǎn)化和可預(yù)測(cè)的任務(wù)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5144

    文章

    19575

    瀏覽量

    315811
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3968

    瀏覽量

    129768
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1068

    瀏覽量

    47866
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ArkUI-XAndroid平臺(tái)動(dòng)態(tài)化開(kāi)發(fā)指南

    本文介紹如何在Android平臺(tái)進(jìn)行ArkUI-X動(dòng)態(tài)化開(kāi)發(fā),包括動(dòng)態(tài)化目錄規(guī)則及約束。 適用場(chǎng)景 動(dòng)態(tài)化主要包括兩個(gè)典型場(chǎng)景: 場(chǎng)景1:框架動(dòng)態(tài)化,為了降低應(yīng)用ROM體積占用,及滿足動(dòng)態(tài)升級(jí)框架
    發(fā)表于 06-15 23:33

    ArkUI-X構(gòu)建Android平臺(tái)AAR及使用

    本教程主要講述如何利用ArkUI-X SDK完成Android AAR開(kāi)發(fā),實(shí)現(xiàn)基于ArkTS的聲明式開(kāi)發(fā)范式android平臺(tái)顯示。包括: 1.跨
    的頭像 發(fā)表于 06-12 22:45 ?144次閱讀

    ArkUI-XAndroid上使用Fragment開(kāi)發(fā)指南

    本文介紹將ArkUI框架的UIAbility跨平臺(tái)部署至Android平臺(tái)Fragment的使用說(shuō)明,實(shí)現(xiàn)Android原生Fragment和ArkUI跨
    發(fā)表于 06-12 22:42

    ArkUI-X平臺(tái)差異化

    : 1.自身業(yè)務(wù)邏輯不同平臺(tái)本來(lái)就有差異; 2.OpenHarmony上調(diào)用了不支持跨平臺(tái)的API,這就需要在OpenHarmony上仍然調(diào)用對(duì)應(yīng)API,其他
    發(fā)表于 06-10 23:08

    ArkUI-X跨平臺(tái)框架接入指南

    的IDE編輯器進(jìn)行開(kāi)發(fā)和調(diào)試; ArkUI-X支持Android/iOS平臺(tái)真機(jī)和模擬器上運(yùn)行調(diào)試
    發(fā)表于 05-18 18:21

    Arm助力開(kāi)發(fā)者加速遷移至Arm架構(gòu)云平臺(tái) Arm云遷移資源分享

    隨著基于 Arm 架構(gòu)的云實(shí)例日益擴(kuò)展,越來(lái)越多的用戶正從傳統(tǒng)平臺(tái)遷移至 Arm 平臺(tái)上。
    的頭像 發(fā)表于 04-09 18:23 ?585次閱讀

    揭秘Chrome DevTools:從原理到自定義調(diào)試工具

    引言 Chrome DevTools 是前端開(kāi)發(fā)者的必備工具,不僅可以用于調(diào)試 Chrome 網(wǎng)頁(yè),還支持 Android WebView、 Roma (跨平臺(tái)開(kāi)發(fā)框架) 安卓&鴻蒙端 等平臺(tái)
    的頭像 發(fā)表于 03-04 14:49 ?590次閱讀
    揭秘Chrome DevTools:從原理到自定義<b class='flag-5'>調(diào)試</b>工具

    GD-LINK無(wú)法KEIL上調(diào)試怎么解決?

    芯片:GD32F303RCT6 調(diào)試器:GD-LINK 調(diào)試軟件:KEIL V5 (5.29) 問(wèn)題:開(kāi)始調(diào)試后,程序從SystemInit直接進(jìn)入HardFault中斷,程序無(wú)法運(yùn)行。 啟動(dòng)文件
    發(fā)表于 02-27 08:24

    Cadence Verisium Debug:統(tǒng)一調(diào)試平臺(tái),加速SoC設(shè)計(jì)

    Cadence的統(tǒng)一調(diào)試平臺(tái)Verisium Debug,為從IP到SoC級(jí)別的復(fù)雜設(shè)計(jì)提供了全面的調(diào)試解決方案。該平臺(tái)集成了多種調(diào)試功能,
    的頭像 發(fā)表于 02-17 11:10 ?673次閱讀

    瑞芯微開(kāi)發(fā)板/主板Android調(diào)試串口配置為普通串口方法

    ?本文介紹瑞芯微開(kāi)發(fā)板/主板Android調(diào)試串口配置為普通串口方法,不同板型找到對(duì)應(yīng)文件修改,修改的方法相通。觸覺(jué)智能RK3562開(kāi)發(fā)板演示,搭載4核A53處理器,主頻高達(dá)2.0GHz;內(nèi)置獨(dú)立
    的頭像 發(fā)表于 02-11 11:57 ?716次閱讀
    瑞芯微開(kāi)發(fā)板/主板<b class='flag-5'>Android</b><b class='flag-5'>調(diào)試</b>串口配置為普通串口方法

    Exynos4412開(kāi)發(fā)板上調(diào)試TVP5151,接口是攝像頭接口,預(yù)覽時(shí)沒(méi)有全屏,而且預(yù)覽圖像是黑白的,為什么?

    Exynos4412開(kāi)發(fā)板上調(diào)試TVP5151,接口是攝像頭接口,預(yù)覽時(shí)沒(méi)有全屏,而且預(yù)覽圖像是黑白的,沒(méi)有顏色,請(qǐng)問(wèn)有遇到過(guò)此問(wèn)題嗎?是系統(tǒng)側(cè)的問(wèn)題,還是TVP5151端輸出格式不對(duì),謝謝!
    發(fā)表于 01-10 08:00

    Arm推出GitHub平臺(tái)AI工具

    專為 GitHub Copilot 設(shè)計(jì)的 Arm 擴(kuò)展程序,可加速?gòu)脑频竭吘墏?cè)基于 Arm 平臺(tái)的開(kāi)發(fā)。
    的頭像 發(fā)表于 11-01 13:50 ?654次閱讀

    PLC遠(yuǎn)程編程調(diào)試平臺(tái)是什么

    、靈活的管理需求。為此,PLC遠(yuǎn)程編程調(diào)試平臺(tái)應(yīng)運(yùn)而生,為工業(yè)自動(dòng)化帶來(lái)了革命性的變革。 PLC遠(yuǎn)程編程調(diào)試平臺(tái)的定義 PLC遠(yuǎn)程編程調(diào)試
    的頭像 發(fā)表于 10-08 14:26 ?522次閱讀
    PLC遠(yuǎn)程編程<b class='flag-5'>調(diào)試</b><b class='flag-5'>平臺(tái)</b>是什么

    丟掉數(shù)據(jù)線,你還會(huì)調(diào)試Android設(shè)備嗎?

    ADB(AndroidDebugBridge)作為Android開(kāi)發(fā)中非常重要的工具,開(kāi)發(fā)者可以使用ADB設(shè)備電腦上對(duì)Android設(shè)備進(jìn)行安裝調(diào)
    的頭像 發(fā)表于 08-14 17:09 ?676次閱讀
    丟掉數(shù)據(jù)線,你還會(huì)<b class='flag-5'>調(diào)試</b><b class='flag-5'>Android</b>設(shè)備嗎?

    如何在服務(wù)器上調(diào)試本地FPGA板卡

    聯(lián)合開(kāi)發(fā)或者跑多策略工程的時(shí)候,一般都使用多核的服務(wù)器進(jìn)行FPGA設(shè)計(jì)。這個(gè)時(shí)候如果板卡在本地電腦上應(yīng)該怎么進(jìn)行調(diào)試呢? 今天就簡(jiǎn)單講講《如何在服務(wù)器上調(diào)試本地FPGA板卡
    發(fā)表于 07-31 17:36
    主站蜘蛛池模板: 男女交性无遮挡免费视频 | 午夜小影院| 欧美在线天堂 | 大杳蕉伊人狼人久久一本线 | 成人的天堂视频一区二区三区 | 一级做a爰片久久毛片鸭王 一级做a爰片久久毛片一 | 色综合视频在线观看 | 国产欧美乱码在线看 | 激情综合亚洲 | 天天操天天弄 | 欧美另类自拍 | 亚洲 欧美 91 | 奇米影视7777久久精品 | 久青草久青草高清在线播放 | 色多多在线观看高清免费 | 国产大片黄在线观看 | 超级黄色毛片 | 一级特黄毛片 | 一区二区三区视频在线观看 | 3p性小说| 成人做视频免费 | 精品香港经典三级在线看 | 亚洲光棍天堂 | 97就要鲁就要鲁夜夜爽 | 青娱乐啪啪 | 国产二三区| 69日本xxxxxxxxx78| 毛片色毛片18毛片美女 | 7799国产精品久久久久99 | 美女黄色毛片免费看 | 亚洲视频在线免费看 | 在线www 天堂网在线 | 午夜香蕉网 | 666精品国产精品亚洲 | 奇米77 | 亚洲欧美日韩在线观看你懂的 | 嫩草影院永久入口在线观看 | 女人牲交一级毛片 | 不卡无毒免费毛片视频观看 | 欧美色图888 | 天天爽天天爽天天片a久久网 |