ZHDA191 June   2026 TDA4VE-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2运行时代码覆盖后台
    1. 2.1 TDA4x 的存储器架构
    2. 2.2 静态代码分配的挑战
    3. 2.3 为什么选择运行时代码覆盖?
  6. 3运行时代码覆盖方法
    1. 3.1 概述
    2. 3.2 驻留运行时
    3. 3.3 覆盖有效载荷包
    4. 3.4 共享 SRAM 覆盖区域
    5. 3.5 运行时覆盖序列
  7. 4运行时代码覆盖架构
    1. 4.1 软件架构
    2. 4.2 覆盖包格式
    3. 4.3 存储器布局
    4. 4.4 运行时映像加载
    5. 4.5 运行时执行
  8. 5演示实现
    1. 5.1 软件组织
    2. 5.2 覆盖 SRAM 配置
    3. 5.3 有效载荷生成
    4. 5.4 有效载荷加载和执行
    5. 5.5 构建配置
  9. 6运行时代码覆盖验证
    1. 6.1 PayloadA 执行
    2. 6.2 PayloadB 执行
    3. 6.3 PayloadC 执行
    4. 6.4 共享 SRAM 覆盖槽重用
    5. 6.5 完整运行时验证
  10. 7总结
  11. 8参考资料

覆盖包格式

每个可执行有效载荷都打包为覆盖映像,包含一个包标头,后跟可执行代码段。包标头提供运行时加载器所需的元数据,用于验证有效载荷、确定可执行代码的大小以及定位运行时入口点。当前实现采用以下包格式。

typedef struct BootApp_OverlayPkgHeader_s
{
    uint32_t magic;
    uint32_t totalSize;
    uint32_t codeSize;
    uint32_t entryOffset;
    uint32_t flags;
    uint32_t reserved[3];
} BootApp_OverlayPkgHeader;