xuos-web/docs/doc/appdev/debug.md

151 lines
3.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统调试
* [前言](#intro)
* [Jlink调试](#jlink-debug)
* [Ozone调试](#ozone-debug)
* [FAQ](#faq)
<span id="intro"></span>
## 前言
本文档将介绍<B>XiUOS</B>使用jlink、Ozone调试软件的配置、调试过程。
<span id="jlink-debug"></span>
## Jlink调试
### 软件安装
+ jlink包安装
第一步进入jlink官网[下载网址](https://www.segger.com/downloads/jlink)
<img src="./imagesrc/jlink_package_1.png" width="100%"/>
第二步选择版本并下载安装包此处下载的安装包版本为V6.72e即JLink_Linux_V672e_x86_64.deb。
<img src="./imagesrc/jlink_package_2.png" width="100%"/>
第三步安装JLink_Linux_V672e_x86_64.deb
```shell
$ dpkg -i JLink_Linux_V672e_x86_64.deb
```
+ openocd安装
第一步,进入[下载网址](https://github.com/kendryte/openocd-kendryte/releases)
下载Unbuntu版本的openocd。<B>XiUOS</B>中下载的kendryte-openocd-0.2.3-ubuntu64.tar.gz
第二步安装openocd
```shell
$ sudo mv kendryte-openocd-0.2.2-ubuntu64.tar.gz /opt
$ cd /opt
$ sudo tar -zxvf kendryte-openocd-0.2.2-ubuntu64.tar.gz
$ sudo apt install libusb-dev libftdi-dev libhidapi-dev
```
第三步openocd文件配置
打开配置文件,修改第三行 jlink serial 504503073的504503073为具体JLINK设备的标签。
```shell
$ cd /opt/kendryte-openocd
$ vim ctl/openocd.cfg
```
<img src="./imagesrc/openocd_cfg.png" width="100%"/>
第四步打开openocd软件
```shell
$ cd /opt/kendryte-openocd
$ ./bin/openocd -f ./ctl/openocd.cfg
```
成功运行则显示如下的界面。
<img src="./imagesrc/open_openocd.png"/>
### 调试程序
```shell
$ riscv-none-embed-gdb XiaoShan_kd233.elf --eval-command="target remote 127.0.0.1:3333"
```
运行上述命令,其中,
+ XiaoShan_kd233.elf是编译过程生成的elf文件
+ 127.0.0.1表示本地IP地址也可以制定远程地址
+ 3333是openocd监听的端口号
成功连接openocd之后界面如下所示之后就可以使用load\break\continue等gdb命令进行调试了。
<div>
<img src="./imagesrc/openocd_gdb.png"/>
</div>
<span id="ozone-debug"></span>
## Ozone调试
第一步从Segger官网下载Ozone下载链接分别为[32位](https://www.segger.com/downloads/jlink/Ozone_Linux_i386.deb)、[64位](https://www.segger.com/downloads/jlink/Ozone_Linux_x86_64.deb).
第二步安装deb安装包
![INSTALL PROCESS](./imagesrc/ozone_install.png)
第三步,配置合适的参数
选择Device为STM32F407VG
<center>
![DEVICE CONFIG](./imagesrc/device_config.png)
</center>
:::tip
注意Target Interface需修改为SWD.
:::
<center>
![INTERFACE CONFIG](./imagesrc/interface_config.png)
</center>
选择编译后生成的elf文件
<img src="./imagesrc/elf_file.png" width = "100%"/>
提交到Ozone页面
![OZONE PAGE](./imagesrc/ozone_page.png)
点击调试后若未设置断点Ozone将自动在执行main函数前停止Ozone支持设置代码和数据断点、单步调试、查看变量值等功能是很方便的一个调试工具。
<span id="faq"></span>
## FAQ
<style>
.openocd_cfg{
width: 1500px;
height: 400px;
vertical-align: middle;
display: table-cell;
text-align: center;
}
</style>