vxworks的中断优先级怎么设置

vxworks的中断优先级怎么设置,第1张

semaphore options */

)

区别:

1.互斥信号量只能用于互斥 *** 作。

2.只能由已经获取了互斥信号量的任务去释放它。

3.中断服务程序(ISR)不可以释放(semGive())互斥信号量。

4.互斥信号量不支持semFlush() *** 作。

应用方向:

1.避免优先级倒置(Priority Inversion):

在上图中,task2等待task1的资源,于是处于Pend状态,这时一个中等优先级的task进来,并抢占了task1的CPU,此时的表现是低优先级task在高优先级的task2前执行。这种现象就是先级倒置。

使用semId = semMCreate(SEM_Q_PRIORITY | SEM_INVERSION_SAFE)就可以避免倒置。

此时,task1的优先级提升与task2一样,至到task2执行完成。

SEM_INVERSION_SAFE不能与SEM_Q_FIFO配对!

2.Deletion Safety(安全删除)

使用:semId = semMCreate(SEM_Q_FIFO | SEM_DELETE_SAFE)可以实现安全删除。

其实质是:在Task对互斥信号量执行semTake() *** 作并成功占有该信号量之前,隐含执行了taskSafe() *** 作;在执行semGive() *** 作之后,隐含执行taskUnsafe() *** 作。

如果一个任务task1试图删除一个已经被保护起来的任务task2,task1则将被阻塞起来,直到task2解除保护(释放掉具有删除保护的互斥信号量)才能完成删除工作。

3.递归访问

[c-sharp] view plaincopy

InitFun()

{

sem_ID = semMCreate(…)

}

funB()

{

semTake(sem_ID, SEM_FOREVER)

/*访问临界资源*/

semGive(sem_ID)

}

funA()

{

semTake(sem_ID, SEM_FOREVER)

/*访问临界资源*/

funB() //递归访问, 而不会死锁

semGive(sem_ID)

}

五.Counting Semaphores(计数信号量)

计数信号量与二进制信号量都可以用于任务之间的同步与互斥。其不同点在于,计数信号量可记录信号量释放的次数,可以用来监视某一资源的使用状况。

Award 的BIOS自检响铃及其意义 1短: 系统正常启动。这是我们每天都能听到的,也表明机器没有任何问题。 2短: 常规错误,请进入CMOS Setup,重新设置不正确的选项。 1长1短: RAM或主板出错。换一条内存试试,若还是不行,只好更换主板。 1长2短: 显示器或显示卡错误。 1长3短: 键盘控制器错误。检查主板。 1长9短: 主板Flash RAM或EPROM错误,BIOS损坏。换块Flash RAM试试。 不断地响(长声): 内存条未插紧或损坏。重插内存条,若还是不行,只有更换一条内存。 不停地响: 电源、显示器未和显示卡连接好。检查一下所有的插头。 重复短响: 电源问题。 无声音无显示: 电源问题。 AMI 的BIOS自检响铃及其意义 1短: 内存刷新失败。更换内存条。 2短: 内存ECC较验错误。在CMOS Setup中将内存关于ECC校验的选项设为Disabled就可以解决,不过最根本的解决办法还是更换一条内存。 3短: 系统基本内存(第1个64kB)检查失败。换内存。 4短: 系统时钟出错。 5短: 中央处理器(CPU)错误。 6短: 键盘控制器错误。 7短: 系统实模式错误,不能切换到保护模式。 8短: 显示内存错误。显示内存有问题,更换显卡试试。 9短: ROM BIOS检验和错误。 1长3短: 内存错误。内存损坏,更换即可。 1长8短: 显示测试错误。显示器数据线没插好或显示卡没插牢。 Phoenix的BIOS自检响铃及其意义 1短 系统启动正常 1短1短1短 系统加电初始化失败 1短1短2短 主板错误 1短1短3短 CMOS或电池失效 1短1短4短 ROM BIOS校验错误 1短2短1短 系统时钟错误 1短2短2短 DMA初始化失败 1短2短3短 DMA页寄存器错误 1短3短1短 RAM刷新错误 1短3短2短 基本内存错误 1短3短3短 基本内存错误 1短4短1短 基本内存地址线错误 1短4短2短 基本内存校验错误 1短4短3短 EISA时序器错误 1短4短4短 EISA NMI口错误 2短1短1短 前64K基本内存错误 3短1短1短 DMA寄存器错误 3短1短2短 主DMA寄存器错误 3短1短3短 主中断处理寄存器错误 3短1短4短 从中断处理寄存器错误 3短2短4短 键盘控制器错误 3短1短3短 主中断处理寄存器错误 3短4短2短 显示错误 3短4短3短 时钟错误 4短2短2短 关机错误 4短2短3短 A20门错误 4短2短4短 保护模式中断错误 4短3短1短 内存错误 4短3短3短 时钟2错误 4短3短4短 时钟错误 4短4短1短 串行口错误 4短4短2短 并行口错误 4短4短3短 数字协处理器错


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11748846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存