1、OpenRisc调试系统(Logger文本信息)
OR1200是一款开源的处理器,广泛应用于学校和实验室的小型项目中。普遍认为,其性能可以达到A7的水平。
在应用了OR1200项目中,一般采用仿真的方法调试其软硬件的程序,这对于新手或者没有处理器调试经验或者对OR1200内部结构和接口不熟悉的工程人员来说,调试软件程序在处理器上的运行是相当的棘手,问题可能出在处理器的配置不当,也可能出在软件程序书写不规范。当然,如果在OR1200上运行已经在模拟器上调试好的程序,bug会少,但是,由于软硬件环境和模拟器的不同,有时候依然需要亲身对硬件进行调试。
本文在程序员的角度出发,设计了一款类Trace系统,只需要在编译OR内核源代码的阶段,将该部分的RTL同时进行编译,那么在仿真的时候,就能打印输出程序执行过程中的信息,这些信息完全是程序员调试的必备信息。它不需要调试者了解处理器的内部结构,不用关注仿真过程,只需要分析输出的信息,即可确定所有的软件问题。
这些打印的信息包括五个方面:
1、程序执行流(二级制指令及其对应的汇编)~~不好意思,不能对应到C语言。
2、寄存器修改(记录指令对寄存器的修改)
3、内存访问(记录指令对内存的访问)
4、专用寄存器修改(记录对OR专用寄存器如SR等)
5、异常/中断(记录异常或者中断发生点)
通过指定关键字,可以打印其中的任意部分信息(1是必须打印的,其他信息可选择性打印