ZHCUCH3A November   2024  – March 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   使用前必读
    1.     关于本手册
    2.     德州仪器 (TI) 相关文档
    3.     术语表
    4.     支持资源
    5.     商标
  3. 1架构概述
    1. 1.1 CPU 简介
    2. 1.2 数据类型
    3. 1.3 C29x CPU 系统架构
      1. 1.3.1 仿真逻辑
      2. 1.3.2 CPU 接口总线
    4. 1.4 存储器映射
  4. 2中央处理单元 (CPU)
    1. 2.1 C29x CPU 架构
      1. 2.1.1 特性
      2. 2.1.2 方框图
    2. 2.2 CPU 寄存器
      1. 2.2.1 寻址寄存器 (Ax/XAx)
      2. 2.2.2 定点寄存器 (Dx/XDx)
      3. 2.2.3 浮点寄存器 (Mx/XMx)
      4. 2.2.4 程序计数器 (PC)
      5. 2.2.5 返回程序计数器 (RPC)
      6. 2.2.6 状态寄存器
        1. 2.2.6.1 中断状态寄存器 (ISTS)
        2. 2.2.6.2 解码阶段状态寄存器 (DSTS)
        3. 2.2.6.3 执行阶段状态寄存器 (ESTS)
    3. 2.3 指令打包
      1. 2.3.1 独立指令和限制
      2. 2.3.2 指令超时
    4. 2.4
      1. 2.4.1 软件栈
      2. 2.4.2 受保护的调用栈
      3. 2.4.3 实时中断/NMI 栈
  5. 3中断
    1. 3.1 CPU 中断架构方框图
    2. 3.2 RESET、NMI、RTINT 和 INT
      1. 3.2.1 RESET(CPU 复位)
        1. 3.2.1.1 所需指令 (RESET)
      2. 3.2.2 NMI(不可屏蔽中断)
        1. 3.2.2.1 阻止和屏蔽 (NMI)
        2. 3.2.2.2 信号传播 (NMI)
        3. 3.2.2.3 栈 (NMI)
        4. 3.2.2.4 所需指令(NMI)
      3. 3.2.3 RTINT(实时中断)
        1. 3.2.3.1 阻止和屏蔽 (RTINT)
        2. 3.2.3.2 信号传播 (RTINT)
        3. 3.2.3.3 栈 (RTINT)
        4. 3.2.3.4 所需指令 (RTINT)
      4. 3.2.4 INT(低优先级中断)
        1. 3.2.4.1 阻止和屏蔽 (INT)
        2. 3.2.4.2 信号传播 (INT)
        3. 3.2.4.3 堆栈 (INT)
    3. 3.3 阻止中断的条件
      1. 3.3.1 ATOMIC 计数器
    4. 3.4 CPU 中断控制寄存器
      1. 3.4.1 中断状态寄存器 (ISTS)
      2. 3.4.2 解码阶段状态寄存器 (DSTS)
      3. 3.4.3 与中断相关的栈寄存器
    5. 3.5 中断嵌套
      1. 3.5.1 中断嵌套示例图
    6. 3.6 安全性
      1. 3.6.1 概述
      2. 3.6.2 链接
      3. 3.6.3
      4. 3.6.4 区域
  6. 4寻址模式
    1. 4.1 寻址模式概述
      1. 4.1.1 文档和实施
      2. 4.1.2 寻址模式类型列表
        1. 4.1.2.1 其他寻址类型
      3. 4.1.3 寻址模式汇总
    2. 4.2 寻址模式字段
      1. 4.2.1 ADDR1 字段
      2. 4.2.2 ADDR2 字段
      3. 4.2.3 ADDR3 字段
      4. 4.2.4 DIRM 字段
      5. 4.2.5 其他字段
    3. 4.3 对齐和流水线注意事项
      1. 4.3.1 对齐
      2. 4.3.2 流水线注意事项
    4. 4.4 寻址模式类型
      1. 4.4.1 直接寻址
      2. 4.4.2 指针寻址
        1. 4.4.2.1 具有 #Immediate 偏移的指针寻址
        2. 4.4.2.2 具有指针偏移的指针寻址
        3. 4.4.2.3 具有 #Immediate 递增/递减的指针寻址
        4. 4.4.2.4 具有指针递增/递减的指针寻址
      3. 4.4.3 栈寻址
        1. 4.4.3.1 分配和取消分配栈空间
      4. 4.4.4 循环寻址指令
      5. 4.4.5 位反向寻址指令
  7. 5功能安全和信息安全单元 (SSU)
    1. 5.1 SSU 概述
    2. 5.2 链接和任务隔离
    3. 5.3 在任务隔离边界之外共享数据
    4. 5.4 受保护的调用和返回
  8. 6仿真
    1. 6.1 仿真功能概述
    2. 6.2 调试术语
    3. 6.3 调试接口
    4. 6.4 执行控制模式
    5. 6.5 断点、观察点和计数器
      1. 6.5.1 软件断点
      2. 6.5.2 硬件调试资源
        1. 6.5.2.1 硬件断点
        2. 6.5.2.2 硬件观察点
        3. 6.5.2.3 基准计数器
      3. 6.5.3 PC 跟踪
  9. 7修订历史记录

执行控制模式

C29x CPU 支持停止模式调试执行控制模式。STOP 模式可以完全控制程序执行,并允许禁用所有中断。在这种执行模式下,程序在出现中断事件时暂停执行,例如出现软件断点指令或指定的程序空间或数据空间访问。

停止模式会导致中断事件(例如断点和观察点)在下一个中断边界(通常与下一指令边界相同)暂停程序的执行。当执行暂停时,所有中断(包括 NMI 和 RS)都将被忽略,直到 CPU 再次接收到运行代码的指令。

在停止模式下,CPU 可以在以下执行状态下运行:

  • 调试暂停状态:在停止模式调试暂停状态下,CPU 暂停。当 CPU 在启用调试的情况下运行并遇到中断事件(例如断点或观察点、硬件触发器或用户启动的停止请求)时,将进入此状态。
    • 用户暂停:用户从调试器发出调试暂停请求。
    • 硬件断点:可以设置 ERAD 以在指定的程序地址上生成硬件断点。如果指定地址处的指令包即将进入 CPU 流水线的 Decode2 阶段,则会使 CPU 进入暂停状态。
    • 软件断点:这是由调试器通过将 EMUSTOP0 指令放置在所需的程序地址来设置的。如果 EMUSTOP0 即将进入 CPU 流水线的 Decode2 阶段,这会导致 CPU 进入暂停状态。
    • 观察点:ERAD 可配置为在 CPU 进行指定的数据存储器访问或某种其他系统条件或这些条件的组合时生成观察点。一旦这个定义的事件发生,ERAD 就会向调试控制器生成一个观察点请求,该请求会导致 CPU 停止。
    • 外部触发器:来自 CPU 之外各种来源的器件级触发器可配置为向 CPU 发出暂停请求,也可导致 CPU 暂停。当暂停一个 CPU 需要在调试器控制多个 CPU 时触发另一个 CPU 的暂停时,通常使用此方法。

    在调试暂停状态下,由于 CPU 暂停,CPU 无法处理任何中断,包括 NMI 和 RS(复位)。当 CPU 处于暂停调试状态时,如果同一中断的多个实例发生而第一个实例未被处理,则稍后的实例将丢失。

  • 单步状态:当用户指示调试器执行单个指令包时,进入此状态。CPU 执行 PC 指向的单个指令包,然后返回到调试暂停状态(CPU 从一个中断边界执行到下一个中断边界)。只有在单指令完成前,CPU 才处于单指令状态。如果在此状态下发生中断,则用于进入此状态的命令决定是否可以为该中断提供服务。如果 DINT 被置位,CPU 可以处理中断;如果 DINT 未被置位,即使中断是 NMI 或 RS,CPU 也无法处理中断。
  • 运行状态:当用户在启用停止调试模式的情况下从调试器接口发出运行命令时,从停止状态进入该状态。CPU 执行指令,直到调试器命令或调试事件使 CPU 返回到调试暂停状态。CPU 可以处理此状态下的所有中断。当中断与调试事件同时发生时,调试事件具有优先级;但是,如果中断处理在调试事件发生之前开始,则无法处理调试事件,直到中断服务例程开始。
  • 自由运行:当用户在禁用停止模式调试模式后从调试器接口发出运行命令时,从停止状态进入此状态。CPU 将继续执行并忽略诸如断点、观察点和触发器等进一步的调试事件,并像调试器不再连接一样继续执行。
  • 同步运行:这仅仅是基本运行状态的扩展。根据配置,调试控制器可配置为接收运行请求,以便 CPU 仅在某个全局同步信号变为活动状态时启动实际运行。当在由调试器控制的多个 CPU 上同时开始执行时,使用此方法。