嵌入式学习小组
直播中

王丹青

8年用户 153经验值
私信 关注

UCOS怎么实现原子操作

目前有个全局变量和数字,需要在中断函数中和任务中都要访问,请问各位大神UCOS怎么实现原子操作?网上搜索一圈没发现实例呢,是大家都不用原子操作吗

回帖(1)

李先吊

2020-5-20 07:50:42
首先!UCOS没有linux里面的那一套东西!什么自旋锁、读写自旋锁、顺序自旋锁、原子操作,原子变量、原子位操作等,在UCOS里面你想对一个可能会产生多线程访问的共享资源做保护的话就只有一种方法:临界段代码保护,随便一个讲解UCOS的书都会告诉你临界段代码保护是怎么做的,就是两个函数,进临界段和临界段。而临界段的实现方法有两种,一种是关闭任务调度器,另外一种是直接关闭全局中断。如果你只是要读写一个变量,并且确保读写的原子性的时候就直接关闭全局中断就行了,读写完成以后在打开全局中断即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分