This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-MSPM0G3519:程序在__NVIC_EnableIRQ ()函数处挂起

Guru**** 2392165 points
Other Parts Discussed in Thread: LP-MSPM0G3519, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1517647/lp-mspm0g3519-program-hangs-at-the-__nvic_enableirq-function

器件型号:LP-MSPM0G3519
主题: SysConfig 中讨论的其他器件

工具/软件:

我在 LP-Mspm0g3519板上进行原型设计,遇到这个令人困惑的问题,程序在__NVIC_EnableIRQ ()函数的__compiler_bride()步骤上挂起。   在下面的代码片段中、如果我取消对 UART5启用行的注释、我会在__Compiler_billey()步骤处挂起。  暂停调试器时会看到挂起步骤。  我的 UART5在 SysConfig 中的配置方式与 UART0相同、而 UART0工作正常。  请帮助、我被卡住了!  这是否意味着我需要禁用缓存?  

...   
  NVIC_EnableIRQ (UART0_INT_IRQn);
  //NVIC_EnableIRQ (UART5_INT_IRQn); //无法启用此线路
  NVIC_EnableIRQ (GPIOB_INT_IRQn);
  NVIC_EnableIRQ (TIMG12_INT_IRQn);
...
/**
 \brief 启用中断
 Details 在 NVIC 中断控制器中启用特定于器件的中断。
 \param [in]    IRQn 特定于器件的中断号。
 注意  IRQn 不得为负。
 */
__static_inline void _NVIC_EnableIRQ (IR Qn_Type IRQn)
 IF ((int32_t)(IRQn)>= 0)
 {
  ___Compiler_bridge(); //这是我的程序被卡住的地方
  NVIC->ISER[0U]=(uint32_t)(1UL <<(((uint32_t) IRQn)和0x1FUL));
  __编译器_BILAY()
 }
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎是用户错误。  我将 DMA 通道与其他 UART 混合使用、将我的应用发送到影子领域。  修复此错误还修复了在__Compiler_bridge()步骤中挂起的应用程序。  我仍然想知道代码如何挂起在这里,但我的问题已解决。