直接在这个hardfault的汇编代码处打断点,看callstack,可以看到是执行到哪死的
直接在这个hardfault的汇编代码处打断点,看callstack,可以看到是执行到哪死的
新的一年,祝愿rt-thread越来越好,被越来越多人知道了解
因为你FINSH本身是运行在FINSH线程上的,你的这个程序运行时是执行在FINSH线程上的,而你写了个WHILE(1),相当于FINSH线程完全被你这个程序占了(rt_thread_delay只是调度去执行别的线程),所以FINSH线程堵死了,当然就无法执行其他操作了
会不会你系统还没跑起来就操作mutex了
禁止任务调度的话,就进入临界保护就行了
看起来像是传入的队列控制块地址为空
答案在风中飘 发表于 2020-5-25 13:40
推荐使用方案1,因为第二种方法还是会进入中断,而DIO的中断服务程序会操作timer,这里关中断主要就是为了 ...
推荐使用方案1,因为第二种方法还是会进入中断,而DIO的中断服务程序会操作timer,这里关中断主要就是为了保护timer操作的时候不被重入,所以斯尔螽方法可能无效
另外,其实可以直接调用rtt的timer的,就不需要些这么麻烦了
问 rt_thread出现hard fault on thread: