APP下载

BM3803计算机系统调试技术研究

2015-05-15张忆张宏财

电脑知识与技术 2015年8期

张忆 张宏财

摘要:BM3803是国产32位空间处理器,其应用于航天工程的嵌入式计算机系统中。为了使BM3803计算机系统满足航天工程的严格要求,应用于此系统的调试技术就占据着极其重要的位置。根据BM3803计算机系统的特点,给出了一种基于GRMON和GDB的调试技术。此技术在实际应用中取得了很好的效果。

关键词:BM3803;调试支持单元;GRMON;GDB;片上系统

中图分类号:TP399 文献标识码 A 文章编号:1009-3044(2015)08-0226-02

Abstract: BM3803 is a homebred 32 bits spaceflight processor, which is applied in embedded computer system of spaceflight engineering. for meeting strict demand of spaceflight engineering, debugging technique used by BM3803 computer system plays an very important part.A debugging technique is provided,which based on GRMON and GDB and according with BM3803 computer system. The debugging technique has practicability.

Key words: BM3803; DSU; GRMON; GDB; SOC

1 引言

在現代高科技代表的航天工程中,计算机系统的重要性日益凸显,对计算机技术的依赖性越来越大。而处理器是计算机系统的核心,它的功能和性能直接关系到整个系统的开发难度和进度,对于航天项目的成败至关重要。BM3803是基于SPARC V8架构的国产32位空间处理器,其功能和性能能够满足各种航天应用的要求。它与存储器等外围设备连接即可构成完整的嵌入式实时计算机系统。因此,在BM3803计算机系统的航天应用中,为了保证系统的可靠性,降低系统的开发难度,缩短系统的开发时间,就需要一种高效的调试技术,对BM3803计算机系统进行调试。而GRMON是调试SPARC V8处理器的一款汇编级调试工具。它支持对系统寄存器和内存的读写访问,下载和执行LEON应用,断点和观察点管理,也可以向上为GDB调试工具提供底层网络链接,以屏蔽底层硬件差异。

本文从BM3803计算机系统调试环境的创建、GRMON调试、GDB调试等方面,详细地介绍了使用GRMON调试BM3803计算机系统的技术。

2 32位空间处理器BM3803

BM3803是国产32位空间处理器。它是基于SPARC V8架构的抗辐射加固微处理器,其功能和性能能够满足各种航天应用的要求,可用于嵌入式实时计算机系统,与存储器及相关的外围设备连接即可构成完整的计算机系统。BM3803包含整数处理单元IU、浮点处理单元FPU、中断控制器、硬件调试单元DSU、定时器、GPIO、看门狗和串口,支持PROM、SRAM、SDRAM和I/O映射空间访问的存储器控制器,具有PCI主桥和从桥功能的PCI控制器。处理器采用三模冗余、EDAC编解码以及奇偶校验等抗单粒子翻转效应的容错设计。

BM3803具有硬件调试单元,包括调试支持单元DSU和调试通信单元DCL两个模块。DSU用于控制跟踪缓冲区和处理器,它作为主设备在内部总线上占有一个地址空间,通过这个地址空间,其他主设备都可以访问处理器的寄存器和跟踪缓冲区内容。调试通信单元DCL使用标准的异步串口通讯并实现了一个简单的读写协议,该串口在内部总线上作为一个主设备,可以对内部总线上任何地址进行读写操作。

3 GRMON

GRMON是用于LEON处理器片上系统的调试工具。其功能包括:对于系统寄存器和内存的读写访问;下载和执行LEON应用;断点和观察点管理;对GDB的远程连接等。GRMON能够工作于命令行和GDB两种模式。在命令行模式下,GRMON可以通过终端输入调试命令,从而进行目标系统的调试;在GDB模式下,GRMON连接到GDB上,作为GDB的网关并将GDB协议翻译为目标系统的调试命令。

GRMON本身提供了多种调试接口,包括JTAG、RS232、PCI和以太网。对于目标系统,所有调试接口都是作为AHB主设备工作。

4 调试环境的创建

在BM3803计算机系统中,具有调试支持单元DSU和调试通信单元DCL,因此在GRMON调试计算机中使用串口作为调试接口。将PC机的串口与BM3803计算机系统的DSU串口连接,调试系统的架构如图1所示:

然后将GRMON程序所在路径加入系统的工作路径path,在path变量值中添加grmon.exe的存放路径,启动cmd控制台,即可使用GRMON调试。

5 GRMON调试技术

首先,连接GRMON和BM3803计算机系统。在cmd控制台中输入“grmon –leon2”,即可使用pc机的串口连接BM3083计算机系统的DCL。串口的默认波特率为115200,数据位为8,停止位为1,无校验位和流控制。当串口的波特率不是115200时,需要在cmd控制台中输入如下命令改变串口波特率:

grmon –leon2 –baut 38400(将波特率改为38400)。

如果连接DCL的不是PC机的com1,则需要在GRMON的命令行参数中使用如下命令改变PC机的串口:

grmon –leon2 –uart com2(使用com2)。

串口连接成功后,cmd控制台会出现GRMON提示符“grmon>”。在提示符后可键入GRMON命令进行调试。部分GRMON命令如表1所示:

通常情况下,使用GRMON连接上BM3083计算机系统后,使用“lo”命令加载程序,然后使用“run”命令运行程序,即可开始调试。但是有些情况下,GRMON连接上计算机系统后会对BM3083处理器的一些控制寄存器进行初始化,此时可能发生初始化错误或者与BM3803计算机系统有差别,这时需要手工配置控制寄存器。配置成功后,重新使用“lo”命令加载程序,但不能使用“run”命令运行程序,而需要使用“go”命令来运行。

在GRMON运行时键入“ctrl+c”则:在处理器处于运行模式时退出,切换到调试模式;在处理器处于调试模式时退出GRMON程序。

6 GDB调试技术

GDB(GNU symbolic debugger)是一个功能强大的调试工具,它可以调试多种语言,包括C、C++等。在调试BM3803计算机系统时,可以通过GRMON连接GDB进行调试。

如上所述,在成功连接GRMON和BM3803计算机系统后,在提示符“grmon>”后输入“gdb”,即可在新窗口中启动GDB连接,默认情况下,GRMON使用端口2222进行连接。

连接成功后,可以使用GDB命令“load”加载程序,使用“run”命令运行程序,然后使用GDB调试命令进行BM3803计算机系统的调试。

此时,也可以使用GDB的“monitor”命令执行GRMON调试命令,如下:

7 结论

本文根据国产32位空间处理器BM3803计算机系统的特点,从调试环境的创建,GRMON调试技术和GDB调试技术等方面,详细介绍了一种使用GRMON进行高效系统调试的技术。在航天应用中,此调试技术大大降低了BM3803计算机系统的开发难度,缩短了开发周期,显著提高了系统的稳定性和可靠性。

参考文献:

[1] 吴志雄.一种易于扩展的交叉调试器设计及其实现[J].电子技术,2007,36(11).

[2] 蒋晓华,李付海,祁波.SPARC体系的S698系列SoC及其应用[J].单片机与嵌入式系统应用,2007(8).

[3] 牛伟.LEON微处理器综述[J].中国集成电路,2010(7).

[4] 乔容,彭思鹏,柏桂枝.嵌入式软件源码级交叉调试器的设计与实现[J].舰船电子工程,2004(3).

[5] 王钦骞. 嵌入式系统调试器的研究与实现[D].电子科技大学,2006.

[6] 曲蕾.基于GDB的嵌入式系统集成开发环境的研制[D].太原理工大学,2004.

[7] 李献霞,孟小锁.嵌入式系统源码调试器GDB的远程通信[J].微处理机,2006(1).

[8] 赵岩,张果,张春,王志华.一种扩展的片上实时调试系統设计[J].计算机工程,2006(8).