求大神帮助

渊赜 2019-05-18 09:47:35
下面代码是一个fifo读取函数,假设在一个单片机系统中,有两个任务在同一个fifo中获取数据,已知两个任务的优先级不同,高优先级任务会打断低优先级任务的执行。请问在这样的场景下,这段代码中的实现是否合理?如不合理应该怎样修改? void* fifo_s_get(fifo_s_t* p_fifo) { void* retval = 0; if (0 == p_fifo->used_num) return 0; if (0 == p_fifo->used_num) { return 0; } if(p_fifo->p_read_addr > p_fifo->p_end_addr) p_fifo->p_read_addr = p_fifo->p_start_addr; retval = *p_fifo->p_read_addr; p_fifo->p_read_addr++; p_fifo->free_num++; p_fifo->used_num--; return (retval); }
...全文
22 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧