Part Number: TMS320F28035
各位TI的工程师:
你们好。我可能需要一些帮助。我有个项目使用了C2000 TMS32028035的MCU芯片。目前遇到了一个问题,因为一些原因,我们使用了内部晶体振荡器1作为主时钟源,正常情况下,我们的固件会正常运行。但是当我们需要在线升级固件时,出现了一些问题。我们的固件使用CAN通信升级,从APP固件跳转BOOT固件是通过屏蔽看门狗喂狗方式通过看门狗复位实现的。然而我们发现看门狗溢出复位再次进入APP固件后,看门狗出现了异常,无法再次复位。为了调查原因,我们进行仿真,下面是仿真过程
1)刚烧录,进行仿真,直接运行时看门狗寄存器

2) 第一次发CAN升级指令(通过设置标志符,使APP无法喂狗,通过看门狗复位到boot),注意框中的CAN报文是由BOOT固件发出来的,说明收到指令后,程序跳到BOOT固件后,又从BOOT跳到APP里,这是我们预期的,然而仿真窗口看门狗寄存器已经发生变化

3) 再次发送升级报文,程序没有进行跳转,这里程序还在APP固件里,没有发送APP的报文,是因为升级标志位置位,没有运行CAN发送函数

4) 通过仿真器将升级标志符清0,程序发送APP固件报文,则进一步印证了3)的猜测:看门狗复位失效,特别说明:使用内部晶振2,每次都能正常复位

5)下面是我的初始化配置函数



以上,希望工程师大佬帮忙分析下原因,顺便问下内部晶振1和内部晶振2的区别,非常感谢大佬的指导!