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