如果资源被RTOS系统中的另一个任务锁定,没有锁定资源的任务是否会等待?

Will the task without locking the resource wait if the resource is locked by another task in RTOS system?

如果资源被 taskA 使用信号量锁定,并且如果任何其他任务在未锁定资源的情况下访问资源(未受保护的访问),那么该任务是否会进入等待状态?或者是RTOS系统的代码错误。

taskA()  //low priority
{
    SemLock(A);
    A=10;
    A=A+1;
    SemmUnlock(A);
}

taskB() //high priority
{
    A=20;
}

如果 taskA 是 运行 并且如果 taskB 到达那么 taskB 会在 RTOS 系统中等待吗?

不,如果没有互斥锁(信号量)的任务不尝试获取互斥锁,那么它不会在使用资源之前阻塞。 RTOS 对哪些任务正在使用资源没有任何特殊认识。每个任务都必须在使用资源之前获取互斥锁,以保护资源免受潜在的多次损坏访问。

在您的示例中,任务 B 可以抢占任务 A 并在任务 A 锁定信号量时破坏资源。