当前位置: 首页 > news >正文

【AM2634】启动和调试

目录

  • 【AM2634】启动和调试
    • 1. 上电流程
      • 1.1 BootFlow and Bootloader
      • 1.2 Rom Code
        • 1.2.1 功能介绍
        • 1.2.2 模式选择
          • 1.2.2.1 QSPI Boot
          • 1.2.2.2 UART Boot
          • 1.2.2.3 Dev Boot
      • 1.3 SBL
        • 1.3.1 文件构成
        • 1.3.2 文件构建
        • 1.3.3 appimage解析和core启动流程
      • 1.4 Appimage
        • 1.4.1 RPRC文件构成
        • 1.4.2 Multicore Appimage文件构成
        • 1.4.3 构建流程
    • 2. 程序下载
      • 2.1 UART
      • 2.2 JTAG
    • 3. 仿真调试

【AM2634】启动和调试

1. 上电流程

在这里插入图片描述
前两个流程都是硬件部分的工作,从Rom code开始是需要我们了解的。

  • Rom Code:板载Bootloader(RBL - Rom Bootloader)
  • Initial Software:应用程序的Bootloader(SBL - Second Bootloader)
  • Application Image:应用程序

在我们的程序设计中,用户设计的Bootloader就是上面的(Application),然后再启动用户的应用程序。

1.1 BootFlow and Bootloader

下面是从上电到启动的整体框图。
在这里插入图片描述

1.2 Rom Code

1.2.1 功能介绍

此Rom Code可以理解为厂家提供的Bootloa r,此部分程序固定在芯片中,上电的时候会先运行此部分程序,Rom Code代码可以分为Hard Init(仅Boot Process所需资源)Boot Process两部分。其中Boot Process具备以下功能:

  • 查找并执行SBL程序
  • 下载SBL程序并执行

Boot Porcess 结构框图如下图所示:
此Rom Code可以理解为厂家提供的Bootloa r,此部分程序固定在芯片中,上电的时候会先运行此部分程序,Rom Code代码可以分为Hard Init(仅Boot Process所需资源)Boot Process两部分。其中Boot Process具备以下功能:

  • 查找并执行SBL程序
  • 下载SBL程序并执行

Boot Porcess 结构框图如下图所示:
在这里插入图片描述
RBL的作用是用于引导SBL,再由SBL去引导应用程序。

官方说明:出于安全原因,第一个引导加载程序(RBL)通常保存在安全的只读内存中,并且在应用程序软件启动之前始终具有已知状态。因此,让这个引导加载程序保持简单,并让它只做所需的最低配置是有意义的。这个辅助引导加载程序(SBL)可以很复杂,也可以进行配置,以满足应用程序的需要。与第一阶段引导加载程序相比,这也可以很容易地更新。

1.2.2 模式选择

Rom Code为了适应多种系统场景,还具备多种引导模式:
在这里插入图片描述
每个模式对应的引脚配置如下图所示:
在这里插入图片描述
以以上多种模式可以分为两类:

  • Host boot modes(从不同的外设启动,例如Uart、CAN)
  • Memory boot modes(从不同的内存启动,例如Flash、SD)上多种模式可以分为两类:
  • Host boot modes(从不同的外设启动,例如Uart、CAN)
  • Memory boot modes(从不同的内存启动,例如Flash、SD)
1.2.2.1 QSPI Boot

启动后会去Flash的0地址处解析并加载SBL

因此在此之前,需要通过串口或者CCS将SBL下载到FLASH

1.2.2.2 UART Boot

RBL启动会进入串口模式,通过Xmodem协议加载SBL(注意这里下载完SBL后会立马跳转至SBL执行)

1.2.2.3 Dev Boot

RBL启动会进入Debug模式,通过CCS + JTAG完成SBL和appimage下载

1.3 SBL

SBL(Seconed Bootloader)

1.3.1 文件构成

在这里插入图片描述

1.3.2 文件构建

参考资料:从TI的官网上可以找到。

  • 将输出的.out文件转.bin
  • 将.bin文件通过openssl进行签名(这里要安装python等和openssl等,参见官网)
1.3.3 appimage解析和core启动流程

SBL对appimage的解析流程和Core的启动流程如下图所示:
在这里插入图片描述

1.4 Appimage

1.4.1 RPRC文件构成

在这里插入图片描述

typedef struct Bootloader_RprcFileHeader_s
{
    uint32_t magic;
    uint32_t entry;
    uint32_t rsvdAddr;
    uint32_t sectionCount;
    uint32_t version;
 
} Bootloader_RprcFileHeader;
 
typedef struct Bootloader_RprcSectionHeader_s
{
    uint32_t addr;
    uint32_t rsvdAddr;
    uint32_t size;
    uint32_t rsvdCrc;
    uint32_t rsvd;
 
} Bootloader_RprcSectionHeader;
1.4.2 Multicore Appimage文件构成

在这里插入图片描述

typedef struct Bootloader_MetaHeaderStart_s
{
    uint32_t magicStr;
    uint32_t numFiles;
    uint32_t devId;
    uint32_t rsvd;
 
} Bootloader_MetaHeaderStart;
 
typedef struct Bootloader_MetaHeaderCore_s
{
    uint32_t coreId;
    uint32_t imageOffset;
 
} Bootloader_MetaHeaderCore;
 
typedef struct Bootloader_MetaHeaderEnd_s
{
    uint32_t rsvd;
    uint32_t magicStringEnd;
 
} Bootloader_MetaHeaderEnd;
1.4.3 构建流程

在这里插入图片描述
通过转换工具实现文件转换

  • 将.out文件通过out2rpc转换为.rprc
  • 多个.rprc通过multiCoreGen集成为.appimage

2. 程序下载

2.1 UART

  • 在.cfg文件中编写下载程序的指令(rom code将该程序下载到OCSRAM并执行,后续通过该程序继续下载sbl/appimage)

    --flash-writer={path to flash application .tiimage}
    

    例子:–flash-writer=sbl_uart_uniflash.release.tiimage

  • 在.cfg文件中编写下载sbl程序的指令

    --file={path to QSPI bootloader .tiimage} --operation=flash --flash-offset=0x0 //指定flash偏移地址0
    

    例子:–file=sbl_qspi.release.tiimage --operation=flash --flash-offset=0x0

  • 在.cfg文件中编写下载appimage程序的指令

    --file={path to your application .appimage file} --operation=flash --flash-offset=0x80000
    
  • 将boot mode pin设置成uart boot mode

  • 上电

  • 打开串口工具检查板子是否发送"C"(xmodem协议)

  • 断开串口连接

  • 通过命令行(cmd)执行程序下载

    python uart_uniflash.py -p {name of your UART com port} --cfg={path to your edited config file}
    

    在这里插入图片描述

2.2 JTAG

  • boot mode pin设置成Devboot mode

  • 设置芯片型号
    在这里插入图片描述
    在这里插入图片描述

  • 连接芯片
    在这里插入图片描述
    在这里插入图片描述

  • 复位芯片
    在这里插入图片描述

  • 下载sbl_jtag_uniflash.out文件
    在这里插入图片描述
    在这里插入图片描述

  • 运行程序
    在这里插入图片描述
    运行后在输出框可以见到如下内容:
    在这里插入图片描述

  • 通过Console命令行操作flash
    在这里插入图片描述

  • 下载sbl文件
    在这里插入图片描述

  • 下载appimage文件
    在这里插入图片描述
    到这里程序就下载进去了。

3. 仿真调试

将boot mode设置成devboot模式
① 步骤一
在这里插入图片描述

② 步骤二
在这里插入图片描述

③ 步骤三
在这里插入图片描述

④ 步骤四
在这里插入图片描述

⑤ 步骤五
在这里插入图片描述
在这里插入图片描述

相关文章:

  • C++标识符:检查是否和保留字冲突
  • SQL 语句说明
  • 从竞速到巡检:不同无人机如何匹配最佳PCB方案?
  • 基于若依和elementui实现文件上传(导入Excel表)
  • Cygwin中使用其它平台生成的动态库
  • 【连载3】基础智能体的进展与挑战综述
  • Day11:关于MySQL的数据查询——子查询和联合查询
  • Python语言介绍
  • 代码随想录算法训练营day2(数组)
  • Docker安装常用软件教程(带完整命令)
  • 6.好事多磨 -- UDP网络连接
  • STP基本实验
  • 【C语言】预处理(下)(C语言完结篇)
  • 事件过滤器
  • MySQL 面经
  • 十七、TCP编程
  • 在 Lua 中实现 JSON 与 Table 的相互转换的详细使用方法
  • 《人件》第二章 办公环境
  • CLIP中的Zero-Shot Learning原理
  • `offset_mapping` 是什么
  • 正常网站 月均ip pv/宁波网站推广
  • 惠州附近公司做网站建设多少钱/百度移动端模拟点击排名
  • 东莞网站建设总部地址/什么优化
  • 成年男女做羞羞视频网站/东莞网络公司电话
  • 兴安盟做网站公司/阿里巴巴推广
  • 网站关键词优化怎么做/汽车营销策划方案ppt