你好,
我必须重新设置从引导加载程序启动的应用程序……似乎调用NVIC_SystemReset应用程序不从SW引导加载程序再次传递,这是可能的吗?
谢谢
马可
嗨garzola,
软件重置后,引导加载程序将不再执行,应用程序将从主程序运行。如果您想在重置D1468x后重新运行引导加载程序,您应该引起一个硬件重置。HW重置基本上是由RST pad,看门狗过期,POR和调试器触发(通过编写SWD_RESTET_REG)。在你的问题上一个可能的解决方案是明确地触发看门狗机制,但一些修改可能需要导致HW重置。请看看5重启分析- WDOG部分调试技术教程(HTML)教程。默认情况下,系统配置为当WDOG达到零值时发出NMI中断。因此,您应该注释掉hw_watchdog_freeze(),以避免每次您想要点击WDOG并导致HW重置时出现NMI。下一步是停止在任务中通知他WDOG,因为您希望显式地触发WDAG机制而不是触发NMI机制。例如,您可能会注释掉IDLE任务中的sys_watchdog_notify()。根据DA1468x首次启动时描述的过程,不会通知WDOG,超时将过期,WDOG将被显式触发。当它被触发时,NMI将不会被执行,并且硬件复位将发生。硬件重置后,引导加载程序将再次运行。请注意,在每次系统启动时,按照此过程进行,将发生硬件重置。因此,我的建议是,当WDAG第一次到达SPI flash时,在SPI flash中添加一个标志,当系统重新启动时,您应该读取这个标志,而不是显式地触发WDAG机制。
谢谢,PM_Dialog
谢谢。
现在我明白了…顺便说一下,我调用hw_cpm_reboot_system(),它似乎再次调用引导加载程序。
致以最亲切的问候。
谢谢你的暗示。
PM_Dialog
嗨garzola,
软件重置后,引导加载程序将不再执行,应用程序将从主程序运行。如果您想在重置D1468x后重新运行引导加载程序,您应该引起一个硬件重置。HW重置基本上是由RST pad,看门狗过期,POR和调试器触发(通过编写SWD_RESTET_REG)。在你的问题上一个可能的解决方案是明确地触发看门狗机制,但一些修改可能需要导致HW重置。请看看5重启分析- WDOG部分调试技术教程(HTML)教程。默认情况下,系统配置为当WDOG达到零值时发出NMI中断。因此,您应该注释掉hw_watchdog_freeze(),以避免每次您想要点击WDOG并导致HW重置时出现NMI。下一步是停止在任务中通知他WDOG,因为您希望显式地触发WDAG机制而不是触发NMI机制。例如,您可能会注释掉IDLE任务中的sys_watchdog_notify()。根据DA1468x首次启动时描述的过程,不会通知WDOG,超时将过期,WDOG将被显式触发。当它被触发时,NMI将不会被执行,并且硬件复位将发生。硬件重置后,引导加载程序将再次运行。请注意,在每次系统启动时,按照此过程进行,将发生硬件重置。因此,我的建议是,当WDAG第一次到达SPI flash时,在SPI flash中添加一个标志,当系统重新启动时,您应该读取这个标志,而不是显式地触发WDAG机制。
谢谢,PM_Dialog
谢谢。
现在我明白了…顺便说一下,我调用hw_cpm_reboot_system(),它似乎再次调用引导加载程序。
致以最亲切的问候。
马可
嗨garzola,
谢谢你的暗示。
PM_Dialog