Reset

C2000 设备有各种复位源。有关可能的复位源的完整列表,请参阅技术参考手册中的 “复位原因和处理 ”部分。以下是最常见复位源的说明:
Power-on Reset (POR): POR 电路用于在上电期间对整个器件进行干净利落的复位,同时抑制输入/输出引脚上的毛刺。
XRS (External Reset Pin): XRS 是设备的主芯片级复位,它将设备复位到默认状态(对于具有多个 CPU 子系统的设备,每个 CPU 子系统都会被复位)。
Watchdog Timer Reset: 看门狗将触发复位,并将 XRS 引脚拉低。
**注意:**对于双核/多核设备,CPU1 上的重置将重置整个设备,而其他核/子系统上的重置将仅重置该子系统。
复位原因寄存器 (RESC) 可用(对于多代码子系统设备,每个内核都有一个寄存器),读取该寄存器可确定复位原因。

Dual-Core Boot Process/ IPC(Inter-Processor Communication)

以下步骤适用于 F2837XD 设备:
当 CPU2 处于复位状态时,CPU1 从 CPU1 启动 ROM 开始执行,CPU1 控制启动过程, 然后CPU2 在 CPU1 的控制下完成自己的启动过程(CPU2 设置为启动到闪存时除外)。在启动过程中,CPU1 和 CPU2 之间使用 IPC 寄存器进行通信。

Boot Sequence

当 MCU 上电时,以及每次复位 MCU 时,都会执行位于Boot ROM 中的内部引导加载程序软件。Boot ROM 包含引导加载例程和特定片上内存块的执行入口点。该初始软件程序可用于通过各种可引导外设将应用程序加载到设备 RAM 中,也可配置为启动闪存中的应用程序。

Reset-Bootloader

  1. 外设中断扩展块(又称 PIE 块)和控制器中断开关 INTM 被禁用。这将防止启动过程中出现任何中断。
  2. 程序计数器被设置为 0x3FFFC0,重置矢量在此获取。
  3. 在启动代码中,检查 JTAG 测试复位信号 (-TRST),以确定调试探针是否连接到设备,调试会话(如实时 CCS 会话)是否处于活动状态。这适用于具有 -TRST 引脚的 F2837xD/F2837xS/F2807x/F2838x 器件。对于没有 -TRST 引脚的 F280049/F2002x/F28003x /F280015x 设备,将检查 RESC 寄存器中的 DCON 位,以确定与调试探针的连接。
  4. 调试探针的例子有 XDS100/XDS110/XDS200。一些旧文件将调试探针称为 “仿真器”。
    • 如果连接了调试探针,则启动过程遵循仿真启动模式流程(Emulation Boot Mode)。
    • 如果未连接调试探针,则启动过程遵循独立启动模式流程(Stand-Alone Boot Mode)。

Emulation Boot Mode

当调试探针连接到设备时,使用该模式。在仿真启动模式下,首先检查仿真键的值是否为 0x5A。如果键值无效,则进入 “等待 ”启动模式。然后可使用调试器修改键值和启动模式选择引脚值,然后发出复位命令以重启启动过程。键值可在一次性可编程(OTP)存储器中的启动引脚配置位置进行修改。这是在连接调试探针的设备开机过程中遵循的典型顺序,允许用户使用调试器控制启动过程。一旦仿真键设置为 0x5A,启动模式选择引脚将决定启动模式。支持的各种仿真启动模式可参见技术参考手册中的 “设备启动模式 ”部分。

Stand-Alone Boot Mode

该模式用于未将调试探针连接到设备的情况。在独立启动模式下,如果键值不是 0x5A,则启动模式由出厂默认启动模式选择引脚 (BMSP) 决定。如果键值为 0x5A,则启动模式由 BOOTPIN-CONFIG 位置中的 BMSPn 位字段决定。

Reset Code Flow - Summary

复位代码流程如下。复位后,程序计数器被设置为 0x3FFFC0,程序流程转向引导 ROM 中的 Init_Boot 代码。Init_Boot 代码根据模拟启动模式或独立启动模式定义执行入口。进入点可以是执行引导加载例程、进入Flash或 M0 RAM。

在这里插入图片描述

Emulation Boot Mode using Code Composer Studio GEL

调试期间,CCS GEL 文件用于设置设备的启动模式。默认情况下,GEL 文件提供将设备设置为 “引导至 SARAM ”和 “引导至 FLASH ”的功能。如果需要,还可以对其进行修改,以包含其他启动模式选项。
要访问 GEL 文件,请使用:

Tools -> GEL Files

Peripheral Software Reset Registers()

外设软件复位寄存器(SOFTPRESX)由复位位组成(每个位对应一个不同的外设)。当 SOFTPRESX 寄存器中的某个位被置位时,相应模块处于复位状态。所有设计数据都将丢失,模块寄存器将恢复到复位状态。如果要使模块/外设不复位,则必须手动清除某个位。
通常情况下,外设会在初始化开始时进入复位状态,以确保所有寄存器都处于默认值。初始化完成后,外设将跳出复位。
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐