xenomai3内核解析
本博客为本人学习linux实时操作系统框架xenomai的一些记录,主要剖析xenomai内核实现,以及与linux相关的知识。为方便读者定位具体文章,现列出本博客大纲,后续会陆续将大纲中缺少部分填充完整,感兴趣的读者敬请关注!
版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/
第一章 认识xenomai
1. 什么是实时操作系统(RTOS)
什么是实时
实时的分类
常见的RTOS
latency和jitter
2. 为什么linux不是实时操作系统?
3. 嵌入式实时linux概述
3.1 方案一:直接修改现有Linux代码
3.2 方案二:双内核
3.3 方案三:多核异构+实时虚拟化
第二章 构建xenomai内核
1.ARM/X86架构xenomai安装教程
第三章 xenomai初探
1.xenomai 3组成结构
2. xenomai 3源码介绍
3.xenomai实时性测试
3.1 latency和jitter
3.2 串口实时性测试
3.3 GPIO实时性测试
4.xenomai各种接口应用编译
5.xenomai proc文件信息介绍
5.1 实时外设中断信息
5.2 查看实时核信息
5.3 调度与任务状态
……
第四章 双核基石ipipe
----X86架构ipipe接管中断处理----
1. ipipe简介
2. X86中断向量与APIC
3 X86 linux异常处理与ipipe接管中断/异常
----arm架构ipipe接管中断处理----
4. GIC驱动
5. arm中断处理与ipipe接管中断/异常
6. linux中断处理流程
7. ipipe中断管理机制
7.1 ipipe domain管理
7.2 ipipe初始化流程
7.3 ipipe 快/慢速路径中断处理
7.4 RTDM实时驱动中断注册
8. 双核异常处理(以X86 page-fault为例)
9. ipipe移植概述
第五章 系统调用
1. 双核系统调用(一)
2. 双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
3. 双核系统调用(三)--如何为xenomai添加一个系统调用
4. ipipe对系统调用的处理
第六章 时间子系统
1. linux时间子系统简介
2. xenomai时间子系统
2.1 xnclock
2.2 xntimer
2.3 ipipe event设备管理
2.4 xenomai时钟系统初始化流程
2.4.1 X86 timer接管流程
2.4.2 ARM timer接管流程
2.5 xenomai内核下Linux时钟工作流程
2.4 autotune及latencies gravity简述
2.6 其他:解BUG-xenomai内核与linux内核时间子系统之间存在漂移
第七章 任务管理
1. linux任务管理
1.1 linux任务描述task_struct
1.2 linux任务创建
1.3 linux任务调度
2. xenomai任务管理
2.1. 内核实时线程描述xnthread
2.2. 用户实时线程描述cobalt_thread
2.3. 调度策略与调度类
2.4. nksched
2.5. 内核实时线程创建
2.6. 用户态实时线程创建
2.7. 实时调度类任务管理
3. 双核间任务迁移
第八章 同步与互斥
1. 优先级倒置
2. xenomai内核对象管理器xnregistry
3. 资源同步互斥机制xnsynch
第九 内存
1. linux内存管理
2. xenomai 实时内存管理
第十章 信号
1. 信号signal(一)---Linux信号机制
2. 信号signal(二)---xenomai信号处理机制
第十一章 实时IPC
1. 实时IPC概述
2. 实时与非实时通讯XDDP
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(二)--实时与非实时关联(bind流程)
xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
3. 实时与实时通讯IDDP
4. 实时与实时通讯BUFP
第十二章 POSIX IPC
1. POSIX信号量
2. POSIX消息队列
3. ....
第十三章 实时驱动模型RTDM
1. 协议类设备
这XDDP系列文章内有所提及:xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
XDDP文章以XDDP设备为例,详细解析了xenomai实时设备驱动框架,梳理了RTDM与linux各数据结构之间的关系,希望你能仔细阅读。
2. 字符类设备
3.xenomai用户态实时驱动框架UDD(User-space Device Driver framework)
第十四章 Rtnet
1. 【机翻】RTnet – 灵活的硬实时网络框架
2. 关于RTnet 使用和开发中的一些记录
3. ....
第十五章 用户态实时库libcobalt
1. 【原创】linux实时应用如何printf输出不影响实时性?
第十六章 xenomai实时性能优化
1. 有利于提高xenomai 实时性的一些配置建议
1.1 实时性的影响因素
- CPU
- BIOS
- 软件
- GPU
1.2 配置优化措施
1.3 软件优化措施
1.4 配置优化结果对比
2. arm平台xenomai与VxWorks实时性对比
(1).定时抖动对比:xenomai与VxWorks实时性对比(Jitter对比)
(2).资源强占上下文对比:xenomai与VxWorks实时性对比(资源抢占上下文切换对比)
3.基准测试
(1). [xenomai x86基准测试]
(2). xenomai x86中断响应时间测试
第十六章 其他
x86平台下一次解bug过程: 解BUG-xenomai内核与linux内核时间子系统之间存在漂移
X86_64/X86 GNU汇编: X86_64/X86 GNU汇编、寄存器、内嵌汇编
参考
xenomai官网
xenomai源代码
xenomai3在线文档:https://v3.xenomai.org
xenomai4在线文档:https://v4.xenomai.org