CUBEMX生成代码运行时产生hardfault

所属分类:STM32F系列 浏览数:1204 提问者:mnlife 提问时间:2019-01-15

问:

本人用cubemx生成的stm32f103vct6的代码,烧录运行总是产生hardfault,产生hardfault的位置为下面这段函数: __asm void prvStartFirstTask( void ) { .......................... /* Call SVC to start the first task. */ svc 0 nop nop } 逐步细查后将下面这个函数的 HAL_NVIC_SetPriority(SVCall_IRQn, 5, 0)中,优先级由5改为4后,问题解决,不过不知道这样为什么可以解决,有人可以告诉原因吗,感谢????? void HAL_MspInit(void) { ......................... /* SVCall_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SVCall_IRQn, 5, 0); ........................... }


答:首先你要清楚你选择的中断优先级组别是多少,这样才能合理安排抢占优先级与响应优先级的具体数据。另外,你似乎使用了OS,这里又涉及到优先级的合理安排会肯能影响到任务的调度。
回答者:xmshao 回答时间:2019-01-16

答:大哥,我这是运行后出现hardfault了,你这完全前言不搭后语,汗
回答者:mnlife 回答时间:2019-01-21

答:优先级、堆栈的安排不当都可能导致hardfault.
回答者:xmshao 回答时间:2019-01-31

登录后回答。
图书推荐
漫画半导体(高清版)

漫画半导体(高清版)

这是一本实用性很强的图书,,以漫画的形式更易于让人接受,边读故事边学知识,轻松且易于记忆。
算法心得:高效算法的奥秘

算法心得:高效算法的奥秘

本书给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门...
基于STM8S-无刷直流电机控制应用

基于STM8S-无刷直流电机控制应用

无刷直流电机是21世纪最有发展前景的新型电机之一。本书以STM8S单片机为控制核心...
广告