6.4.3 Xenomai xnthread_relax原理

点击查看《Xenomai/IPIPE源代码情景解析》
原创不易,需要大家多多鼓励!您的关注、点赞、收藏就是我的创作动力!

6.4.3 Xenomai xnthread_relax原理

实时线程有时需要离开head域,转而在root域中执行,主要场景有两个:

(1)执行非实时工作:运行涉及由Linux内核处理的常规系统调用的非时间关键(带内)工作。
(2)处理CPU异常:从CPU异常中恢复,例如处理主要内存访问故障,对于这类故障,无需关注响应时间,也无需在实时核心中重复处理。
xnthread_relax,顾名思义,是一个放松过程(可以联想到脱离硬实时)。它把任务从Xenomai迁移到Linux中共分为4个步骤,核心调用堆栈如下,用4种颜色标识。

在这里插入图片描述

1. pipeline_post_inband_work(&wakework)

pipeline_post_inband_work是一个宏定义,它直接调用ipipe_post_work_root。
关于ipipe_post_work_root,回到第三章,参考《3.4.4 __ipipe_init_early之再论虚拟中断》,它调用__ipipe_set_irq_pending(&ipipe_root, irq)把__ipipe_work_virq虚拟中断记录到root domain的interrupt log。直到interrupt log被回放,在root domain中调用虚拟中断响应程序__ipipe_do_work来完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值