基于Angel的调试系统概述
发布时间:2008/12/23 0:00:00 访问次数:589
1.angel组成
angel的组成如图1所示。主机上的调试器向目标机上的angel发送请求;目标机上的angel截取这些请求,根据请求的类型执行相应的操作。例如,当主机上的调试器请求设置断点时,angel在目标程序的相应位置插入一条未定义的指令,当程序运行到这个位置时,产生未定义指令异常中断,在未定义指令异常中断程序中完成所需要的功能。
angel通过调试协议adp与主机上的调试器进行通信。
下面简单介绍各个部分的功能。
(1)主机上的调试器
主机上的调试器包括下面一些部分。
·调试器:可以是arm公司的调试器,如adw和adu等,也可以是第三方的调试器。
·调试器工具盒:是调试器rdp(远程调试接口)之间的界面。
·adp支持部件:提供rdi和adp消息之间的协议转换。
·boot支持部件:用于建立主机和目标机之间的通信连接。比如,对于使用串行口进行通信的系统,可以设置波特率。
·c语言支持部件:用于处理c语言库的semihosting请求。
·主机通道管理:管理主机上的通信通道,可以提供高层次的通信功能。
·主机设备驱动程序:实现主机上的通信设备功能,可以为主机通道管理提供需要的服务。
(2)目标系统
目标系统包括下面的一些部分。
·目标机设各驱动程序:实现目标机上的通信设各功能,可以为目标机通道管理提供需要的服务。
·目标机通道管理:管理目标机上的通信通道,可以提供高层次的通信功能。
·通用调试部件:使用,目标机通道与主机通信处理adp消息,接收主机发送的请求。
·与目标系统相关的调试部件:提供与具体目标系统相关的调试功能,例如,设置断点、读写存储器等。
·异常中断支持部件:处理所有的arm异常中断。
·c语言库支持部件:提供对目标c语言库及semihosting请求的支持。
·引导及初始化部件,完成下面的操作。
◆进行启动检查。
◆设置存储系统、数据栈等,设置设备驱动程序。
◆将引导信息发送到主机上的调试器。
·用户应用程序。
2.angel的功能
目标机上的angel实现下列功能。
(1)基本的调试功能
·报告存储器和处理器状态。
·将应用程序下载到目标系统中。
·设置断点。
(2)c语言库的支持
在目标系统上运行的应用程序可以与c语言库连接。其中有些c语言库需要semihosting支持,即需要使用主机上的资源完成输入/输出请求。angel使用swi机制完成这些semihosting请求。
在arm程序中,angel使用的swi号为0x123456;在thumb程序中,angel使用的swi号为0cab。
(3)通信支持
angel使用adp通信协议。adp通信协议通过使用通信通道,可以使多个独立的消息包共享一个通信信道。angel支持下列通信信道:
·串行端口;
·并行端口;
·以太网接口。
主机和目标机上的通道管理部件保证逻辑通道可以可靠地复用,并监视通道的使用情况,处理宽带溢出情况。主机和目标机上的设备驱动程序处理数据包的发送和接收,它可以检测并丢掉有错误的数据包。
(4)任务管理功能
包括通信操作和调试操作在内的所有angel操作都是在任务管理操作部件管理下进行工作的。任务管理部件实现下面的功能。
·保证任何时候只有一个操作在执行;
·为各个任务分配优先级丿并根据优先级调度各个任务;
·控制angel运行环境的处理器模式。
(5)异常中断处理
angel使用除复位异常中断以外的其他arm异常中断,具体的使用方式如下所示。
·swi异常中断。angel使用swi异常中断实现目标系统上c语言库的semihosting请求,并可以完成进入和退出处理器的特权模式。
·未定义指令异常中断。angel使用3条未定义的指令来实现在目标程序中设置断点。
·数据终止和指令预取终止异常中断。angel设置了基本的数据终止和指令预取终止异常中断处理程序。通过这些程序实现挂起程序的运行,将控制权交回到调试器。
·fiq及irq异常中断。angel使用fiq或irq异常中断完成中断处理操作。如果可能,推荐使用irq异常中断。
3.使用angel所需要的资源
使用angel所需要的资源包括:
·系统资源。angel使用的系统资源包括可配置的系统资源和不可配置的系统资源。
可配置的系统资源包括一个arm程序的swi号和一个thumb程序的swi号;不可配置的系统资源包括两条未定义的arm指令和一条未定义的thumb指令。
1.angel组成
angel的组成如图1所示。主机上的调试器向目标机上的angel发送请求;目标机上的angel截取这些请求,根据请求的类型执行相应的操作。例如,当主机上的调试器请求设置断点时,angel在目标程序的相应位置插入一条未定义的指令,当程序运行到这个位置时,产生未定义指令异常中断,在未定义指令异常中断程序中完成所需要的功能。
angel通过调试协议adp与主机上的调试器进行通信。
下面简单介绍各个部分的功能。
(1)主机上的调试器
主机上的调试器包括下面一些部分。
·调试器:可以是arm公司的调试器,如adw和adu等,也可以是第三方的调试器。
·调试器工具盒:是调试器rdp(远程调试接口)之间的界面。
·adp支持部件:提供rdi和adp消息之间的协议转换。
·boot支持部件:用于建立主机和目标机之间的通信连接。比如,对于使用串行口进行通信的系统,可以设置波特率。
·c语言支持部件:用于处理c语言库的semihosting请求。
·主机通道管理:管理主机上的通信通道,可以提供高层次的通信功能。
·主机设备驱动程序:实现主机上的通信设备功能,可以为主机通道管理提供需要的服务。
(2)目标系统
目标系统包括下面的一些部分。
·目标机设各驱动程序:实现目标机上的通信设各功能,可以为目标机通道管理提供需要的服务。
·目标机通道管理:管理目标机上的通信通道,可以提供高层次的通信功能。
·通用调试部件:使用,目标机通道与主机通信处理adp消息,接收主机发送的请求。
·与目标系统相关的调试部件:提供与具体目标系统相关的调试功能,例如,设置断点、读写存储器等。
·异常中断支持部件:处理所有的arm异常中断。
·c语言库支持部件:提供对目标c语言库及semihosting请求的支持。
·引导及初始化部件,完成下面的操作。
◆进行启动检查。
◆设置存储系统、数据栈等,设置设备驱动程序。
◆将引导信息发送到主机上的调试器。
·用户应用程序。
2.angel的功能
目标机上的angel实现下列功能。
(1)基本的调试功能
·报告存储器和处理器状态。
·将应用程序下载到目标系统中。
·设置断点。
(2)c语言库的支持
在目标系统上运行的应用程序可以与c语言库连接。其中有些c语言库需要semihosting支持,即需要使用主机上的资源完成输入/输出请求。angel使用swi机制完成这些semihosting请求。
在arm程序中,angel使用的swi号为0x123456;在thumb程序中,angel使用的swi号为0cab。
(3)通信支持
angel使用adp通信协议。adp通信协议通过使用通信通道,可以使多个独立的消息包共享一个通信信道。angel支持下列通信信道:
·串行端口;
·并行端口;
·以太网接口。
主机和目标机上的通道管理部件保证逻辑通道可以可靠地复用,并监视通道的使用情况,处理宽带溢出情况。主机和目标机上的设备驱动程序处理数据包的发送和接收,它可以检测并丢掉有错误的数据包。
(4)任务管理功能
包括通信操作和调试操作在内的所有angel操作都是在任务管理操作部件管理下进行工作的。任务管理部件实现下面的功能。
·保证任何时候只有一个操作在执行;
·为各个任务分配优先级丿并根据优先级调度各个任务;
·控制angel运行环境的处理器模式。
(5)异常中断处理
angel使用除复位异常中断以外的其他arm异常中断,具体的使用方式如下所示。
·swi异常中断。angel使用swi异常中断实现目标系统上c语言库的semihosting请求,并可以完成进入和退出处理器的特权模式。
·未定义指令异常中断。angel使用3条未定义的指令来实现在目标程序中设置断点。
·数据终止和指令预取终止异常中断。angel设置了基本的数据终止和指令预取终止异常中断处理程序。通过这些程序实现挂起程序的运行,将控制权交回到调试器。
·fiq及irq异常中断。angel使用fiq或irq异常中断完成中断处理操作。如果可能,推荐使用irq异常中断。
3.使用angel所需要的资源
使用angel所需要的资源包括:
·系统资源。angel使用的系统资源包括可配置的系统资源和不可配置的系统资源。
可配置的系统资源包括一个arm程序的swi号和一个thumb程序的swi号;不可配置的系统资源包括两条未定义的arm指令和一条未定义的thumb指令。
上一篇:使用Angel开发应用程序
上一篇:用仿真器调试系统初始化存储器