关于LPC18xx软件复位NVIC_SystemReset失败的问题

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

关于LPC18xx软件复位NVIC_SystemReset失败的问题

2,329 Views
1595352306
Contributor I

麻烦问一下,程序里面调用__set_FAULTMASK(1);NVIC_SystemReset();这两句进行软件复位,程序运行到NVIC_SystemReset中的__DSB()就挂死不往下进行复位操作了,请问这是什么情况?你们有遇到过这类的问题么?

 

/** \brief System Reset

The function initiates a system reset request to reset the MCU.
*/
__STATIC_INLINE void NVIC_SystemReset(void)
{
__DSB(); /* Ensure all outstanding memory accesses included
buffered write are completed before reset */
SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */
__DSB(); /* Ensure completion of memory access */
while(1); /* wait until reset */
}

Labels (1)
0 Kudos
8 Replies

2,266 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

你试一下只用 NVIC_SystemReset();

我只有LPC1837的板子,试了一下可以用这个软件复位,结果请查看附件。

 

0 Kudos

2,263 Views
1595352306
Contributor I

没有用我提供给你的工程试么?

我发给你的工程,这个重启一直都挂死,但是我把内核由CORE_M3改成CORE_M4,重启功能就正常了~

现在就是不知道导致这个问题的原因,希望帮忙分析一下~

0 Kudos

2,311 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

您好,

请提供可以复现问题的完成工程,和芯片的全称,我帮您试一下,谢谢。

 

 

0 Kudos

2,300 Views
1595352306
Contributor I

麻烦提供一个邮箱,我把工程包发给你~

0 Kudos

2,292 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

一个简单的可以复现你问题的工程就可以,可以将机密隐去。

其实你也可以自己调试,将代码删减到最简,看是否还有问题。

工程直接附在这里就行:

Alice_Yang_2-1619686146258.png

 

0 Kudos

2,280 Views
1595352306
Contributor I

哦对了,之前的回复忘了提了,芯片型号为LPC1857,还麻烦您帮忙看一下是那边的问题导致没有重启成功,这个问题困扰我好久了~

谢谢~

0 Kudos

2,284 Views
1595352306
Contributor I

代码逻辑很简单,是这样的:

1595352306_0-1619687857462.png

实际使用中,通过超级终端发送字符r,会走重启流程,但是走一半就挂死走不下去了,看到的现象是这样的:

1595352306_1-1619688188859.png

 

0 Kudos

2,305 Views
1595352306
Contributor I

工程怎么提供给你

0 Kudos