精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

嵌入式Linux調(diào)試變得更容易

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Mohammed Billoo ? 2022-07-04 09:15 ? 次閱讀

調(diào)試嵌入式 Linux 非常復(fù)雜,即使是最有經(jīng)驗(yàn)的嵌入式系統(tǒng)開發(fā)人員也面臨許多挑戰(zhàn)。但是,專門支持嵌入式 Linux 的可視化跟蹤診斷工具可以大大簡(jiǎn)化這項(xiàng)工作。

我的任務(wù)是開發(fā)一個(gè)定制的 Linux 驅(qū)動(dòng)程序來使用外部設(shè)備流式傳輸?shù)臄?shù)據(jù)。雖然 Linux 內(nèi)核有一些原生機(jī)制來確保驅(qū)動(dòng)程序的功能是正確的,但調(diào)試和評(píng)估性能遠(yuǎn)非簡(jiǎn)單。這就是為什么我決定測(cè)試新的跟蹤工具(例如支持嵌入式 Linux 的 Tracealyzer)是否以及如何幫助我,從分析驅(qū)動(dòng)程序和中斷處理程序,到檢查用戶空間應(yīng)用程序和編譯器選項(xiàng)。

我將跟蹤工具與基于 Yocto 的 Linux 發(fā)行版一起使用,首先在板支持包上構(gòu)建自定義層以啟用開源LTTng庫。這為作為 Linux 系統(tǒng)(包括內(nèi)核)的一部分執(zhí)行驅(qū)動(dòng)程序提供了許多有價(jià)值的觀點(diǎn)。它還讓我對(duì)驅(qū)動(dòng)程序有了更全面的了解,以確保沒有性能瓶頸或確定任何瓶頸的原因。

診斷跟蹤工具還可以幫助發(fā)現(xiàn) IRQ 處理程序中的性能問題,而無需使用可怕的 printk 語句。就我而言,它發(fā)現(xiàn)需要通過 I2C 總線確認(rèn)設(shè)備中斷以防止抖動(dòng)。如果不使用跟蹤工具,這個(gè)隱藏的錯(cuò)誤直到發(fā)布前不久移除無關(guān)的 printk 調(diào)用時(shí)才會(huì)被發(fā)現(xiàn)或顯現(xiàn)出來。該工具還揭示了在中斷處理程序中包含 printk 的嚴(yán)重影響。使用跟蹤工具有效地避免了在后期修改驅(qū)動(dòng)程序的需要,這會(huì)導(dǎo)致大量的延誤和成本。

使用跟蹤工具,我還能夠測(cè)試我的假設(shè),即設(shè)置進(jìn)程的 CPU 親和性將如何影響其性能。分析正常和高強(qiáng)度條件下不同執(zhí)行元素之間的交互,顯示了 Linux 內(nèi)核的盡力而為算法。這確定了 Linux 內(nèi)核調(diào)度程序和 iperf 代碼庫的某些區(qū)域以供進(jìn)一步調(diào)查。

在評(píng)估用戶空間性能時(shí),跟蹤工具可以更加強(qiáng)大。像大多數(shù)嵌入式軟件開發(fā)人員一樣,我開發(fā)針對(duì) Linux 系統(tǒng)的用戶空間應(yīng)用程序。將跟蹤工具的輸出與 LTTng 跟蹤點(diǎn)結(jié)合起來提供了一種寶貴的方法來幫助我確定我的應(yīng)用程序的執(zhí)行情況、識(shí)別任何異常行為并提供高級(jí)時(shí)序統(tǒng)計(jì)信息。然后,我可以使用該工具進(jìn)一步解決任何計(jì)時(shí)問題并提高應(yīng)用程序的性能。

我還發(fā)現(xiàn)跟蹤工具和 LTTng 庫的結(jié)合非常強(qiáng)大,可以幫助我快速了解某些編譯器選項(xiàng)對(duì)執(zhí)行浮點(diǎn)計(jì)算的用戶空間應(yīng)用程序性能的影響。通常,這種分析是在應(yīng)用程序完成但應(yīng)用程序性能不佳時(shí)進(jìn)行的,并且可能需要很多時(shí)間。在開發(fā)過程中使用該工具來驗(yàn)證軟件時(shí)序幫助我避免了對(duì)性能的影響。

總而言之,我發(fā)現(xiàn) Tracealyzer 等跟蹤工具可以成為發(fā)現(xiàn)隱藏錯(cuò)誤和優(yōu)化嵌入式 Linux 系統(tǒng)性能的強(qiáng)大元素。

諸如用于自上而下探索性分析的高級(jí)概述等功能,包括進(jìn)程交互、進(jìn)程分叉、CPU 使用率、RAM 使用率、I/O 使用率、文件使用率、狀態(tài)機(jī)和用戶定義的指標(biāo),提供了寶貴且直觀的跟蹤視圖,用于顯示細(xì)節(jié),在響應(yīng)性和清晰度方面可擴(kuò)展到大型 Linux 跟蹤。當(dāng)通過可定制的事件解釋適應(yīng)特定用例時(shí),任何用戶定義的數(shù)據(jù)集(例如間隔和狀態(tài)機(jī))都可以顯示在高度可配置的視圖中。最后,使用開源 LTTng 庫打開了廣泛的功能來探索嵌入式 Linux 設(shè)計(jì)的各個(gè)方面,從驅(qū)動(dòng)程序和中斷處理程序到用戶空間應(yīng)用程序和編譯器選項(xiàng)。在開發(fā)過程中使用這種組合不僅可以提高可見性,而且可以在過程的早期解決問題。從我經(jīng)驗(yàn)豐富的開發(fā)人員的角度來看,這避免了隱藏的錯(cuò)誤并節(jié)省了項(xiàng)目后期的時(shí)間和成本。

pYYBAGLCP1yAF4lgAACnzn1_cNE933.png

圖1。在評(píng)估自定義 Linux 內(nèi)核(如圖)時(shí),將開源 LTTng 庫與跟蹤工具結(jié)合使用可以揭示性能問題。

poYBAGLCP2WAOCuXAAGPdbbHYkA704.png

圖 2:此垂直跟蹤視圖使用垂直時(shí)間線顯示事件流。它從頂部開始,時(shí)間向下增長(zhǎng)。每列代表系統(tǒng)中的單個(gè)執(zhí)行上下文——通常是任務(wù)或中斷處理程序——列中的矩形顯示特定任務(wù)何時(shí)運(yùn)行。水平標(biāo)簽(左)標(biāo)記記錄的軟件事件。該圖是完全響應(yīng)的,因此放大可以顯示更多細(xì)節(jié)。

審核編輯:郭婷

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

    關(guān)注

    5068

    文章

    19021

    瀏覽量

    303326
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10826

    瀏覽量

    211160
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11230

    瀏覽量

    208932
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    掌握調(diào)試技巧是攻克嵌入式學(xué)習(xí)難點(diǎn)的關(guān)鍵

    就來說說嵌入式開發(fā)常見問題解決方法。 一、問題復(fù)現(xiàn) 穩(wěn)定復(fù)現(xiàn)問題才能正確的對(duì)問題進(jìn)行定位、解決以及驗(yàn)證。一般來說,越容易復(fù)現(xiàn)的問題越容易解決。 1.1 模擬復(fù)現(xiàn)條件 有的問題存在于特定的條件下,只需要模擬出現(xiàn)問題的條件即
    的頭像 發(fā)表于 11-18 11:10 ?260次閱讀
    掌握<b class='flag-5'>調(diào)試</b>技巧是攻克<b class='flag-5'>嵌入式</b>學(xué)習(xí)難點(diǎn)的關(guān)鍵

    什么是嵌入式操作系統(tǒng)?

    的戰(zhàn)斗機(jī)。 FreeRTOS:它適合那些資源有限的小型設(shè)備,就像小巧的瑞士軍刀。 QNX:它以安全和可靠著稱,很多汽車和工業(yè)系統(tǒng)都用它,可以說是EOS中的沃爾沃。 Linux:雖然它不是專門為嵌入式
    發(fā)表于 11-08 15:07

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)在各個(gè)領(lǐng)域扮演著越來越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作系統(tǒng)。 1. 硬件選擇 在配置嵌入式
    的頭像 發(fā)表于 11-06 10:22 ?229次閱讀

    【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植

    【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植
    的頭像 發(fā)表于 10-22 14:46 ?512次閱讀
    【北京迅為】i.mx8mm<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>開發(fā)指南第四篇 <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系統(tǒng)移植篇第六十九章uboot移植

    嵌入式系統(tǒng)的未來趨勢(shì)有哪些?

    會(huì)更加模塊化和集成化,允許容易的硬件和軟件的切換和升級(jí)。這會(huì)提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性,會(huì)使得系統(tǒng)能夠適應(yīng)不斷在變化的應(yīng)用需求。 5. 生態(tài)可持續(xù)性與環(huán)保材料 在嵌入式系統(tǒng)的設(shè)計(jì)以及在制造過程中
    發(fā)表于 09-12 15:42

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個(gè)復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開發(fā)、應(yīng)用程序開發(fā)等多個(gè)方面。以下是嵌入式Linux開發(fā)的基本步驟,以及每個(gè)步驟的說明。 硬件選擇 在開始
    的頭像 發(fā)表于 09-02 09:11 ?400次閱讀

    嵌入式linux開發(fā)板怎么操作

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺(tái)。它通常包括一個(gè)處理器、內(nèi)存、存儲(chǔ)器、輸入/輸出接口等硬件組件,以及一個(gè)基于L
    的頭像 發(fā)表于 09-02 09:09 ?327次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺(tái),它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。 嵌入式
    的頭像 發(fā)表于 09-02 09:07 ?335次閱讀

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)
    的頭像 發(fā)表于 07-26 08:36 ?268次閱讀
    【出版發(fā)行】<b class='flag-5'>嵌入式</b>系統(tǒng)原理與開發(fā)——基于RISC-V和<b class='flag-5'>Linux</b>系統(tǒng)

    專家力薦|《嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)》新書發(fā)售

    當(dāng)前,嵌入式系統(tǒng)已成為智能設(shè)備的核心之一,RISC-V+Linux的開源力量為嵌入式系統(tǒng)注入強(qiáng)大的創(chuàng)新動(dòng)力。作為中國RISC-V軟硬件生態(tài)領(lǐng)導(dǎo)者,賽昉科技與業(yè)界專家合作推出《嵌入式系統(tǒng)
    的頭像 發(fā)表于 07-24 08:20 ?527次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b>系統(tǒng)原理與開發(fā)——基于RISC-V和<b class='flag-5'>Linux</b>系統(tǒng)》新書發(fā)售

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識(shí)?

    知識(shí)點(diǎn)學(xué)習(xí) 熟悉 Linux 的基本使用對(duì)于嵌入式軟件開發(fā)至關(guān)重要。包括文件系統(tǒng)的管理、用戶權(quán)限的控制、軟件包管理等。嵌入式開發(fā)人員需要能夠在 Linux 環(huán)境下進(jìn)行開發(fā)、
    發(fā)表于 02-19 11:23

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機(jī)開發(fā)、SDK開發(fā)和驅(qū)動(dòng)開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?925次閱讀

    嵌入式自學(xué)好書推薦

    令、編輯器VI、編譯器GCC、調(diào)試器GDB以及Make項(xiàng)目管理工具、Shell和Makefile腳本編寫等知識(shí),并搭建嵌入式開發(fā)環(huán)境。推薦書籍:《Linux從入門到精通》。 無論從就業(yè)市場(chǎng)還是技術(shù)發(fā)展的角度來看,
    發(fā)表于 01-11 15:13

    IAR嵌入式解決方案發(fā)布全新版本

    軟件開發(fā)領(lǐng)域?qū)崿F(xiàn)了顯著進(jìn)展,引入了一系列增強(qiáng)功能,例如在Linux上進(jìn)行先進(jìn)的云調(diào)試和仿真。這次更新還包括Arm虛擬硬件(AVH)的集成和針對(duì)Linux的增強(qiáng)的IAR C-SPY調(diào)試
    的頭像 發(fā)表于 12-08 15:17 ?769次閱讀

    嵌入式開發(fā)為什么需要輸出調(diào)試信息?

    嵌入式開發(fā)為什么需要輸出調(diào)試信息? 因?yàn)檩敵?b class='flag-5'>調(diào)試信息是嵌入式開發(fā)中一項(xiàng)非常重要的實(shí)踐,它有助于保證軟件的可靠性、穩(wěn)定性和性能,也是故障排查的關(guān)鍵工具之一。
    發(fā)表于 11-28 16:46