如何有效使用RISC-V的跟蹤技術(shù)
作者:IAR
在嵌入式軟件開發(fā)中,利用完整的應(yīng)用跟蹤,可為開發(fā)人員分析其產(chǎn)品行為提供無限的可能性。通過對(duì)應(yīng)用程序的全面了解,他們可以跟蹤每一條指令,看看他們的應(yīng)用程序是否按照預(yù)期運(yùn)行,或者是否出現(xiàn)錯(cuò)誤或漏洞。那么,如何才能最大化地利用現(xiàn)有可用的RISC-V跟蹤呢?
【資料圖】
什么是跟蹤?
與傳統(tǒng)的通過設(shè)置斷點(diǎn)、printf等進(jìn)行調(diào)試相比,跟蹤更像是在不打擾的情況下觀察你的應(yīng)用程序?;旧?,開發(fā)人員可以在不干擾程序的情況下觀察整個(gè)程序的工作情況。跟蹤包括完整的指令執(zhí)行流程(不需要printf也不需要UART),一旦跟蹤數(shù)據(jù)被捕獲,你可以快速追溯,并隔離異常和硬故障。
這使得尋找那些罕見的、依賴于執(zhí)行順序的漏洞變得更加容易,因?yàn)檫@提供了一串線索:程序執(zhí)行是怎么樣的,按什么順序執(zhí)行的。這使開發(fā)人員能夠準(zhǔn)確地了解它們是如何以及為什么總是會(huì)停在一串特殊的代碼上。你可以迅速發(fā)現(xiàn)異常和硬故障,進(jìn)而發(fā)現(xiàn)那些罕見的、依賴于執(zhí)行順序的錯(cuò)誤。如果沒有跟蹤,當(dāng)你的程序出現(xiàn)崩潰,就很難重現(xiàn)實(shí)際發(fā)生的情況。
然而,跟蹤不僅僅是為了發(fā)現(xiàn)錯(cuò)誤。跟蹤還可以進(jìn)行代碼剖析、代碼覆蓋等,你可以實(shí)時(shí)了解你的設(shè)備的行為。性能和覆蓋率監(jiān)測是強(qiáng)大的功能,當(dāng)你有跟蹤功能時(shí),就可以實(shí)現(xiàn)這些強(qiáng)大的功能。如果你的帶寬夠?qū)?,甚至可以將?shí)時(shí)跟蹤流整合到你的調(diào)試器中。
RISC-V的跟蹤技術(shù)
RISC-V組織的主要關(guān)注點(diǎn)之一是為RISC-V制定標(biāo)準(zhǔn)化的規(guī)范。對(duì)所有RISC-V成員開放的各種工作小組,目前正專注于開發(fā)制定這些規(guī)范。其中一個(gè)例子是處理器跟蹤工作組,該工作組在2020年2月批準(zhǔn)發(fā)布了處理器跟蹤規(guī)范。另一個(gè)例子是Nexus跟蹤小組,該小組致力于研究如何使用Nexus IEEE-ISTO 5001?標(biāo)準(zhǔn)針對(duì)RISC-V內(nèi)核定義的跟蹤技術(shù)。
這類工作將持續(xù)進(jìn)行,因?yàn)楸仨毧紤]跟蹤標(biāo)準(zhǔn)的所有方面。其中,包括跟蹤控制的輸出格式。最低的目標(biāo)是與更成熟的架構(gòu)的現(xiàn)有標(biāo)準(zhǔn)看齊。如果RISC-V跟蹤規(guī)范做得好,它將使現(xiàn)有的跟蹤查看器、硬件跟蹤探頭和跟蹤分析工具易于采用。目前已經(jīng)有一些實(shí)現(xiàn)的方案,但RISC-V架構(gòu)應(yīng)該在從物聯(lián)網(wǎng)到服務(wù)器的每個(gè)設(shè)備中都有跟蹤,即使是簡單、標(biāo)準(zhǔn)的跟蹤也比完全沒有跟蹤好。
圖1 來自一個(gè)RISC-V設(shè)備的跟蹤
看清每條指令
軟件開發(fā)工具中集成對(duì)跟蹤的支持增強(qiáng)了日常的代碼開發(fā)/調(diào)試。跟蹤應(yīng)該是設(shè)計(jì)人員日常環(huán)境中固有的一部分,而不應(yīng)該是事后分析的東西。因此,你可以寫代碼并運(yùn)行,看看是如何到達(dá)當(dāng)前的執(zhí)行點(diǎn)的。通過快速追溯、隔離異常和硬故障的功能,你可以直接迭代并獲得良好的代碼質(zhì)量。你還可以找到依賴于執(zhí)行順序的漏洞,并找到可以與你的程序流程相關(guān)聯(lián)的功耗測量值。所有這些分析也可以在具有挑戰(zhàn)性和復(fù)雜依賴性的多核環(huán)境下進(jìn)行。
在尋找一個(gè)漏洞時(shí),翻閱捕獲的跟蹤的難度無異于大海撈針。在短短幾秒鐘的執(zhí)行時(shí)間里,可以產(chǎn)生數(shù)以億計(jì)的指令。因此,極為重要的是,規(guī)范將提供足夠的觸發(fā)器,以便能夠?qū)⒉东@限制在特定區(qū)域。先進(jìn)的導(dǎo)航和搜索功能是必不可少的,如果你的編譯器/調(diào)試器工具提供該功能,則可以使用跟蹤觸發(fā)器將跟蹤數(shù)據(jù)限制在你需要的范圍內(nèi)。
為什么需要跟蹤?
在設(shè)備中植入跟蹤單元,讓你有可能在產(chǎn)品運(yùn)行時(shí)進(jìn)行非侵入性的跟蹤。因?yàn)榧词固砑臃浅5讓拥恼{(diào)試打印輸出,也會(huì)改變應(yīng)用程序的時(shí)間,并掩蓋其真實(shí)行為。
有許多方法可以捕捉和獲得從設(shè)備中輸出的跟蹤數(shù)據(jù):
順序排列
- 足夠的PC采樣跟蹤(對(duì)統(tǒng)計(jì)代碼剖析研究有好處)
- 輕型儀器、實(shí)時(shí)操作系統(tǒng)(RTOS)監(jiān)控、變量跟蹤等
- 配備優(yōu)秀的探針,有可能達(dá)到幾兆字節(jié)/秒的速度
高速并行接口(4至16位的雙邊接口)
- 捕獲一切(時(shí)鐘速度可以很高)
- 通過控制流轉(zhuǎn)移時(shí)留下的信息進(jìn)行跟蹤
- 為你執(zhí)行的每一條指令提供保證
- 指令執(zhí)行過程信息實(shí)時(shí)存儲(chǔ)在調(diào)試器探針上
RAM緩沖區(qū)
- 要么是小的專用RAM,要么與系統(tǒng)內(nèi)存共享
- 即使是4KB的跟蹤RAM也能提供足夠的功能,真正發(fā)揮作用
高速排列
- 速度為10Gbits/s或更高
- 主要適用于較大的、復(fù)雜的系統(tǒng)
通過功能接口進(jìn)行跟蹤(USB3.0提供了超高帶寬?。?/p>
- 使用案例有限——對(duì)小型物聯(lián)網(wǎng)設(shè)備來說不是一個(gè)選擇
調(diào)試異常情況
通過在日常工作中使用跟蹤,你可以真實(shí)看到應(yīng)用程序是如何運(yùn)行的。你可以檢查程序流,直到一個(gè)特定的狀態(tài),如應(yīng)用程序崩潰,然后使用跟蹤數(shù)據(jù)來定位問題的起源。
異常或未處理的故障可以由指針問題、非法指令或數(shù)據(jù)中止引起。通常,當(dāng)這種情況發(fā)生時(shí),你的堆棧(和函數(shù)調(diào)用信息)會(huì)被毀掉,但通過跟蹤,你可以獲得完整的應(yīng)用程序歷史記錄。跟蹤數(shù)據(jù)對(duì)于定位那些顯現(xiàn)不規(guī)則且零星發(fā)生的編程錯(cuò)誤也很有用。這可以幫助發(fā)現(xiàn)價(jià)值“百萬美元”的漏洞。
硬件和軟件工具的集成
獲得盡可能高質(zhì)量的代碼的最佳方法是將跟蹤分析能力整合到你的日常開發(fā)環(huán)境中。如果你能在每次部署變化時(shí)驗(yàn)證程序時(shí)序和正確性,那么將復(fù)雜的漏洞推給后期系統(tǒng)驗(yàn)證甚至客戶的風(fēng)險(xiǎn)就會(huì)大大降低。最好的解決方案是擁有像跟蹤調(diào)試探針這樣的硬件工具,它可以在你的集成開發(fā)環(huán)境中與軟件工具無縫協(xié)作。例如,IAR提供跟蹤探頭I-jet Trace,它與完整的C/C++編譯器和調(diào)試器工具鏈IAR Embedded Workbench完全集成。
I-jet Trace解鎖了IAR Embedded Workbench 集成開發(fā)環(huán)境中的一些高級(jí)功能。在圖2中,你可以看到幾個(gè)高級(jí)視圖功能的例子,上面是時(shí)間軸,下面是代碼堆棧。這顯示的是運(yùn)行中的程序正在進(jìn)行復(fù)雜的函數(shù)調(diào)用,并且中斷也在同步觸發(fā)。藍(lán)色部分顯示的是數(shù)據(jù)跟蹤,這樣你就可以獲得儀表化的顯示,并看到RTOS的切換等。下面的詳細(xì)圖顯示了啟動(dòng)代碼的運(yùn)行情況——有復(fù)雜的調(diào)用,還有一些較長和較短的函數(shù),甚至還有一個(gè)工具提示來優(yōu)化其中一個(gè)調(diào)用的代碼。
圖2 結(jié)合調(diào)用堆棧和中斷以及變量記錄的時(shí)間軸實(shí)例
代碼質(zhì)量
但是,跟蹤不僅僅是為了發(fā)現(xiàn)漏洞。它還可以幫助你監(jiān)控你的應(yīng)用程序——它是否按照預(yù)期運(yùn)行?集成性能監(jiān)控是使用跟蹤的主要好處之一,因?yàn)樗梢詭椭懔私鈶?yīng)用程序執(zhí)行時(shí)間都花在哪里了,是否受到中斷風(fēng)暴的影響,是否有時(shí)反應(yīng)不夠快等等。
代碼覆蓋率也是一個(gè)可以用跟蹤實(shí)現(xiàn)的功能(圖3展示了它在IAR Embedded Workbench中的樣子)。這可以用來證明代碼至少被運(yùn)行過一次,查找出未運(yùn)行的代碼,顯示測試的缺陷等等。功能安全認(rèn)證強(qiáng)烈建議將代碼覆蓋率作為提高質(zhì)量的一個(gè)手段。靜態(tài)代碼分析工具是對(duì)跟蹤分析器一個(gè)很好的補(bǔ)充。這可以確保代碼符合特定行業(yè)的標(biāo)準(zhǔn)和最佳編程實(shí)踐。除了覆蓋率,該工具還可以收集每個(gè)單獨(dú)指令的執(zhí)行次數(shù)。例如,有些指令塊被執(zhí)行了4次,有些被執(zhí)行了12次。很明顯,沒有被覆蓋的代碼執(zhí)行了0次。
圖3 跟蹤也可以審查代碼覆蓋率
總結(jié)
跟蹤提供了各種有益的數(shù)據(jù)源,如收集數(shù)據(jù)或協(xié)助開發(fā)人員將信息過濾成實(shí)際的知識(shí)和見解。用不同的跟蹤查看器進(jìn)行可視化和分析,可以創(chuàng)建一個(gè)產(chǎn)品如何運(yùn)行及其動(dòng)態(tài)行為的真實(shí)描述,為開發(fā)人員提供必要的信息,以跟蹤那些很難,甚至不可能通過其他手段捕捉的復(fù)雜漏洞。通過在日常開發(fā)中加入跟蹤,開發(fā)人員可以加速軟件開發(fā)過程,提高軟件質(zhì)量。
關(guān)鍵詞:
您可能也感興趣:
今日熱點(diǎn)
為您推薦
糧食和物資儲(chǔ)備系統(tǒng)將持續(xù)幫扶脫貧地區(qū)優(yōu)質(zhì)特色農(nóng)產(chǎn)品對(duì)接大市場
《黑神話:悟空》官方更新 游戲故事背景曝光
首個(gè)DLC首曝時(shí)遇到尷尬 《星空》首個(gè)DLC可能還沒玩完
更多
- 國盛金控2023年半年度凈利潤約9904萬元 同比扭虧
- 如何有效使用RISC-V的跟蹤技術(shù)
- 瑞茜.威瑟斯彭加盟 詹妮弗.安妮斯頓《早間新聞》第三季要播出
- 楊鳴教練命運(yùn)何去何從?內(nèi)外援問題持續(xù),遼寧男籃決定已近在咫尺
- 巨量的數(shù)據(jù),巨量的連接,巨量的算力,我們?cè)撚檬裁礃拥募軜?gòu)...
- 臺(tái)灣教師行走齊魯大地:愿以點(diǎn)帶面促交流融合
- 福島第一核電站核污染水排放開始 對(duì)環(huán)境和人類有何影響?
- 長春高新:上半年長效產(chǎn)品收入占比28% 地產(chǎn)公司股權(quán)轉(zhuǎn)讓暫緩
排行
- 瑞茜.威瑟斯彭加盟 詹妮弗.安妮斯頓《早間新聞》第三季要播出
- 科技智庫需要進(jìn)一步加快智庫成果轉(zhuǎn)化
- 雄安設(shè)立兩年 290家京企“搶灘登陸”
- 女子拽男友公交車方向盤受審 涉嫌危害公共安全罪
- 成都實(shí)施創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,將挖掘培養(yǎng)高素質(zhì)職工人才
- “人造雪粉”接觸眼睛或被誤食可能有危險(xiǎn)
- 這一年,我們?yōu)榭萍肌俺尺^的架”真不少
- “四成人不知電商法”該如何破題
- 監(jiān)督搭平臺(tái)信息都上網(wǎng) 打通精準(zhǔn)監(jiān)督‘最后一公里’
- 智能烹飪機(jī),選購有講究
最近更新
- 如何有效使用RISC-V的跟蹤技術(shù)
- 路小團(tuán):重慶一男子疑猥褻幼童(派出所介入)
- 天津維美和伊美爾哪個(gè)好 詳情介紹
- 巴薩撿到寶了!23歲3000萬,35分鐘進(jìn)1球,瓜帥棄子,被哈維重用
- 暢聊賽場:京多安點(diǎn)球破門(德國1-0領(lǐng)先日本)
- 剛?cè)肼毑筷?duì)文職怎么辦社保
- 明知女友時(shí)日無多,男友不離不棄執(zhí)意完婚,于海寧如今過得好嗎?
- 海南萬寧哪里值得買房養(yǎng)老?萬紫花苑適合老人長期居住!
- 富英雅苑“候鳥”老人買房心得~瓊海房價(jià)走勢+養(yǎng)老配套解析!
- 南沙在哪里
- 逆水寒手游素問鳴金選擇推薦 具體一覽
- 未打先夸!塞爾維亞主帥稱贊中國男籃:他們防守出色,非常努力
- AI創(chuàng)作點(diǎn)亮城市夜生活,為長沙文旅發(fā)展注入數(shù)智新動(dòng)能
- 2023年中國飼料加工機(jī)械行業(yè)發(fā)展現(xiàn)狀:行業(yè)產(chǎn)值不斷上漲,行...
- 足球報(bào):大連人9月份或多達(dá)9人被國字號(hào)征召,已嗅到降級(jí)氣息
- “賞兩個(gè)大嘴巴”?家長吐槽兒歌教小孩說臟話,網(wǎng)友直呼太離譜
- 遼寧主帥楊鳴將參與解說今日德國男籃VS澳大利亞男籃
- 人在他鄉(xiāng)·打工文學(xué)擷英|勤翻巧手,換得粗茶有
- 如何投訴公司欺詐行為
- 2023年中國智慧交通行業(yè)發(fā)展現(xiàn)狀 未來我國將全面建成交通強(qiáng)國
- 重慶酉陽:農(nóng)文旅融合讓鄉(xiāng)村煥發(fā)新活力
- 第九屆高能量密度物理青年科學(xué)家論壇在懷柔舉辦
- 北京:“中國白——德化白瓷展”亮相國博
- 【開放月】奉賢區(qū)司法局舉辦“法潤賢城·公共法律服務(wù)在身邊...
- 農(nóng)村大集如期而至 生活“煙火”有序回歸
- 追尋紅色記憶!各族青少年交流研學(xué)活動(dòng)走進(jìn)西寧
- 《進(jìn)擊!要塞!》steam名稱介紹
- 畢節(jié)納雍:百興2萬畝玉米豐收在即
- 工行貴陽分行:金融支持,助力擦亮“爽游”招牌
- 研報(bào)掘金丨國聯(lián)證券:予燕京啤酒目標(biāo)價(jià)12.62元 維持“買入”評(píng)級(jí)
今日要聞
- 海南萬寧哪里值得買房養(yǎng)老?萬紫花苑適合老人長期居?。?/a>
- 路小團(tuán):重慶一男子疑猥褻幼童(派出所介入)
- 作為“硬通貨”,擁有城市絕版景觀的廣州千萬豪宅又多一個(gè)
- 融入國家重大戰(zhàn)略任務(wù)、融入?yún)^(qū)域經(jīng)濟(jì)社會(huì)發(fā)展,上海各民主黨派共建合作謀發(fā)展
- 國盛金控2023年半年度凈利潤約9904萬元 同比扭虧
- Arm遞交IPO申請(qǐng),25%收入來自中國
- 美國12歲女孩家中遭槍殺 今年全美超過4000名兒童和青少年被槍擊
- 千余款優(yōu)質(zhì)農(nóng)產(chǎn)品任你挑!“皖美農(nóng)品”消費(fèi)季活動(dòng)開幕
- 如何有效使用RISC-V的跟蹤技術(shù)
- 逆水寒手游素問鳴金選擇推薦 具體一覽