• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

FreeRTOS中如何在多任务中访问外设

Angel_YY 2018-04-20 浏览量:1682
在FreeRTOS中两个任务需要轮流使用通过一个SPI获取外部ADC的采集数据,如何保证两个任务同步?用队列,互斥,信号量还是事件标志组更合理。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这种用标志比较合理,有访问的时候将标志置1,访问完成再将标志归0
    • 发布于 2018-04-20
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:12
  • 不同的任务对于同一个外设的使用相进行互锁的机制,可以使用互斥。

    一般在设计时,将同一个外设的操作完成后,再把这个外设的使用权交出去,否则 ,在任务1刚刚对外设进行了配置或是其他操作但是没有操作完,任务2可能会另外的配置了这个外设,但是将回到任务1时,刚才操作的外设配置已经更改了,这就会产生逻辑上的bug,还不好找。

    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 1
    • 0

  • 一般是像linux那样轮流使用的 使用后释放内存 然后另外一个程序使用
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 1
    • 0

  • 通过任务轮询的方式,采用二值信号量的工作方式工作
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • mutex保护共享设备,任务中先申请,使用完后释放。
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 采用二值信号量或者标志事件都可以完成两人任务共享,并释放使用
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 互斥信号量可以,保证一个在执行的时候不会被打断。
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是用互斥的。不可以同时对同一个外设进行操作
    • 发布于2018-04-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个可以用信号量或者邮箱的方式传递变量,一般是使用邮箱,可以最大程度减少冲突。

    • 发布于2018-04-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

FreeRTOS中如何在多任务中访问外设