工具/软件:
您好、
我们使用 4 个内核 (3C28 和 1cm) 开发全功能应用、我们将其称为 Main (1C28 和 1cm) 和 Control (2 个 C28 内核)。 现在、我们更新了电路板硬件并对引脚排列进行了一些修改:顺便说一下、主要变化是现在我们仅使用主 MCU 的 CPU1 内核、控制 MCU 几乎没有任何变化。
在第一次部署中、我在 Main 的 CPU1 内核(使用 FreeRTOS)中进行调试、在 INIT 部分之后、任务开始、但很快会重新发送内核。 我重复了很多次,我得到了同样的行为。 因此、我切换到了示例工程(例如:清空且闪烁,因为我们在开发板的示例中使用了 GPIO31 和 GPIO34 的 LED) 、然后我检查了空工程是否可以正常运行、但我在闪烁示例中初始化部分后获得了相同的复位行为。 闪存和 RAM 执行之间没有区别。
此外、我在控制 MCU 上尝试了相同的示例、它们完全可以正常运行、没有任何问题。
所以、我认为主 MCU 上有硬件问题、我更换了电路板、但也出现了同样的行为。 然后、我测量了电源时钟、一切似乎都正常。
然后,我尝试禁用 Device_Init () 函数中的一些 init 部分,并得到了禁用 Device_enableAllPeripherals();,闪烁示例 启动并运行良好。
//
// Turn on all peripherals
//
// Device_enableAllPeripherals();
Device_initGPIO();
我尝试对 SoM 器件进行注释、但似乎可以获得程序启动的不同组合、但在几秒钟后或其他组合后复位、然后在调试中开始、但如果我手动复位电路板(使用正确的引导引脚执行闪存)、或通过电源循环或其他组合启动并执行、几秒钟复位后返回开始并执行、则不会开始。
最后、我监控了 CpuSysRegs.RESC 寄存器、在调试中、我可以检查一下、在删除任何先前的原因后:
//
// Initialize device clock and peripherals
//
Device_init();
EALLOW;
uint16_t cause = SysCtl_getResetCause();
SysCtl_clearResetCause(cause);
SysCtl_disableWatchdog(); // try to disable it again
EDIS;
我得到了、即使 WD 被禁用、也会发生 WDRSn 复位、 有时我也会进行 XRSn 复位:

MCU 会持续复位 14.4ms(如果可以提供帮助)。 在以下定制电路原理图中:

因此、我有点困惑:我可以看到代码相关性、但我仍然认为 引脚排列/复位电路和外设之间存在一些硬件问题/交互:请问您能帮帮我吗?
Fabio
