之前已经通过软件解决复位时CPU寄存器初始化,讨论见文章最后链接,已经实现软件复位功能,但是在实际使用中存在一个问题:
软件复位以后,ADC中断无法响应。跟踪代码以后发现,软件通过PIECTRL寄存器最低位写0关闭PIE以后,它的状态是保持的。高15位仍然保持上一次的值0x0D4A也就是上一次ADC中断向量的入口地址,其余PIE的寄存器都可以通过软件操作恢复复位值,但是PIECTRL的高15位PIEVECT是只读的,无法写入。
我的bootloader在跳转APP的时候都会通过软件将用到的外设反初始化到复位状态,交给APP一个“干净”的运行环境,尽量减小bootloader的影响。由于需要跳转到APP,无法通过看门狗复位来完成。目前除了PIE,其它外设包括CPU寄存器都能通过软件来反初始化,反初始化或者说单独复位PIE模块有没有什么方法?谢谢解答。
e2echina.ti.com/…/73518