您的位置:首页 > 运维架构

OpenRisc(OR1K,OR1200)仿真调试系统

2015-01-20 08:57 239 查看
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更加友好的使用环境。

对该系统有兴趣,请联系jikeyliu@gmail.com,您将获得更多信息和OR相关的技术支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: