开发者社区> 问答> 正文

请教linux 和外部mcu串口通讯,并发、异步、阻塞问题!!

近段时间要做android下串口通信的东东,大概功能是android系统端的ARM和系统外的一个MCU通信。
有几种通讯方式(同一串口):
1、android上面可以用app和mcu进行串口通讯。
2、驱动下面的模块也要和mcu通过串口通讯。
2.1、某模块需要每3秒通过串口读取mcu的信息;
2.2、某模块需要在某一时刻通过串口和mcu通讯;

我想其中应该会涉及并发、异步、阻塞等。
现在我想再编写一个驱动模块,在这个模块内处理这些冲突。
系统和mcu进行串口通信都通过这个模块。

不知道这样做行不行?
大家有没有更好的方法?
能不能帮我想一下具体细化的编写思路?

希望高手们指导一下!
谢谢大家了!

展开
收起
a123456678 2016-06-13 17:11:05 2530 0
1 条回答
写回答
取消 提交回答
  • android的app和驱动的模块通过串口访问的内容是一致的吗?我觉得如果要获取的内容不多,固定几个request和reply。

    那么对于app的读操作,可以在驱动里面定时轮询,然后将轮询结果缓存,在app进行访问时,直接将缓存值返回,这样避免了app对串口的直接访问。

    对于app的写操作,那么使用request队列的方式,发给内核驱动统一处理。

    当然以上只是对于实时性要求不是非常高的系统而言的。

    2019-07-17 19:36:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
冬季实战营第二期:Linux操作系统实战入门 立即下载
Decian GNU/Linux安全合规之路 立即下载
从 Linux 系统内核层面来解决实际问题的实战经验 立即下载