《国宝迷踪(第3部)》免费在线听mp3音频资源,求百度网盘

《国宝迷踪(第3部)》免费在线听mp3音频资源,求百度网盘,第1张

《国宝迷踪(第3部)》免费在线听mp3音频百度网盘资源

stkq

厦门大学傅小凡教授做客《百家讲坛》,为您精彩讲述系列节目《国宝迷踪》第三部。

   

      

改变任务优先级

描述:此函数允许你动态改变一个任务的优先级。但新的优先级必须可行

参数:oldp :旧的优先级

newp:新的优先级

返回:OS_NO_ERR:改变成功

OS_PRIO_INVALID:指定的优先级不合法:超过最大值

OS_PRIO_EXIST:新优先级已经存在

OS_PRIO_ERR:旧优先级任务不存在

/

#if OS_TASK_CHANGE_PRIO_EN > 0 //如果OS_TASK_CHANGE_PRIO_EN设置为1,能使包含下面代码

INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio)

{

#if OS_CRITICAL_METHOD == 3 / Allocate storage for CPU status register /

//为CPU状态寄存器分配存储器

OS_CPU_SR cpu_sr; //OS_CPU_SR即为unsigned int

#endif

#if OS_EVENT_EN > 0

//OS_EVENT_EN 定义为:(((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0))

//OS_EVENT_EN 定义为:能使队列代码产生&&申请队列控制块最大数不为零||能使邮箱代码产生||

//能使信号量代码产生||能使互斥量代码产生

OS_EVENT pevent;

#endif

OS_TCB ptcb;

INT8U x;

INT8U y;

INT8U bitx;

INT8U bity;

#if OS_ARG_CHK_EN > 0//允许参数检测

if ((oldprio >= OS_LOWEST_PRIO && oldprio != OS_PRIO_SELF) ||

newprio >= OS_LOWEST_PRIO) {//旧新优先级都不合法

return (OS_PRIO_INVALID);

}

#endif

OS_ENTER_CRITICAL();//如果合法

if (OSTCBPrioTbl[newprio] != (OS_TCB )0) { / New priority must not already exist /

OS_EXIT_CRITICAL();

return (OS_PRIO_EXIST);//新优先级必须不存在,存在就重复了

} else {

OSTCBPrioTbl[newprio] = (OS_TCB )1; / Reserve the entry to prevent others /

//保留入口,防止其它任务占用此优先级

OS_EXIT_CRITICAL();

y = newprio >> 3; / Precompute to reduce INT latency /

//此函数会预先计算新优先级任务的任务控制块中的某些值,使用这些值

//可以将任务放入就绪步或者从该表中移除任务

bity = OSMapTbl[y];

x = newprio & 0x07;

bitx = OSMapTbl[x];

OS_ENTER_CRITICAL();

if (oldprio == OS_PRIO_SELF) { / See if changing self /

//如果改变自己

oldprio = OSTCBCur->OSTCBPrio; / Yes, get priority /

}//是的,得到优先级

ptcb = OSTCBPrioTbl[oldprio];//得到该优先级TCB指针

if (ptcb != (OS_TCB )0) { / Task to change must exist /

//优先级存在,如果要改变的是当前任务,由一定会成功

OSTCBPrioTbl[oldprio] = (OS_TCB )0; / Remove TCB from old priority /

//通过放入空闲指针,将指向当前任务的TCB指针从优先级列表中删除,

//使当前旧的优先级空闲,可以被其它任务占用

if ((OSRdyTbl[ptcb->OSTCBY] & ptcb->OSTCBBitX) != 0x00) { / If task is ready make it not /

if ((OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0x00) { //如果要改变优先级的任务就绪

OSRdyGrp &= ~ptcb->OSTCBBitY;//不能让它就绪,

}

OSRdyGrp |= bity; / Make new priority ready to run /

OSRdyTbl[y] |= bitx;//从就绪表中移除,然后在新优先级下,将任务插入就绪表,

//注意:OSTaskChangePrio是利用预先计算的值(见前面)将任务插入就绪表中的

#if OS_EVENT_EN > 0

//#define OS_EVENT_EN (((OS_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0))

//能使队列代码产生&&申请队列控制块最大数不为零||能使邮箱代码产生||

//能使信号量代码产生||能使互斥量代码产生

} else {

pevent = ptcb->OSTCBEventPtr;

if (pevent != (OS_EVENT )0) { / Remove from event wait list /

//如果任务没有就绪,那么可能在等一个信号量,一个互斥型信号量,一个邮箱,队列

//等,如果OSTCBEventPtr非空,那么此函数会知道任务正在等以上的某件事

if ((pevent->OSEventTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0) {

pevent->OSEventGrp &= ~ptcb->OSTCBBitY;

}

pevent->OSEventGrp |= bity; / Add new priority to wait list /

//如果任务正在等某事件发生,OSTCBEventPtr必须将任务从事件控制块的等待队列(旧

//的优先级下)中移除,并在新的优先级下将事件插入到等待队列中任务也可能正

//在等待延时时间到,或被挂起,上面几行可以省略

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3805965.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-03-23
下一篇2024-03-23

随机推荐

  • 抖音盲盒的东西是不是真的

    抖音主播开盲盒送手机是真的,有些主播为了提高知明度,能够增加一些粉丝,不过送手机中奖的几率比较低,也就是说你可能抽不到免费送的手机,有的人运气好的话,很有可能会抽到开盲盒送手机到自己手里的,只是中奖不是每个人都能中的很多经纪公司会以团队的名

    2024-04-15
    59200
  • 伊索芹菜籽精华用法你知道吗?伊索芹菜籽精华保质期是多久?精华怎么样?

    伊索的芹菜籽精华其实是一款非常好用的精华,但是很多人因为方法不对而没有好好利用。下面小编就来教大家这款芹菜籽精华的正确用法。伊索芹菜籽精华的用法?伊索种子精华的使用真的是良莠不齐,两极分化。其实这个精华真的很好用。很多人其实用错了方法,所以

    2024-04-15
    52400
  • cle de peau beaute详细资料大全

    Clé de Peau Beauté简称CPB,法文含义是“开启美丽肌肤的钥匙”,中文翻译为“肌肤之钥”,是日本资生堂旗下的品牌。基本介绍 中文名称 :肌肤之钥 英文名称 :cle de peau beaute 创立时间

    2024-04-15
    53500
  • 神仙水和清莹露区别

    神仙水和清莹露区别如下:1、质地不同神仙水的质地是清爽不粘稠,水状;清莹露的质地是透亮清澈的水状,触感顺滑轻薄,水润感十足,没有香味。2、效果不同神仙水是一种精华水,化妆水后使用,上脸吸收快,不油腻,对闭口有一定作用,长期使用可以稳定肌肤,

    2024-04-15
    54100
  • 男人护肤品有哪些牌子

    男士护肤品品牌有曼秀雷敦、妮维雅、欧莱雅、碧欧泉、朗仕。1、曼秀雷敦曼秀雷敦男士是较早进入国内的专业男士护肤品牌,于2003年推出男士专业护肤系列,以“活炭”配方的洁面乳系列产品著称。2、妮维雅妮维雅男士是妮维雅旗下全球知名男士面部护理品牌

    2024-04-15
    48600
  • 兰蔻的产品怎么样?哪些值得买?

    ❤兰蔻小黑瓶眼霜,当时跟风入手这款兰蔻小黑瓶眼霜,大概400RMB。用了一段时间,发现确实不错。眼霜质地细腻清爽,易推开,滋润效果很好,吸收也非常快,每次使用我都会将双手搓热,轻轻敷于眼上促进眼部血液循环,效果更佳。而且这款产品真的对去除黑

    2024-04-15
    40600
  • 清莹露和神仙水的区别

    清莹露和神仙水的区别为价格区别、外观区别、功效区别、适用人群不同、效果区别。1、成分区别:神仙水是由半乳糖酵母的发酵物过滤液组成,除了丁二醇和其它润肤成份之外,没有其它有效成份。清莹露是用水做溶剂,加入了酵母、甘油、适量的乳化剂和酸类,水杨

    2024-04-15
    41500

发表评论

登录后才能评论
保存