完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近重新研究了一下RTT AT_Client代码的细节,之前at_client_getchar的实现我是基于FreeRTOS队列移植,想问一下RTT为什么没有用IPC里的队列实现字符流接收而是采用了信号量+FIFO机制呢? |
|
相关推荐
4个回答
|
|
用队列存字节流?一个字节占12个字节?一个链表结点携带一个字节有效数据?
|
|
|
|
妥了妥了,顺便问一下用信号量的话,里面经常出现rt_sem_control(client->resp_notice, RT_IPC_CMD_RESET, RT_NULL); 在其他RTOS里面移植可不可以直接去掉还是改成零等待的eat一下信号量呢?
|
|
|
|
比较危险的操作,能不用就不用的好
|
|
|
|
使用IPC中的队列和使用信号量加FIFO在实现上有一些不同之处。
首先,IPC中的队列是由操作系统内核提供的一种机制,而信号量加FIFO则需要应用程序自己实现。因此,在某些情况下,使用IPC中的队列比使用信号量加FIFO更容易实现,并且更加可靠。 其次,IPC中的队列通常具有更强的容错性。当一个进程向队列发送消息时,即使目标进程当前没有等待接收消息,消息也会被存储在队列中,直到目标进程准备好接收为止。而在信号量加FIFO中,如果没有等待的进程,消息就会被直接丢弃。 此外,IPC中的队列还可以支持多个读取者和写入者,而信号量加FIFO通常只能支持单个读取者和写入者。 最后,两者的应用场景也略有不同。IPC中的队列通常用于进程间通信,特别是在多处理器或多核处理器系统中。而信号量加FIFO通常用于单进程中不同任务之间的通信。 综上所述,使用IPC中的队列和使用信号量加FIFO在某些情况下可以交替使用,但在不同的应用场景中可能有不同的优缺点。具体选择哪种方式要根据实际需求进行权衡。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
655 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2448 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1292 浏览 0 评论
1895 浏览 0 评论
1486 浏览 0 评论
74860 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 15:17 , Processed in 1.089502 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号