天天看點

OpenRisc(OR1K,OR1200)仿真調試系統

1、OpenRisc調試系統(Logger文本資訊)

    OR1200是一款開源的處理器,廣泛應用于學校和實驗室的小型項目中。普遍認為,其性能可以達到A7的水準。

    在應用了OR1200項目中,一般采用仿真的方法調試其軟硬體的程式,這對于新手或者沒有處理器調試經驗或者對OR1200内部結構和接口不熟悉的工程人員來說,調試軟體程式在處理器上的運作是相當的棘手,問題可能出在處理器的配置不當,也可能出在軟體程式書寫不規範。當然,如果在OR1200上運作已經在模拟器上調試好的程式,bug會少,但是,由于軟硬體環境和模拟器的不同,有時候依然需要親身對硬體進行調試。

    本文在程式員的角度出發,設計了一款類Trace系統,隻需要在編譯OR核心源代碼的階段,将該部分的RTL同時進行編譯,那麼在仿真的時候,就能列印輸出程式執行過程中的資訊,這些資訊完全是程式員調試的必備資訊。它不需要調試者了解處理器的内部結構,不用關注仿真過程,隻需要分析輸出的資訊,即可确定所有的軟體問題。

    這些列印的資訊包括五個方面:

    1、程式執行流(二級制指令及其對應的彙編)~~不好意思,不能對應到C語言。

    2、寄存器修改(記錄指令對寄存器的修改)

    3、記憶體通路(記錄指令對記憶體的通路)

    4、專用寄存器修改(記錄對OR專用寄存器如SR等)

    5、異常/中斷(記錄異常或者中斷發生點)

    通過指定關鍵字,可以列印其中的任意部分資訊(1是必須列印的,其他資訊可選擇性列印),截一段效果圖(呵呵)

OpenRisc(OR1K,OR1200)仿真調試系統
OpenRisc(OR1K,OR1200)仿真調試系統

    該系統已經應用于某千萬門晶片上,OR作為該晶片的控制處理器,以中斷的形式排程整個系統資源,詳情見SOC系統任務排程文章。

   2、OpenRisc調試系統(圖形界面的仿真調試工具)

        作者後期将制作圖形界面的OpenRisc調試系統,其結構框圖如下圖所示:

OpenRisc(OR1K,OR1200)仿真調試系統
OpenRisc(OR1K,OR1200)仿真調試系統

     使用者主要操作界面為DISPLAY界面,包含工具欄,提供和模拟引擎(VCS等)的一些互動指令。

     顯示程式目前執行的彙編代碼,代碼對寄存器/記憶體的修改狀況,出現異常和中斷,也将進入顯示界面。

    該系統完成後,将提供一個多OR更加友好的使用環境。

對該系統有興趣,請聯系[email protected],您将獲得更多資訊和OR相關的技術支援。