调试系统的制作方法_2

文档序号:10463070阅读:来源:国知局
上系统总线和输入输出总线的主控设备,基于此,本实施例中在片上总线控制器I上内嵌了调试模块,使其与通用的外部总线控制器2构成了一个便于使用的统一的内嵌于系统级片上的调试系统。
[0032]具体地,本实施例中的片上总线控制器I内嵌的调试模块的用于在接收到任一外部总线控制器2输入的调试命令后对调试命令进行解析,并根据解析后的调试命令执行相应调试动作。
[0033]每一外部总线控制器2可以与一调试设备4连接,不同的外部总线控制器2可以通过不同的通讯方式与调试设备4通讯,该外部总线控制器2用于将调试设备4输入的调试命令传输至片上总线控制器I,或将片上总线控制器I输出的调试结果传输至调试设备4。其中,根据片上系统总线和输入输出总线的实现方式不同,片上总线控制器I与外部总线控制器2的通讯方式也不同,例如,一种情况下,片上总线控制器I需要采用查询的方式访问外部总线控制器2,来接收到外部总线控制器2输入的调试命令。
[0034]此外,外部总线控制器2可以通过UART(UniversalAsynchronous Receiver/Transmitter,异步串行通信接口 )串口、SPI (Serial Peripheral Interface,串行外设接口)接口、USB(Universal Serial Bus,通用串行接口)接口或以太网口与调试设备4连接,也就是说,本实施例中的一个外部总线控制器2可以通过UART串口与一个调试设备4连接,一个外部总线控制器2可以通过SPI串口与一个调试设备4连接,一个外部总线控制器2可以通过以太网口接入互联网,与一个接入互联网的调试设备4进行远程连接。
[0035]本实施例中,片上总线控制器I与外部总线控制器2以双向字节流的形式进行数据的传输。片上总线控制器I在接收到外部总线控制器2输入的调试命令后才进行调试,用户可以根据测试需要或开发经验,手动地通过调试设备4的人机操作界面选择或输入调试命令,或者,调试设备4可以根据其内部的自检模块定时地向片上总线控制器I发送调试命令。
[0036]进一步需要说明的是,如图2所示,片上总线控制器I内嵌的调试模块包括通讯控制单元1、调试命令解析单元11和调试执行单元12,其中,通讯控制单元1为双向字节流通讯控制器,用于接收外部总线控制器2输入的调试命令,并将调试命令传输至调试命令解析单元11,或者将调试结果传输至外部总线控制器2;调试命令解析单元11用于按照预设格式对调试命令进行解析,并将解析后的调试命令传输至调试执行单元12;调试执行单元12触发相应的调试功能模块执行相应的调试动作;调试执行单元12与处理器3连接的接口包括系统总线接口Ol、匪I中断信号接口02和处理器专有调试接口03比如JTAG接口。
[0037]本实施例中,调试执行单元12中的调试功能模块包括物理地址空间读写模块、硬件程序断点处理模块、硬件数据断点处理模块、程序暂停处理模块和程序流程追踪模块,当然,调试执行单元还可包括其他调试功能模块,本实用新型并不仅限于此,设计者可以根据需要对调试执行单元的调试功能进行设计和修改。
[0038]其中,物理地址空间读写模块用于根据解析后的物理地址空间读写命令触发片上总线控制器I进行读写动作,并通过通讯控制单元10将片上总线控制器I的读写结果传输至外部总线控制器2;
[0039]硬件程序断点处理模块用于根据解析后的硬件程序断点设置命令保存程序断点地址,并在所述处理器3运行至该断点地址时即读取该断点地址的指令时,以特殊指令替换断点地址处的原始指令,以将所述处理器单元3引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
[0040]所述硬件程序断点处理模块还用于根据解析后的硬件程序断点清除命令删除相应的程序断点地址;
[0041]硬件数据断点处理模块用于根据解析后的硬件数据断点命令保存或清除数据断点地址,并在所述处理器3读或写所述断点地址时向处理器单元3发出特定中断,以将处理器3引导到特定的调试程序,即刻停止正常运行并等待其它调试命令;
[0042]所述硬件数据断点处理模块还用于根据解析后的硬件数据断点清除命令删除相应的数据断点地址;
[0043]程序暂停处理模块用于根据解析后的程序暂停命令向所述处理器单元3发出特定中断,以将所述处理器3引导到特定的调试程序,即刻停止运行等待其它调试命令;
[0044]程序流程追踪模块用于根据解析后的程序流程追踪命令监测和保存处理器单元3读取的指令流的地址,并在压缩之后传输至外部总线控制器2,以便调试设备4获得被追踪程序的指令流。
[0045]具体地,当内嵌调试模块的片上总线控制器I接收到调试设备4通过外部总线控制器2输入的物理地址空间读写命令后,调试命令解析单元会对物理地址空间读写命令进行解析,然后调试执行单元12中的物理地址空间读写模块会根据解析后的物理地址空间读写命令触发片上总线控制器I进行读写动作,物理地址空间读写模块会监测片上总线控制器I的读写动作,并将读写结果以字节流的形式又通过片上总线控制器I发送给外部总线控制器2,以使外部总线控制器2传输至调试设备4,便于用户或调试设备4根据输出结果进行下一步调试。
[0046]当内嵌调试模块的片上总线控制器I接收到调试设备4通过外部总线控制器2输入的硬件程序断点设置命令后,调试命令解析单元11会对硬件程序断点设置命令进行解析,然后调试执行单元12中的硬件程序断点处理模块会保存硬件程序断点设置命令中的断点的地址,然后硬件程序断点处理模块会监测处理器3的读指令命令,当处理器3的读指令命令的地址是该断点地址时,硬件程序断点处理模块会采用断点指令或其它自陷指令或跳转指令替换断点地址处的原始指令,以使处理器3执行到该断点时,断点指令或其它自陷指令或跳转指令将处理器3引导到特定的调试程序,以使程序停止正常运行等待其它调试命令。
[0047]处理器3是按照预设顺序执行指令的,当在处理器3的执行指令中插入断点指令后,处理器3会中断执行当前程序,转而执行断点指令引导的调试程序,此时处理器3会停止正常运行进入调试模式,用户或调试设备4可以通过其它调试命令对嵌入式系统进行调试例如进行查看内存的情况、寄存器的状态以及查看源代码等操作。
[0048]调试完毕后,用户或调试设备4会向片上总线控制器I发送硬件程序断点清除命令,当片上总线控制器I接收到硬件程序断点清除命令后,调试命令解析单元11会对硬件程序断点清除命令进行解析,调试执行单元12中的硬件程序断点处理模块会清除相应的程序断点地址,并停止监测该程序断点地址,即硬件程序断点处理模块会停止在处理器3读取该程序断点地址时替换断点处的原始指令,使处理器3按照原顺序执行指令。
[0049]同样,片上总线控制器I接收到硬件数据断点设置命令后,调试命令解析单元11会对硬件数据断点设置命令进行解析,然后调试执行单元12中的硬件数据断点处理模块会保存硬件数据断点设置命令中的数据断点地址,然后硬件数据断点处理模块根会监测处理器3的读写数据命令,当处理器3的读写数据命令的地址是该数据断点地址时,硬件数
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1