@ 目录 一.xenomai 3 二.xenomai3 结构 这是第二篇笔记. 一.xenomai 3 从xenomai3开始支持两种方式构建linux实时系统,分别是cobalt 和 mercury. cobalt :添加一个实时核,双核结构,具有实时内核cobalt.实时驱动模型RTDM.实时应用POSIX接口库libcobalt,基于libcobalt的其他API skins,如Alchemy API.VxWorks® emulator.pSOS® emulator等. mercury :…
1. 概述 上篇文章xenomai内核解析--同步互斥机制(一)--优先级倒置讲到,对于所有内核对象: xnregistry:保存内核对象,提供内核对象存储和快速检索. xnsynch:资源抽象,提供线程与资源的同步互斥管理机制. 举个应用例子,有两个xenoami任务,使用semaphore做互斥,任务1创建一个名为/test-sem的semaphore,任务2打开这个semaphore,以这个过程为例,带你了解xnregistry. /*任务1*/ sem_t *dome_sem; ....…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 1.概述 上篇文章xenomai内核解析--实时IPC概述中介绍了RTIPC,从这篇文章开始开始深入xenomai内核,解析RTIPC的具体实现. XDDP.IDDP和BUFP由于应用场景不一样,所以底层不一样,但也区别不大.XDDP用于xenomai任务与普通Linux任务通讯,提供两种方式,一种是每次读写作为一个数据报来操作,对应实时任务间的通讯…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 1.概述 上篇文章介绍了实时端socket创建和配置的流程,本篇文章来看bind操作,实时端与非实时端是如何关联起来的? XDDP通讯的底层设备为xnpipe,是linux任务与xenomai任务通讯的核心,在linux看来是一个字符设备,xnpipe在xenomai内核初始化过程初始化,并完成linux端xnipipe字符设备注册. bind的主要…
xenomai内核解析 本博客为本人学习linux实时操作系统框架xenomai的一些记录,主要剖析xenomai内核实现,以及与linux相关的知识.方便读者定位具体文章,现列出本博客大纲,后续会陆续将大纲中缺少部分填充完整,感兴趣的读者敬请关注! 版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 第一章 认识xenomai 1. 嵌入式实时linux概述 2. xenomai的组成结构 第二章…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. 1. 引出问题 上一篇文章xenomai内核解析--双核系统调用(一)以X86处理器为例,分析了xenomai内核调用的流程,读了以后可能会觉得缺了点什么,你可能会有以下疑问: 系统中的两个内核都是POSIX接口实现系统调用,那么我写一个POSIX接口的应用程序,怎样知道它调用的内核,或者说怎样成为运行在cobalt内核的RT应用,而不是普通linux应用? 对于同一个POSIX接口,可能我的程序中,既需要xenomai内…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 xenomai 内核系统调用 一.32位Linux系统调用 二.32位实时系统调用 三. 64位系统调用 五. 实时系统调用表cobalt_syscalls 六.实时系统调用权限控制cobalt_sysmodes 参考 xenomai 内核系统调用 解析系统调用是了解内核架构最有力的一把钥匙,在这之前先搞懂xenomai与linux两个内核共存…
xenomai信号 上篇文章讲了linux的信号在内核的发送与处理流程,现在加入了cobalt核,Cobalt内核为xenomai线程提供了信号机制.下面一一解析xenomai内核的信号处理机制. 1 双核下的信号分类 我们已经知道,每个用户空间的xenomai线程在内核空间都有两个调度实体,一是在linux内核中的task_struct,另一个是称为linux空间的一个影子(shadow)的xnthread.它们表示的是同一个线程,linux调度的是task_struct,实时核cobalt调…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1.概述 2.Real-time IPC 2.内核配置 3.应用编程接口 socket() close() setsockopt() bind() sendto()与recvfrom() recvmsg()与sendmsg() 4.实时与非实时间通讯XDDP示例 XDDP应用示例: 1.概述 Linux系统中常见的进程间通讯方式有管道.FIFO…
目录 一. xenomai内存池管理 1.xnheap 2. xnpagemap 3. xnbucket 4. xnheap初始化 5. 内存块分配 5.1 小内存分配流程(<= 2*PAGE_ZISE) 1.分配1Byte 2.分配50Byte 3.分配1000 Byte 4. 分配5000字节 5.2 大内存分配(> 2*PAGE_ZISE) 1. 分配10000字节 6. 内存释放 页内块释放 页连续的块释放 7. 总结 一. xenomai内存池管理 本文讲述的xenomai内核内存管…