STM32 - 为什么我的功能停止并由另一个接管?

时间:2017-04-06 02:33:11

标签: c embedded stm32

我有一个主文件在STM32F4芯片上运行,ThreadX在后台运行(WICED SDK的一部分供你知道)。在这种情况下,我不使用任何ThreadX API。

我的代码设置如下:

void func_a(void) {
  ...
  interact_over_spi();
}

void func_b(void) {
  ...
}

int main() {
  func_a();
  func_b();
}

func_a()中,它通过SPI与串行NOR闪存芯片进行交互。但每次执行时,它似乎都会在一秒左右后提前终止。我注意到了这一点,因为 interact_over_spi()会将消息打印到串行控制台,然后突然停止并且来自 func_b()的消息开始打印。

我甚至不知道从哪里开始排除故障。函数运行的时间有长度限制吗?就像我说的那样,我默认使用ThreadX而不使用任何线程管理功能。我还注意到,当我将设备置于GDB下时问题就消失了。似乎在 interact_over_spi()的中间有断点迫使它运行直到完成。有什么想法吗?

0 个答案:

没有答案