SkyEye助力飞控软件Debug
?01.Debug是什么?
1947年9月9日,美國著名科學家格蕾絲.霍普(Grace Hopper)與其同伴在對Mark II計算機進行研究時發現,導致計算機無法正常工作的罪魁禍首居然是一只粘在繼電器上的小飛蛾。格蕾絲用鑷子將飛蛾夾出,并用膠帶固定到日志中,并在日志最后寫了這樣一句話:“First actual case of bug being found”。這是歷史上第一次出現關于bug的記載,排除故障的過程被稱為“Debug”,后被譯為調試,并在之后的計算機領域內廣為流傳。
?在75年后的今天,計算機領域的軟硬件調試技術經歷了不斷的發展和演進,對嵌入式領域而言已成為與開發、設計一樣重要的存在。尤其在嵌入式系統飛速發展的飛行控制領域,軟硬件緊耦合的尷尬處境使得具備優秀調試技術的工程師變得炙手可熱:只有快速定位問題并找到問題出現的根本原因,才能最大程度地降低調試成本,縮短開發周期。
02.常規的調試步驟有哪些?
第一步 · 正確重現問題
當問題出現在本地時,工程師通??梢暂p松實現問題復現,但當問題出現在設備所在地或遠程站點時,調試工作便完全依賴于記錄了設備各項參數設置的可靠日志。在實際操作中,此類情況的出現將對最終的調試結果造成直接影響——一旦復現的問題與實際存在出入,一切調試工作都將存在偏差,需要多次迭代才能最終解決問題。
第二步 · 縮小問題所在范圍
一旦問題被正確復現,接下來的步驟就是細化問題所在區域。嵌入式系統通??煞譃閼脤印⒐碳印⒂布?#xff0c;這一過程便可通過獲取這之中的數據流來完成:以應用層與固件層、硬件層的接口為抓手,獲取數據流,并根據邏輯將數據流路徑劃分為更多的子級別。這一過程可獨立檢查、測試來確定每一層是否存在問題,并縮小問題所在范圍。
第三步 · 修復每一個小問題
由于嵌入式系統通常存在高度耦合性,因此問題極有可能不僅僅存在于一處。需要根據設備邏輯縱觀數據流完整路徑,找到所有需要修改之處,并一一修改對應代碼。
第四步 · 充分測試,確保Debug已完成
比與棘手的bug做斗爭更為令人沮喪是,在工程師以為Debug完成后,bug還依然存在,且“解決方案”導致了更多bug的出現。解決此類問題的方法便是進行充分測試,但由于高耦合門檻的存在,常規的TypeScript、console.log、VS Code都無法應對當下復雜度極高的嵌入式系統。
03.仿真:飛控Debug的解決方案
對嵌入式系統整體過程進行全數字實時仿真,便可在很大程度上解決上述各種各樣的調試問題。由迪捷軟件自主研發的天目全數字實時仿真軟件SkyEye,可在常見的桌面級操作系統上仿真嵌入式硬件芯片,模擬各類復雜嵌入式系統的被測環境,1:1還原真實硬件芯片內部的行為邏輯,通過運行真實的目標二進制程序,實現從真實硬件到仿真硬件開發、調試、測試驗證的無縫過渡。
借助SkyEye,工程師可以在世界上任何地方快速搭建與遠程設備相同的硬件仿真環境,輕松實現問題復現,還可實現遠程代碼開發、調試和測試工作。本地已有的系統環境可被快速發送給組內其他同事,完美解決因被測環境不同導致的現場難復現問題,避免復雜配置等各類環境因素帶來的時間與資源的浪費。
對飛控領域而言,因其往往涉及多方資源協作,真實硬件整機系統的搭建往往需要花費大量時間來完成,而除了上述優勢外,SkyEye自帶的GDB調試工具,不僅支持底層驅動、消息中間件和上層應用軟件代碼的調試,還支持查看硬件內存、寄存器狀態等各項指標,可實現替換昂貴的飛控調試器,且仍滿足從硬件、固件代碼到應用軟件的所有調試工作。
總結
以上是生活随笔為你收集整理的SkyEye助力飞控软件Debug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 邮箱格式测试
- 下一篇: 网页数据抓取工具-数据采集软件