snakeemail 发表于 2021-3-1 19:22:17

同步API总结和疑问

信号量:                中断和任务之间同步。 例如串口中断收到消息,告诉任务把消息取走   疑问: 任务和任务之间同步:因为优先级反转的原因,仅在优先级相同的任务之间使用吗? 不可在高优先级和低优先级任务之间使用。
互斥量:      可避免优先级反转,可在高优先级和低优先级任务之间使用。疑问:是不是任务同步,尽量用互斥量?
任务标志组:          A任务阻塞,直到B任务和C任务都说好,A才能run。疑问:不在乎优先级反转吗?例如看门狗的例子,喂狗的任务需要最高优先级。
火星车优先级反转例子:https://blog.csdn.net/bbs598598/article/details/7746136

eric2013 发表于 2021-3-1 19:36:24

鉴于楼主最近的FreeRTOS问题贴略多,建议所有问题全部在此贴交流讨论即可,此贴作为你的所有问题汇总贴,楼主怎么看。:handshake

snakeemail 发表于 2021-3-1 20:21:29

eric2013 发表于 2021-3-1 19:36
鉴于楼主最近的FreeRTOS问题贴略多,建议所有问题全部在此贴交流讨论即可,此贴作为你的所有问题汇总贴,楼 ...

好的,其实还有最后一个了:lol。

snakeemail 发表于 2021-3-1 20:30:40

tickless 低功耗模式的理解。
我的理解是:开发板的例子,从开始就把mcu配置为tickless模式。即rtos里面每隔一段时间就把mcu变成睡眠模式,问题:唤醒好像是靠systick唤醒吗?前面的例子是靠按键唤醒的,所以我没看到按键唤醒,有点晕。




不好意思:老是烦版主,不过freertos也学完了。谢谢版主。

eric2013 发表于 2021-3-2 07:35:51

1、不是,优先级翻转主要还是资源共享问题,不限制通优先级任务之间
2、任务同步无需互斥信号量,也切勿将互斥用于任务同步,互斥的标准姿势是在一个任务里面保护一个资源。
3、掌握需要放置优先级反转的本质,资源共享才需要,同步不需要。

eric2013 发表于 2021-3-2 07:36:39

snakeemail 发表于 2021-3-1 20:30
tickless 低功耗模式的理解。
我的理解是:开发板的例子,从开始就把mcu配置为tickless模式。即rtos里面每 ...

前面的是靠EXTI中断。

snakeemail 发表于 2021-3-2 20:57:11

同步是说,当我调用一个API时,如果没有满足API的要求,那我就阻塞这等着,直到条件满足。
例如串口通讯, 任务A解析串口消息,但是发现二值信号为0,就阻塞等着,直到串口中断把二值信号加1.。这里是说资源有还是没有。

互斥是说,这个共享资源一直有,但是我用着,你就等一下,等我用完你再用。

版主举的例子,用二值信号做互斥,我就晕在这里,把同步和互斥的概念混淆了,我以为二值信号也是做互斥的,其实二值信号是表示共享资源有还是没有。

eric2013 发表于 2021-3-3 10:00:12

snakeemail 发表于 2021-3-2 20:57
同步是说,当我调用一个API时,如果没有满足API的要求,那我就阻塞这等着,直到条件满足。
例如串口通讯,...

二值信号量做互斥,相比专用的互斥信号量,优势是效率高。

当然,前提是不在乎优先级翻转问题
页: [1]
查看完整版本: 同步API总结和疑问