stm32最小系统板 hal 移植UCOSIII 一直进入HardFault_Handler
时间: 2023-10-12 18:07:35 浏览: 111
移植UCOSIII时,经常会出现HardFault_Handler错误。这是因为在移植的过程中,UCOSIII和HAL库的优先级设置不一致导致的。UCOSIII要求在OSInit()函数中设置全局中断优先级分组和中断优先级,而HAL库默认是使用优先级分组0,这会导致UCOSIII和HAL库的中断优先级设置冲突,从而导致HardFault_Handler错误。
解决方法是在OSInit()函数中设置正确的中断优先级分组和中断优先级,以确保与HAL库的设置一致。一般来说,可以将中断优先级分组设置为NVIC_PRIORITYGROUP_4,这是UCOSIII默认使用的中断优先级分组。同时,需要将HAL库中的所有中断优先级设置为与UCOSIII中的中断优先级相同,以保证两者之间的一致性。
阅读全文