linux用多了,一下子转freertos有点搞不习惯,有时候跑着跑着,想看log啊什么的,cd xxx,然后not found command??? 在windows上又这样,ls半天不对……
freertos相对而言对新人还是蛮好的哈哈,不说线程,说任务,搞得现在一看见task跟打了鸡血一样的。还是一样,关于任务机制的基础知识很多的,这里不写了,因为要说的真的太多了,只是举个栗子,看看双线程是怎么运行的。一般而言,任务之间么,同步啦,互斥啦,两不相欠啦;通信方式么,信号量啦,消息队列啦,还有freertos的notify机制啦,慢慢看,慢慢学。
我用的是两个线程,啊不任务(当然单核,多核还说你🐴呢)。一个负责上传图片,请求一个音频url,另一个接受url并播放。两个线程的优先级呢,应该是音频的高一点,因为初始化板子后,虽然它优先级高,架不住我们用信号量阻塞啊,把他阻塞住,优先级再高,cpu还不是我上传线程的怀中之物哈哈。这边检测摄像头静止,然后上传图片,云端给一个url,这里开始就要操作一下了,先上锁,给全局变量传url,再解锁,发送信号量,一般用计数信号量,不过二值信号量也ok,看具体要求吧,然后音频那边:终于等到你~爷的优先级高,现在终于没人拦了,你一个低优先级的线程,也敢和我抢cpu?朋友,真的是瞬时,真的没有等待时间,收到信号量,这个野兽立马就摆脱囚笼了,然后运行音频线程,播放巴拉巴拉。。。
单有一个双线程满足不了需求啊,再加呗,后面有空再更嗷,下次一定,下次一定。
嗷对了,代码是c语言写的,一些接口类似xTaskSemaphoreCounting()等等,查一下csdn都有,感动哭了呜呜呜。
照理说是应该附带上代码的,抱歉,我不按常理来。
下次一定嗷!
freeRTOS双线程案例
最新推荐文章于 2024-09-21 16:41:49 发布