This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] F28M35H52C:控制系统复位

Guru**** 2341440 points
Other Parts Discussed in Thread: CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/586924/f28m35h52c-control-system-reset

器件型号:F28M35H52C
Thread 中讨论的其他器件:controlSUITE

你(们)好

我正在尝试实现从主系统调用的控制系统的软件复位。

从主系统调用

SysCtlSubSystemReset (SYSCTL_CONTROL_SYSTEM_RES_CNF); 

我看到控制系统有反应:它跳转至错误的0x3ff66b  存储器地址、当然会卡在那里。 这个地址不在 PieVectTable 中、我不明白为什么它跳到那里。

我应该怎么做才能正确复位控制系统?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     此功能适用于复位 控制系统。 复位后、CPU 将执行 BootROM 代码、地址0x3ff66b 指向 ROM。 因此它看起来不是不正确的。 请注意、重置后、主系统需要再次启动控制系统(就像启动时一样)。 有关该流程的更多详细信息、请参阅器件 TRM 中的"6.4器件引导流程图"。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Vivek

    您提到的流程图仅说明 了释放 RST 信号并等待 C28进行 IPC 处理。

    我尝试了以下代码:

    SysCtlSubSystemReset (SYSCTL_CONTROL_SYSTEM_RES_CNF);
    
    //发送引导命令以允许 C28应用程序开始执行
    HWREG (MTOCIPC_BASE + IPC_O_MTOCIPCCOM)= IPC_MTOC_EXECT_BOOTMODE_CMD;
    HWREG (MTOCIPC_BASE + IPC_O_MTOCIPCBOOTMODE)= CBROM_MTOC_BOOTMODE_BOOT_From_FLASH;
    //对选定的请求任务强制执行 IPC 事件并启用状态检查。
    HWREG (MTOCIPC_BASE + IPC_O_MTOCIPCSET)|=(IPC_FLAG1 | IPC_FLAG32); 

    但结果相同:C28内核不启动。

    我还尝试重新初始化 PLL 并调用 IPCMtoCBootControlSystem (CBROM_MTOC_BOOTMODE_BOOT_FROM _FLASH);

    但它也提供了相同的结果。

    您能否提供一个有关如何重新启动控制子系统(BOOT_FLOG_FLASH 模式)的确切示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    "controlSUITE\device_support\f28m35x\中的所有示例 \F28M35x_examples_Dual"(例如、闪烁)具有相同的函数调用-

      // 发送引导命令以允许 C28应用程序开始执行
       IPCMtoCBootControlSystem (CBROM_MTOC_BOOTMODE_BOOT_FROM _FLASH);

    在 M3代码中、在 C28x 复位例程之后、您应该调用此函数 以从闪存引导 C28x。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经尝试过这个。 M3内核在线路复位后挂起
    //循环、直到 C28控制系统 IPC 标志1和32可用
    while (HWREG (MTOCIPC_BASE + IPC_O_MTOCIPCFLG)和(IPC_FLAG1 | IPC_FLAG32))



    C28不会启动
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是独立运行还是连接了调试器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调试器已连接
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Sergey pla]Debugger 已连接

    [/报价]

    这会产生什么影响?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果连接了调试器、则当您单击运行按钮时、C28x 将运行。 这不是发生的吗?

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否、由于0x3ff66b 地址处没有代码、因此无法运行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sergey、
    如果您已将调试器连接到 C28x、并且 C28x CPU 在 M3向 C28x 发出复位命令之前未运行、则 C28x CPU 在复位之后将不会运行。

    在 M3上运行代码之前、请让 C28x CPU 处于运行模式、该代码会发出控制子系统复位命令、而在发出复位命令后、M3上的代码必须等待 C28x 准备好接受 IPC 引导命令。 如 Vivek 前面所述、这在以下函数中实现。

    IPCMtoCBootControlSystem (CBROM_MTOC_BOOTMODE_BOOT_FROM _FLASH);

    希望这对您有所帮助。

    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、请确保向 C28x 发出正确的引导模式 IPC 命令、如果 C28x 闪存中没有任何代码、则从闪存 IPC 命令将不起作用。 如果 RAM 中有代码、则可能应使用从 RAM IPC 引导命令。

    请参阅 TRM 的引导 ROM 一章。

    此致
    Santosh Athuru