chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何使用靜態(tài)呼叫流瀏覽器更快地對嵌入式設(shè)備軟件進(jìn)行故障排除

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Hari Nagalla ? 2022-11-21 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

由于具有射頻連接和微控制器內(nèi)核的低成本集成片上系統(tǒng)設(shè)備的進(jìn)步,物聯(lián)網(wǎng)IoT) 設(shè)備呈指數(shù)級增長。

其中許多設(shè)備主要基于Arm? Cortex-M?架構(gòu)。隨著硬件的進(jìn)步,嵌入式軟件在跟上新的連接協(xié)議、協(xié)議棧和框架方面發(fā)揮著重要作用。

然而,連接設(shè)備的激增給嵌入式軟件工程師帶來了挑戰(zhàn),尤其是同時在多個設(shè)備和框架上工作的應(yīng)用程序和維護(hù)工程師。

了解新設(shè)備軟件、框架和協(xié)議棧的工作原理可能非常耗時,并且會限制工程師快速解決問題的能力。設(shè)計(jì)文檔和內(nèi)聯(lián)源代碼注釋可能會有所幫助,但它們可能不容易訪問,并且可能無法全面了解代碼的工作原理。

在這些情況下,工程師依靠他們的獨(dú)創(chuàng)性、足智多謀和使用集成開發(fā)環(huán)境 (IDE) 的源代碼瀏覽。雖然這在嘗試?yán)斫廛浖a流時有所幫助,但這是一個耗時且乏味的過程,并且有更好的方法。

在本文中,我將介紹一種使用現(xiàn)有工具鏈實(shí)用程序來生成軟件的靜態(tài)函數(shù)調(diào)用層次結(jié)構(gòu)并更快更好地理解軟件流的新方法。

函數(shù)調(diào)用跟蹤的常見類型

可以使用函數(shù)調(diào)用跟蹤來了解代碼流或識別 bug。比較成功和失敗方案之間的程序流(通過函數(shù)調(diào)用跟蹤)可以幫助您快速識別代碼中存在問題的區(qū)域,以便進(jìn)一步檢查。

函數(shù)調(diào)用跟蹤補(bǔ)充了基于 IDE 的源代碼瀏覽,以更好地了解整個軟件實(shí)現(xiàn),并且可以分為兩個常見類別:

運(yùn)行時函數(shù)調(diào)用跟蹤。這是一個侵入性的過程,需要檢測源代碼。像 GNU Compiler Collection 這樣的工具鏈提供了放置函數(shù)調(diào)用的檢測,這需要重建代碼來重新生成新的二進(jìn)制文件,但會導(dǎo)致額外的代碼大小和更長的執(zhí)行時間。對于缺少內(nèi)存的資源受限的 IoT 設(shè)備,運(yùn)行時函數(shù)調(diào)用跟蹤可能不是一個可行的選擇。此外,您無法保證檢測的代碼的行為與未檢測的代碼相同。

靜態(tài)函數(shù)調(diào)用。對于基于只讀存儲器 (ROM) 的設(shè)備,檢測不是一個可行的選擇。盡管您可以簡單地使用 Eclipse 或 Source Insight 等 IDE 瀏覽源代碼以了解軟件實(shí)現(xiàn),但這是一個繁瑣的過程。一些 IDE(通常是昂貴的商業(yè)版本)可以派生靜態(tài)函數(shù)調(diào)用圖。這些靜態(tài)函數(shù)調(diào)用瀏覽器通常范圍有限,如果源代碼中有條件編譯,則可能無法提供整個調(diào)用流的準(zhǔn)確圖片。

但是,可以從二進(jìn)制可執(zhí)行和可鏈接格式 (ELF) 文件生成靜態(tài)調(diào)用流瀏覽器,該文件反映了實(shí)際的二進(jìn)制代碼。

使用靜態(tài)呼叫流瀏覽器更快地修復(fù)軟件

讓我們使用設(shè)備的 ELF 二進(jìn)制映像來生成函數(shù)調(diào)用引用詳細(xì)信息。如圖 1 所示,其思路是獲取 ELF 二進(jìn)制文件,并通過各種代碼生成工具(如 TI 的目標(biāo)文件顯示 (armofd) 和拆裝器 (armdis) )傳遞它,以生成函數(shù)列表和調(diào)用引用數(shù)據(jù)庫。生成數(shù)據(jù)庫后,在簡單的樹瀏覽器中顯示調(diào)用層次結(jié)構(gòu)和流,以查看函數(shù)調(diào)用引用。這些靜態(tài)調(diào)用流圖還可以通過將運(yùn)行時 ROM 代碼消息日志覆蓋在靜態(tài)函數(shù)樹的頂部來幫助調(diào)試 - 這種組合將提供對運(yùn)行時代碼流的洞察并幫助您隔離問題。

pYYBAGN7GmKAR_u_AAFtC8PlGFA735.png

圖 1:ELF 文件格式

二進(jìn)制文件 (ELF) 分析

該ELF文件包含一個程序頭,節(jié)頭,以及代碼和數(shù)據(jù)節(jié)。工具鏈提供了各種工具來檢查和以可讀格式顯示 ELF 二進(jìn)制文件內(nèi)容。在 TI,我們使用 armofd 和 armdis 等實(shí)用程序名稱來獲取 Arm 反匯編中的功能詳細(xì)信息和完整的程序編碼。

pYYBAGN7GmqALZYUAADzD0d8ZGg045.png

圖2:靜態(tài)函數(shù)分析的過程

解析引擎遍歷反匯編代碼,并通過帶鏈接的分支 (BL) 和帶鏈接和交換的分支 (BLX) 指令檢查函數(shù)調(diào)用,查找每個函數(shù)的所有調(diào)用函數(shù),并填充函數(shù)數(shù)據(jù)庫。數(shù)據(jù)庫本身被安排為Adelson-Velsky和Landis自平衡搜索樹,以便快速搜索和瀏覽。

編譯器優(yōu)化可能會通過直接分支到被調(diào)用的函數(shù)來扭曲某些函數(shù)調(diào)用。這些函數(shù)沒有任何堆棧分配,因此解析引擎需要足夠智能才能檢測這些編譯器優(yōu)化。

函數(shù)瀏覽器

稱為 Java 幀 (JFrames) 的簡單圖形用戶界面 (GUI) 界面為函數(shù)調(diào)用瀏覽選擇感興趣的函數(shù)。選擇一個函數(shù)將顯示兩個幀,一個用于“被調(diào)用方/被調(diào)用函數(shù)”,另一個用于“被調(diào)用自”函數(shù)。這些幀顯示具有進(jìn)一步節(jié)點(diǎn)擴(kuò)展的分層樹結(jié)構(gòu),如圖 3、4、5 和 6 所示。

瀏覽器圖形用戶界面

函數(shù)列表顯示所有可用函數(shù),使您能夠選擇感興趣的函數(shù)來瀏覽參考文獻(xiàn)。

pYYBAGN7GnGAFEtaAAGDeVrYZL4756.png

圖 3:功能列表顯示

可以在樹中進(jìn)一步向下導(dǎo)航以查看函數(shù)調(diào)用的可能性。

pYYBAGN7GnmAbdZbAAGZpw-V-lU508.png

圖 4:調(diào)用的函數(shù)引用

poYBAGN7GoOAOxy6AACo9zMJYR0595.png

圖 5:從引用調(diào)用

poYBAGN7GoqAaUSlAAIveYQZPpM392.png

圖 6:功能列表 GUI

簡化軟件

通過使用此方法從二進(jìn)制映像派生靜態(tài)調(diào)用流程圖,您現(xiàn)在可以更好地了解軟件功能流,并補(bǔ)充源代碼瀏覽,以更深入地了解軟件實(shí)現(xiàn)。最重要的是,這種方法可以加快流程并使故障排除軟件更簡單。

審核編輯:郭婷

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

    關(guān)注

    48

    文章

    7953

    瀏覽量

    155119
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317647
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2931

    文章

    46251

    瀏覽量

    392678
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    老電視如何安裝瀏覽器?

    2017年購買的夏普老電視,1.5G+8G存儲,網(wǎng)上下的瀏覽器APK文件在電視內(nèi)打開就彈出“解析程序包出現(xiàn)問題”。 未知來源選項(xiàng)已打開,存儲空間清空到只剩下三個應(yīng)用(只占用300M左右),基本可
    發(fā)表于 06-01 18:57

    嵌入式軟件行業(yè)增長驅(qū)動因素

    嵌入式軟件在物聯(lián)網(wǎng)應(yīng)用中至關(guān)重要,因?yàn)樗芾?b class='flag-5'>設(shè)備操作、控制傳感、支持連接并確保數(shù)據(jù)安全。例如,在智能家居中,恒溫、安全攝像頭和燈光等
    的頭像 發(fā)表于 05-09 11:26 ?346次閱讀

    嵌入式軟件單元測試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測試? ?嵌入式系統(tǒng)的特殊性? 在汽車 ECU、醫(yī)療設(shè)備控制等場景中,
    的頭像 發(fā)表于 03-21 14:53 ?468次閱讀

    嵌入式軟件測試技術(shù)深度研究報告

    嵌入式軟件測試技術(shù)深度研究報告 ——基于winAMS的全生命周期質(zhì)量保障體系構(gòu)建 一、行業(yè)技術(shù)瓶頸與解決方案框架 2025年嵌入式軟件測試領(lǐng)域面臨兩大核心矛盾: ? 安全合規(guī)與開發(fā)效率
    的頭像 發(fā)表于 03-03 13:54 ?361次閱讀

    嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    設(shè)備和智能傳感)上,這些設(shè)備通常具有有限的計(jì)算能力、存儲空間和功耗。本文將您介紹嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性,以及常見的機(jī)器學(xué)習(xí)開發(fā)軟件與開發(fā)
    的頭像 發(fā)表于 01-25 17:05 ?664次閱讀
    <b class='flag-5'>嵌入式</b>機(jī)器學(xué)習(xí)的應(yīng)用特性與<b class='flag-5'>軟件</b>開發(fā)環(huán)境

    E2000 Speedometer測試瀏覽器性能

    的東西更新到Chrome中,是經(jīng)過Google進(jìn)行了封閉、定制和優(yōu)化的版本。 Chrome 瀏覽器瀏覽器基準(zhǔn)測Speedometer中的得分和整體性能出色(如下圖)。 (截圖摘自:11款常用
    發(fā)表于 01-10 21:33

    Chrome瀏覽器優(yōu)化Android性能,驍龍8至尊版表現(xiàn)突出

    谷歌近日對Chrome瀏覽器的最新版本進(jìn)行了重大更新,特別針對Android設(shè)備進(jìn)行了性能優(yōu)化,特別是對于搭載驍龍8至尊版處理的旗艦
    的頭像 發(fā)表于 12-13 14:44 ?1133次閱讀

    AWTK 最新動態(tài):支持瀏覽器控件

    導(dǎo)讀AWTK瀏覽器控件,基于webview項(xiàng)目實(shí)現(xiàn),將瀏覽器嵌入到AWTK應(yīng)用程序中,讓開發(fā)者可以方便的集成在線幫助和調(diào)用地圖等功能。awtk-widget-web-view是基于webview實(shí)現(xiàn)的AWTK
    的頭像 發(fā)表于 11-20 01:05 ?656次閱讀
    AWTK 最新動態(tài):支持<b class='flag-5'>瀏覽器</b>控件

    寫一個Chrome瀏覽器插件

    一、什么是瀏覽器插件 瀏覽器插件是依附于瀏覽器,用來拓展網(wǎng)頁能力的程序。插件具有監(jiān)聽瀏覽器事件、獲取和修改網(wǎng)頁元素、攔截網(wǎng)絡(luò)請求、添加快捷菜單等功能。使用
    的頭像 發(fā)表于 11-18 17:12 ?1055次閱讀
    寫一個Chrome<b class='flag-5'>瀏覽器</b>插件

    TTL電路的故障排除技巧

    的工作原理有一個清晰的理解。TTL電路的基本單元是邏輯門,包括與門、或門、非門等。了解這些基本單元的工作原理和特性,可以幫助我們更快地定位問題。 2. 視覺檢查 在開始故障排除之前,進(jìn)行
    的頭像 發(fā)表于 11-18 10:35 ?1254次閱讀

    電抗故障診斷和排除方法是什么?

    電抗是一種常用于電力系統(tǒng)中以限制電流突變和調(diào)整電壓的設(shè)備。由于其工作環(huán)境的嚴(yán)酷性和重要性,故障診斷和排除就顯得尤為重要。以下是干
    發(fā)表于 11-13 10:32

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式系統(tǒng),顧名思義,是將計(jì)算機(jī)的硬件和軟件
    的頭像 發(fā)表于 10-16 10:14 ?2616次閱讀

    跨域問題是由瀏覽器的同源策略造成的

    瀏覽器
    jf_62215197
    發(fā)布于 :2024年08月27日 07:51:42

    不只是前端,后端、產(chǎn)品和測試也需要了解的瀏覽器知識(二)

    過程中不斷創(chuàng)新,推動產(chǎn)品性能、用戶體驗(yàn)的提升,來實(shí)現(xiàn)業(yè)務(wù)的增長,創(chuàng)造可持續(xù)的價值 。 一、 業(yè)務(wù)系統(tǒng)呈現(xiàn)給用戶的節(jié)點(diǎn) 當(dāng)用戶訪問我們的業(yè)務(wù)系統(tǒng)時,瀏覽器和服務(wù)之間會進(jìn)行一系列復(fù)雜的交互過程。
    的頭像 發(fā)表于 08-12 14:32 ?665次閱讀
    不只是前端,后端、產(chǎn)品和測試也需要了解的<b class='flag-5'>瀏覽器</b>知識(二)

    嵌入式軟件開發(fā)與AI整合

    嵌入式軟件開發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式
    的頭像 發(fā)表于 07-31 09:25 ?1370次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發(fā)與AI整合