一. DS5 与 DSTREAM
1. DS5 是一个软件开发工具
从以下工具发展而来:DS5<RVDS<ADS<SDT,目前除DS5外其他都已停用;
有图形化的streamline性能分析器,可基于C源码,汇编程序,地址对bare裸机程序,uboot,kernel,驱动,app进行热点,程序瓶颈,CPU使用,Cache hit/miss,功耗分析
2. DSTREAM 是一个硬件仿真工具
共有7个接口,其中ARM JTAG 14,TI JTAG 14,ARM JTAG 20和Coresight 10这4个接口仅有debug功能,同时MICTOR 38,MIPI34,Coresight 20这3个接口有debug+trace功能
二. 安装DS5
- 安装虚拟网卡;
- 安装DS5-19和完成licence注册
- 拷贝模型到安装目录下
- 打开DS5
三. DS5的使用
1.新建debug control
2.建立连接
3.load vmlinux
当建立连接后一般都是一些汇编语言,这时候需要将vmlinux load进DS5方便debug
4.查看logbuf
logbuf的大小由.config中的CONIFG_LOG_BUF_SHIFT决定,在init/Kconfig中有对应的说明
如何确定log_buf的地址:
目前在arm64中log_buf的地址对应的是system.map中__log_buf对应的地址;
arm32对应的地址为system.map的log_buf对应地址的地址,需要ds5找到映射位置后在通过此地址去查看log_buf中的内容:
5.load 源码单步调试
四:csat的使用
1.csat:CoreSight Access Tool(CSAT)
DS-5的命令行工具,处理器挂住了,通过DS-5无法连接上,只能用CSAT连接上,但是CSAT无法访问到处理器内部的寄存器;
一般访问步骤:
读寄存器,如果不ok,说明总线挂了;
读dram,如果dram不ok,说明mbus挂了;
读PC,如果PC读取不ok,说明CPU挂了
2.CSAT & DS-5 diff
CSAT:通过APB总线连接,CPU挂死之后还能连接上,不能访问到CPU内部的寄存器
DS5:通过CPU连接,CPU挂死之后无法连接上,能够访问到CPU内部的寄存器
3.CSAT的命令
- 打开DS5的命令行;
- 输入以下命令:
1 | csat |
command | short name | Description |
---|---|---|
dpmemread | dmr | Read mememory |
dpmemwrite | dmw | Write memory |
dpfileload | dfl | Load a file into memory |
dpfilesave | dfs | Save a block of memory to file. |
example:1
2
3
4
5dmr 0 0x00010000 0x50
#save a block of memory to file
dfs 0 0x047fb000 0x350 dram2.bin
#load a file into memory
dfl 0 bin 0x8000 myfile.bin Load binary file into 0x8000 on AP 0