#在线调试系统使用方法 ##调试功能介绍 python3 debug.py 打开调试软件
追踪调试:trace/t pc 返回相应pc处指令执行后要写回的寄存器号和写回值
显示pc: list 显示当前程序运行到的pc值
设置断点:break/b pc 设置断点(程序运行到该pc处时停止)
单步调试:step 停止运行的程序继续运行一个pc后停止
连续单步:step n 停止运行的程序继续运行n个pc后停止
继续运行:continue/c 停止运行的程序继续运行
查询寄存器:infor n 查询n号通用寄存器的值
查询所有寄存器:infor all 一次性查询所有通用寄存器的值
查询内存(包括I/O端口)infom addr 查询地址addr处内存值(一个字节)
查询一段内存空间(包括I/O端口)infom addr1 addr2 查询addr1到addr2段内存值(包括addr1、addr2)
注意:(4)(5)(6)(7)(8)(9)(10)调试命令执行前都需要确保(3)号调试命令已经先执行了
##用户对自己处理器的改动要求
对于自己设计处理器的用户而言,若要使用上述调试命令,需要将SoC中一些调试相关的信号接到自己核中相应的信号上,并对核做相应的改动。下面简单介绍各个信号作用以及对核改动要求。
- `debug_pc`:当前指令的pc地址
- `debug_num`:当前指令执行后需要写回的寄存器号
- `debug_data`:当前指令执行后需要写回的值
- `ws_valid`:当前指令是否有效
- `break_point`:断点设置信号,处理器核接入该信号后需要使处理器在当拍立即停止运行
- `infor_flag`:查询寄存器标志
- `reg_num`:待查询的通用寄存器号
- `rf_rdata`:相应通用寄存器中的值,当处理器核接收到infor_flag和reg_num信号后需要在当拍给出寄存器中的值
对于调试命令1、2,只需要接信号debug_pc、debug_num、debug_data;对于调试命令(3)-(10)需要接上述全部信号
##其他注意事项:
确保Linux系统安装了python3、python第三方库pyserial和ttyUSB驱动,若没有需要自行安装。
用于调试的USB转串口线具体使用USB转TTL刷机线(因为使用了百芯开发板上的I/O引脚作为串口,而该引脚的电平标准为TTL)