diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/call-stack.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/call-stack.png new file mode 100644 index 0000000000000000000000000000000000000000..2436b8cd0c630ef95fa4c103417046b0460b0d8c Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/call-stack.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/config.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/config.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fa413cf3b2a4b37da9ec40bf0a4c5f12dca7d7 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/config.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/disassembly.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/disassembly.png new file mode 100644 index 0000000000000000000000000000000000000000..32026dfbcd772972936f50032c1b8d64cd91dd43 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/disassembly.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/elf-file.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/elf-file.png new file mode 100644 index 0000000000000000000000000000000000000000..a477dc27f83967595b389a83ba11f6aa744a2ca8 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/elf-file.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/jtag.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/jtag.png new file mode 100644 index 0000000000000000000000000000000000000000..743fd583ff9ab501b01fb118d7935840e5e56659 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/jtag.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/link-attach.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/link-attach.png new file mode 100644 index 0000000000000000000000000000000000000000..af55629ce3ae85f4c0bede5bbb4eecd08afba52d Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/link-attach.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/memory.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/memory.png new file mode 100644 index 0000000000000000000000000000000000000000..24a3ca6d2ce8ebb1a7287b26b47706e89c36d534 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/memory.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/new-proj.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/new-proj.png new file mode 100644 index 0000000000000000000000000000000000000000..633fde99342a366fce2c936a5b5b6ee28b45fe55 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/new-proj.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/registers.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/registers.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9796f454619ebd196d4a7d320d482bd3bc4436 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/registers.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/select-chip-arch.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/select-chip-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6a952c9e08aa5feece94962e51b7133f4b8558 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/select-chip-arch.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/watch-var.png b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/watch-var.png new file mode 100644 index 0000000000000000000000000000000000000000..5a15aedb75594dc415b8cd4a6865d8c38c504b74 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/figures/watch-var.png differ diff --git a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/ozone.md b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/ozone.md index 961d00ebf392b20611a50872cb1427985804f0cf..84934c20df0eee282375f6f189654e2ca7e6f6e1 100644 --- a/rt-thread-version/rt-thread-standard/application-note/debug/ozone/ozone.md +++ b/rt-thread-version/rt-thread-standard/application-note/debug/ozone/ozone.md @@ -14,7 +14,7 @@ Ozone 在板子没有死机的情况下,也可以通过以下方法 Attach 上 打开软件,选择 Create New Project 创建一个新的工程 -![](https://img-blog.csdnimg.cn/img_convert/2aefb6218c9110f98073b8d967dd4f87.png) +![](figures/new-proj.png) 这里也可以打开一个已经存在的工程 Open Exiting Project,本文以新建工程为例 @@ -22,7 +22,7 @@ Ozone 在板子没有死机的情况下,也可以通过以下方法 Attach 上 选择目标器件是,主要选择的是处理器内核的架构,如 Cortex-M3、Cortex-M4 和 Cortex-A 等,这里以 Cortex-A5 为例 -![](https://img-blog.csdnimg.cn/img_convert/5e4ced90f264d248e1e8c6920a33ffc3.png) +![](figures/select-chip-arch.png) 上图中外设文件是可选的,该文件一般由具体的半导体厂商提供,来查看具体的外设寄存器信息,如果没有是不影响 C 代码调试的 @@ -30,25 +30,25 @@ Ozone 在板子没有死机的情况下,也可以通过以下方法 Attach 上 这里需要根据板子的具体通信方式来选择,例如:JTAG,SWD 等,本文使用的是 JTAG,速度使用默认的即可 -![](https://img-blog.csdnimg.cn/img_convert/f7bbbf2d93812df6bc25f1fbbd061285.png) +![](figures/jtag.png) ### 选择目标文件,读取符号信息 这里选择的是通过 RT-Thread Studio/GCC/MDK 等 IDE 工具生成的 `elf` 文件,elf 文件中包含所有的符号和地址信息,所以调试的时候不需要源码,只需要加载 elf 文件即可,当在 elf 文件中定位到问题之后,再修改对应的源码即可 -![](https://img-blog.csdnimg.cn/img_convert/e8a55b8437beafd7045a4c5fe1d57037.png) +![](figures/elf-file.png) ### 其它可选的设置 这里的设置如果没有特殊的配置,默认即可 -![](https://img-blog.csdnimg.cn/img_convert/511cc63b1da04d512a169fd84bb69129.png) +![](figures/config.png) ### 连接目标芯片 上述步骤完成之后,工程就建立完毕,接下来就可以后将 Ozone 通过 `link Attach` 到死机的板子并且 Halt 住板子 -![](https://img-blog.csdnimg.cn/img_convert/3516ad3317a3296558712d2235d933d9.png) +![](figures/link-attach.png) 如果程序是由于异常导致的死机,那么当 Ozone 连上的时候,可以看到死机的现场(如果使用其它的 IDE 这个时候很可能会复位芯片,无法保留现场) @@ -56,28 +56,28 @@ Ozone 在板子没有死机的情况下,也可以通过以下方法 Attach 上 打开 Call Stack 窗口,查看函数调用栈 -![](https://img-blog.csdnimg.cn/img_convert/2f24249dff7f516879946ea7f6d40eec.png) +![](figures/call-stack.png) ### 查看变量 -![](https://img-blog.csdnimg.cn/img_convert/18884cf95b516eed22512acdc7f1c084.png) +![](figures/watch-var.png) ### 查看汇编 打开 Disassemble 窗口,查看汇编代码 -![](https://img-blog.csdnimg.cn/img_convert/30f8109c708f144713b50b68cf60507f.png) +![](figures/disassembly.png) ### 查看寄存器 打开 Registers 窗口,查看寄存器,这里需要注意的是,如果没有选择外设的描述文件,那么这里只能看到内核相关的寄存器,而看不到外设寄存器 -![](https://img-blog.csdnimg.cn/img_convert/8498c51f38649b471688c8308cfa02d8.png) +![](figures/registers.png) ### 查看内存 打开 Memory 窗口,查看内存 -![](https://img-blog.csdnimg.cn/img_convert/885e93ce3205b3997b4e55969d76851e.png) +![](figures/memory.png) 这里只介绍了 Ozone 的一些基本用法,更多用法参见 [Ozone 官方文档](https://www.segger.com/products/development-tools/ozone-j-link-debugger/)