BK7258 一键恢复现场工具介绍
用原厂工具
由于T5的双核心设计,开发过程中不可避免的会有一些崩溃的时候,虽然不能保证该环境每次都能 dump 出来,但是关键时候可能会有意想不到的效果。
1. 环境安装
(1)解压BK7258_Qemu.zip,该文件包含了 dump 分析的主要环境。
(2)参照 《BK7258 一键恢复现场工具介绍.ppt》 文件安装相关的依赖环境。
(3)验证环境安装是否正常。压缩包中已经提前放了两个dump日志,具体操作请参照下面步骤
注:压缩包中放了 gcc-arm-none-eabi-10.3-2021.10-win32.exe, 和 python-2.7.18 的安装包,切记安装gcc-arm-none-eabi-10.3-2021.10-win32.exe的路径不能有空格,默认安装路径会有空格,会出一些问题。
(4)如果出现gcc的目录出现乱码找不到时,参考https://github.com/brechtsanders/winlibs_mingw/issues/32,导入环境变量。
(5)如果Win10 下 Eclipse 显示的 Program “arm-none-eabi-gcc” not found in PATH 错误,可以按照以下步骤操作解决:
a. 配置环境变量 PATH
安装完成后,需要将 arm-none-eabi-gcc 的路径添加到系统的 PATH 环境变量中:
(1)右键点击 此电脑 或 计算机,选择 属性。
(2)点击 高级系统设置,然后点击 环境变量。
(3)在 系统变量 下,找到 Path 变量并选中,点击 编辑。
(4)点击 新建,然后将 arm-none-eabi-gcc 所在的目录路径(例如D:\tool_path\GNU_Arm_Embedded_Toolchain_10_2021_10\10 2021.10\bin)添加进去。
(5)点击 确定 以保存更改。
b. 验证配置
完成以上步骤后,可以通过以下方式验证配置是否正确:
(1)打开命令提示符)(power shell)并输入 arm-none-eabi-gcc --version,确认能够正确显示工具链版本。
(2)重新启动 Eclipse,并尝试重新构建项目,看看是否能够成功找到 arm-none-eabi-gcc。完成这些步骤后,Eclipse 应该能够正确识别并使用 arm-none-eabi-gcc。
2. 打开eclipse.exe(D:\tool\BK7258\BK7258_Qemu\eclipse),导入工程,环境搭建,如下:
可以结合BK7258 一键恢复现场工具介绍的PPT一步一步来:





3. dump 回溯操作
回溯操作主要依赖于 app.elf 文件(这个分为CP0和CP1)和日志。
(1)正常保存日志就行,需要注意下面几点
- 日志里面只能包含一份 dump 日志。(dump 完成后,设备会重启,可能会进行二次 dump 打印,所以需要删掉其他多余,搜关键字:user except :

- 日志里面只能包含一个 dump 入口。(dump 日志中往往会同时包含 CP0 和 CP1 的 dump 入口,对应的,如果分析 CP1,则保留 CP1 的入口,分析 CP0 则保留 CP0 的入口,删除另一个。具体看下面截图,高亮部分删除,搜关键字:Current regs)

(2)app.elf
cp0 和 cp1 的app.elf 可以分别在下面的目录中找到(这个是生成的)。

(3)回溯
安装好环境,准备好日志和app.elf文件后,有没有用就看下面的操作和结果了。
把app.elf 和日志放到目录: eclipse-workspace\bk7258(elf的文件名只能是 app.elf,日志支持.txt 格式)

打开 eclipse ,操作回溯, eclipse 工程位于路径:eclipse\eclipse.exe,一切正常的话就可以看到下面的回溯结果。

4. 查看死在哪个CPU里

Show more call stack info by run: arm-none-eabi-addr2line -e app.elf -a -f 0223085c,在这里往上找最接近的Current regs,如果是:CPU1 Current regs(那么就是死在了CPU1),如果是CPU0 Current regs(那么就是死在了CPU0)
