• 基于 ACOEGC_T3(PF) 搭建 JLink 调试环境


            本文主要介绍全志 T3 JLink 调试环境搭建,基于 ACOEGC_T3(PF) 硬件板卡,系统架构使用裸核 * 3 + SylixOS 的 AMP 模式。调试环境可通过 RealEvo-IDE 和 JLink V9 同时对 T3 的 4 个核进行调试。

    一、搭建调试环境

    1、安装 JLink 软件,这里安装的是 V645a;

    2、修改安装目录下的 JLinkDevices.xml 文件,这里的路径为: D:\Program Files (x86)\SEGGER\JLink_V645a。在 DataBase 和 /DataBase 之间添加如下内容;

    1. <Device> <ChipInfo Vendor="Allwinner" Name="T3_CORE0" Core="JLINK_CORE_CORTEX_A7" JLinkScriptFile="Devices/ALLWIN/T3/Core0.JLinkScript"/>
    2. Device>
    3. <Device> <ChipInfo Vendor="Allwinner" Name="T3_CORE1" Core="JLINK_CORE_CORTEX_A7" JLinkScriptFile="Devices/ALLWIN/T3/Core1.JLinkScript"/>
    4. Device>
    5. <Device> <ChipInfo Vendor="Allwinner" Name="T3_CORE2" Core="JLINK_CORE_CORTEX_A7" JLinkScriptFile="Devices/ALLWIN/T3/Core2.JLinkScript"/>
    6. Device>
    7. <Device> <ChipInfo Vendor="Allwinner" Name="T3_CORE3" Core="JLINK_CORE_CORTEX_A7" JLinkScriptFile="Devices/ALLWIN/T3/Core3.JLinkScript"/>
    8. Device>

    3、在 JLink 安装目录下创建目录:JLink_V645a\Devices\ALLWIN\T3,在目录中放入脚本文件 Core0.JLinkScript、Core1.JLinkScript、Core2.JLinkScript、Core3.JLinkScript(见附件);

    4、将 JLink V9 调试器接入板卡调试口(这里使用 JTAG 接口,也支持 SWD 接口),如下图所示。

    二、RealEvo-IDE 调试配置

    1、将裸核与系统核的 Base 和 BSP 改为 Debug 模式,重新编译;

    2、右键 core_bmt3 工程,点击 Debug As ---> Debug Configurations... 双击 GDB SEGGER J-Link Debugging 新建一个调试实例。配置 core0 调试参数,如下图:

    3、使用同样的方式创建 core1 的调试实例,配置如下所示,注意 Device name 、端口号的变化:

    4、使用同样的方式创建 core2 的调试实例,配置如下所示,注意 Device name 、端口号的变化:

    5、右键 ampallwinnert3 工程,点击 Debug As ---> Debug Configurations... 双击 GDB SEGGER J-Link Debugging 新建一个调试实例。配置 core3 调试参数,如下图:

    三、调试流程

    1、系统上电后在裸核串口(UART0)上敲回车进入 u-boot 界面:

    2、键入如下命令加载系统镜像:

    fatload mmc 2:2 0x40000000 ACO_EGC_T3PF_CORE0.bin;fatload mmc 2:2 0x50000000 ACO_EGC_T3PF_CORE1.bin;fatload mmc 2:2 0x58000000 ACO_EGC_T3PF_CORE2.bin;fatload mmc 2:2 0x60100000 ampallwinnert3_ACO_EGC_T3PF_bare_sys1.bin;

    注意带 FPGA 版本这里还需要加入 FPGA 镜像加载命令:run loadfpga

    3、在代码 core_bmt3/SylixOS/bsp/bspInit.c 中的函数 halWakeUpOtherCores() 内启动核 1/2/3 的位置上加上断点

    打开调试配置界面,调试 core0

    4、全速运行到第一个断点处,下一步执行启动 core1,执行后用同样的方法打开 core1 的调试界面并启动调试

    成功启动后出现如下信息:

    5、使用同样的方式启动 core2 和 core3,4 个核都启动后可以通过 Debug 窗口切换调试对象,从而实现 4 核同时调试。

    四、其他

    1、这里仅介绍 4 核同时调试的情况,实际使用中可根据需要调试指定核即可;

    2、JLink 若采用 SWD 连接方式则调试接口配置也需要改为 SWD:

    3、附件

    https://download.csdn.net/download/stone8761/86503885icon-default.png?t=M7J4https://download.csdn.net/download/stone8761/86503885

  • 相关阅读:
    论环境如何影响我们的一切
    一次logstash的实践解锁了如此多的玩法....
    基于混沌权重和精英引导的鲸鱼优化算法-附代码
    InnoDB之Undo log格式
    AI-Gateway:一款整合了OpenAI、Anthropic、LLama2等大语言模型的统一API接口
    Nginx安装配置项目部署然后加SSL
    基于SpringBoot的酒店管理系统
    iCloud照片无法上传或同步怎么办?
    提升技术的13个建议
    C语言”三子棋“升级版(模式选择+”模拟智能“下棋)
  • 原文地址:https://blog.csdn.net/stone8761/article/details/126609917