前不久通过学习UCOSIII,做了个小项目,但是对于UCOSIII还存在一点小疑惑,望各位大佬解答。
通常为了保证系统的实时性,会利用很多中断,假如现在有A、B两个进程,A进程在接收到数据才开始执行,最好的办法就是让A阻塞在一个信号量中,然后通过接收中断判断是否接收到A所需要的数据,
来决定是否释放信号量唤醒A进程,但是小弟有个疑问,就是中断没办法主动将信号量持有,那么信号量在任务建立时就创建了,信号量被谁持有呢?如果不被持有,那么A进程就能够得到信号量,如何阻塞?
中断中没办法创建信号量,那么在中断释放信号量前,难道还要建立一个新的进程来持有信号量,等到中断接收到数据,再释放吗?
一周热门 更多>