打印
[uCOS/RTOS]

为什么退出临界区后任务调度不起作用

[复制链接]
1264|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andiwxz|  楼主 | 2018-12-19 10:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 andiwxz 于 2018-12-19 10:17 编辑

大家好:           我第一次使用ucos,理解不透测,请大家帮个忙。因为有个要写flash的操作,要写一整页4096字节,因此不想被打断,所以准备使用临界保护。在例程里看见有相关的函数,就直接照例子搬过来,但是发现调用以后,等函数执行到while(1)里边的GUI_Delay(100);以后,就不知道跑到那里去了,没死机,但是不再响应任何任务或者按键。如果不用临界保护就没有这个问题。所以可能是我用错了,但是为什么错我还不清楚,所以请教大家,这是为什么?代码如下,其中W25QXX_Write函数是开发板带的。页写函数。

无标题.jpg (251.38 KB )

无标题.jpg

相关帖子

沙发
ayb_ice| | 2018-12-20 17:29 | 只看该作者
临界期间不要调用系统函数
另外成对使用就可以了

使用特权

评论回复
板凳
e_007| | 2018-12-26 17:24 | 只看该作者
延迟函数调用了系统函数,挂掉了,可能要改写?

使用特权

评论回复
地板
e_007| | 2018-12-26 17:24 | 只看该作者
延迟函数可能调用了系统函数,挂掉了,可能要改写?

使用特权

评论回复
5
andiwxz|  楼主 | 2019-1-16 09:08 | 只看该作者
谢谢大家热心帮助。结合大家说的,我改写了函数,结构调整了一下,并且仅在写flash的时候调用临界区保护函数。已经正常了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

258

帖子

3

粉丝