程序中两任务撞车的问题?
如果程序中两个任务都是50ms运行一次,或者一个50ms另一个100ms运行一次。该怎么处理呢 你只是单核cpu,考虑中断嵌套 。。。 完全不用担心,他们自己会顺序执行的只要你程序运行时间(或者阻塞时间)不超过50ms就好说.
它们是每隔50ms运行, 又不是在50ms这个时间点上两个都运行. DevLabs 发表于 2014-4-9 21:59
只要你程序运行时间(或者阻塞时间)不超过50ms就好说.
它们是每隔50ms运行, 又不是在50ms这个时间点上两个都 ...
万一两任务都在同一时间点上呢 机器人天空 发表于 2014-4-9 22:02
万一两任务都在同一时间点上呢
没有任务会是真正同时进行的,最多抢占,可以去学下操作系统 机器人天空 发表于 2014-4-9 22:02
万一两任务都在同一时间点上呢
要么优先级,要么嵌套。LS已经说得很清楚了。 学下操作系统的任务切换你就知道怎么回事了,你问的问题都不成立。 看 “时间触发嵌入式系统设计模式” 13和14章; 每个程序不会运行50ms吧,50m可以执行50000句左右的指令了。所以把时间精打细算就好了 不同优先级的任务,优先级高的会先执行
相同优先级的任务,会按照先后顺序执行 Free_Bird 发表于 2014-4-9 22:14
看 “时间触发嵌入式系统设计模式” 13和14章;
谢谢{:lol:} 不可能的,会先其中一个先优先执行 时间触发式调度器,可设置任务启动延时:50ms任务延时3ms启动, 100ms任务延时7ms启动,永远不会重叠。
页:
[1]