1、OpenRisc調試系統(Logger文本資訊)
OR1200是一款開源的處理器,廣泛應用于學校和實驗室的小型項目中。普遍認為,其性能可以達到A7的水準。
在應用了OR1200項目中,一般采用仿真的方法調試其軟硬體的程式,這對于新手或者沒有處理器調試經驗或者對OR1200内部結構和接口不熟悉的工程人員來說,調試軟體程式在處理器上的運作是相當的棘手,問題可能出在處理器的配置不當,也可能出在軟體程式書寫不規範。當然,如果在OR1200上運作已經在模拟器上調試好的程式,bug會少,但是,由于軟硬體環境和模拟器的不同,有時候依然需要親身對硬體進行調試。
本文在程式員的角度出發,設計了一款類Trace系統,隻需要在編譯OR核心源代碼的階段,将該部分的RTL同時進行編譯,那麼在仿真的時候,就能列印輸出程式執行過程中的資訊,這些資訊完全是程式員調試的必備資訊。它不需要調試者了解處理器的内部結構,不用關注仿真過程,隻需要分析輸出的資訊,即可确定所有的軟體問題。
這些列印的資訊包括五個方面:
1、程式執行流(二級制指令及其對應的彙編)~~不好意思,不能對應到C語言。
2、寄存器修改(記錄指令對寄存器的修改)
3、記憶體通路(記錄指令對記憶體的通路)
4、專用寄存器修改(記錄對OR專用寄存器如SR等)
5、異常/中斷(記錄異常或者中斷發生點)
通過指定關鍵字,可以列印其中的任意部分資訊(1是必須列印的,其他資訊可選擇性列印),截一段效果圖(呵呵)
該系統已經應用于某千萬門晶片上,OR作為該晶片的控制處理器,以中斷的形式排程整個系統資源,詳情見SOC系統任務排程文章。
2、OpenRisc調試系統(圖形界面的仿真調試工具)
作者後期将制作圖形界面的OpenRisc調試系統,其結構框圖如下圖所示:
使用者主要操作界面為DISPLAY界面,包含工具欄,提供和模拟引擎(VCS等)的一些互動指令。
顯示程式目前執行的彙編代碼,代碼對寄存器/記憶體的修改狀況,出現異常和中斷,也将進入顯示界面。
該系統完成後,将提供一個多OR更加友好的使用環境。
對該系統有興趣,請聯系[email protected],您将獲得更多資訊和OR相關的技術支援。