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参考资料

为什么选择运行时代码覆盖?

运行时代码覆盖是一项技术,该技术允许仅在需要执行时将可执行代码加载到存储器中。

可执行有效载荷存储在外部存储器中,并在运行时动态加载到共享执行区域中,而不是将所有软件模块一直驻留在存储器中。执行完成后,同一存储器区域可以被另一个有效载荷重用。当软件功能持续扩展,同时驻留运行时存储占用空间必须保持在可控范围内时,此方法特别有用。与在存储器映射模式下运行的 OSPI NOR 闪存不同,eMMC 作为块存储器件被访问,不支持由 MCU R5F 内核直接执行代码。因此,在执行之前,必须首先通过 FATFS 层读取存储在 eMMC 中的可执行代码,并将其复制到可执行存储器中。本应用手册中介绍的运行时代码覆盖方法使用 eMMC FATFS 作为有效载荷存储机制,并使用可重用的 SRAM 区域作为执行目标。这使得多个可执行模块能够共享一个共用的执行区域,同时保持较小的驻留运行时占用空间。