Spring中的aware接口详情
397
2022-10-23
MCU_STM32CUBEMX v5.5.0的一个BUG:ethernetif_input引起进入HardFault_Handler
STM32CUBEMX v5.5.0 配置FreeRTOS + LWIP,在MX_LWIP_Init()中的倒数第二句, osThreadNew(ethernetif_input, &link_arg, &attributes); 这里是错误的,link_arg显然不能是ethernetif_input的参数, 正确的用法是 osThreadNew(ethernetif_set_link, &link_arg, &attributes); 不过,如果你下载最新版STM32CUBEMX的话,这个BUG已经修复了。 顺便说两句,发现这个BUG的原因,是仿真调试时会在ethernetif_input中因为指针错误而直接进入HardFault_Handler。好奇在网上查找了一下,发现有不少在启动FreeRTOS+LWIP时在prvStartFirstTask中调用“svc 0"这条指令时会进入HardFault,当然本质上是SVC中断进入vPortSVCHandler中断服务,中断服务调用第一个最近的Task就是这个ethernetif_set_link,这个Task也是MX_LWIP_Init()中最后加入的那个,也是用户创建的Task的前一个(使用默认优先级的情况)。 不过貌似现在最新版已经把MX_LWIP_INIT移到第一个任务里去了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~