linux
文章平均质量分 95
linux内核、驱动、应用
沐多
可提供xenomai 及实时 Linux 相关技术支持,若有需要,请私信!
展开
-
跟我一起写Makefile(重制版)
跟我一起写Makefile》是陈皓发表在其CSDN博客上的系列文章。该系列文章翻译整理自,一直受到读者的推荐,是很多人学习Makefile的首选文档。目前网络上流传的PDF版本多为祝冬华整理的版本。这个版本的排版一般,代码部分没有做任何语法高亮。2010年初学Makefile的时候,读了前几章皮毛,一直用到了现在。最近想着重新学习一下Makefile,顺便学习一下Sphinx,重新制作一个更精美的PDF版本。书的文字部分来自于Andriki提供的Mediawiki源码;使用Sphinx制作文档。转载 2024-02-29 22:27:10 · 202 阅读 · 0 评论 -
【原创】Ubuntu22.04安装 PREEMPT-RT(Ubuntu Pro RealTime linux/realtime Ubuntu)
以往我们开发实时Linux内核PREEMPT-RT,需要开发者自己打补丁-配置-编译构建安装,实时性暂且不谈,可靠性、稳定性完全没有保障,现在Ubuntu官方提供PREEMPT-RT支持啦。实时 Ubuntu 于2023 年 2 月 14 日基于Ubuntu 22.04 LTS发布,支持旨在为关键电信基础设施提供性能、超低延迟和安全性。基于 Linux 内核的 5.15 版本集成了 x86 和 Arm架构的树外PREEMPT_RT补丁。有了ubuntu官方支持,可靠性、稳定性有保障,赶快来安装体验一下。原创 2023-04-01 23:44:48 · 4424 阅读 · 3 评论 -
【原创】实时linux如何printf输出不影响实时性?
本文介绍为什么linux实时任务不能直接调用printf(),首先简单介绍一下终端输出原理,然后如何实现终端输出不影响实时任务实时性给出一个方案,最后介绍xenomai中是如何做到完美printf()的。原创 2023-01-16 01:02:02 · 1230 阅读 · 6 评论 -
Ftrace使用及实现机制
ftrace 即function tracer,最初是用来 trace 内核中的函数。现在 ftrace 的功能不仅仅是function tracer,更加丰富了,可观测内核很多信息。本文分为两个部分,第一部分介绍ftrace的使用,大部分来源于Linux内核ftrace文档ftrace.rst,第二部分介绍ftrace的实现原理。原创 2023-01-02 22:15:37 · 861 阅读 · 0 评论 -
【转载】AF_XDP技术详解
XDP 定义了一个受限的执行环境(a limited execution environment),运行在一个 eBPF 指令虚拟机中,由网络数据事件触发eBPF虚拟机执行XDP程序指令,使用XDP 提供的 XDP_REDIRECT 操作,可以将将接收的网络包重定向到其他启用 XDP 的设备发送出去或者重定向到其他CPU处理。 AF_XDP是一个基于XDP实现的协议族(例如AF_NET),主要用于高性能报文处理。...转载 2022-08-27 09:44:15 · 973 阅读 · 0 评论 -
【原创】CPU性能优化小记
嵌入式业务应用运行导致系统sys CPU使用率飚高,本文记录本次性能分析定位过程,包括一些常用工具使用等。原创 2022-08-22 21:42:38 · 1886 阅读 · 0 评论 -
【原创】xenomai+linux双内核下的时钟管理机制
clock是操作系统正常运行的发动机,系统利用时钟中断维持系统时间、促使任务调度,以保证所有进程共享CPU资源;那你是否好奇xenomai cobalt内核和Linux内核双内核共存的情况下,时间子系统是如何工作的?一个硬件时钟如何为两个操作系统提供服务的?原创 2022-04-05 19:59:29 · 1098 阅读 · 0 评论 -
X86 linux异常处理与Ipipe接管中断/异常
文章目录一、回顾二、X86 linux异常中断处理1. 中断门及IDT2. 初始化门描述符2.1 早期异常处理2.2 start_kernel中的异常向量初始化一2.3 idtentry宏(DB异常为例)2.4 start_kernel中的异常初始化二-trap_init()2.5 初始中断门描述符2.5.1 IRQ2.5.2 early_irq_init2.5.3 init_IRQ三、linux x86_64中断/异常处理总结四、ipipe接管中断处理版权声明:本文为本文为博主原创文章,转载请注明出处。原创 2021-06-06 22:58:55 · 905 阅读 · 0 评论 -
X86_64 GNU汇编、寄存器、内嵌汇编
文章目录一、汇编语言二、指令数据传输指令栈操作指令pushpop运算指令位操作比较操作指令标志寄存器流控制指令三、伪指令.equ.rept.endr.lcomm.globl.type.ascii.byte.section变量四、X86_64寄存器五、常见汇编结构1. 函数调用传参使用寄存器传参使用栈传参2. 变量赋值3. 指针4. 结构5. 循环6. if语句7. 浮点数使用六、C嵌入汇编1.基本内嵌2.扩展内嵌汇编2.1汇编模板2.2操作数2.3 Clobber列表2.4 Volatile2.5 常用约原创 2021-01-17 21:46:06 · 2655 阅读 · 0 评论 -
中断子系统-ARM GPIO中断处理流程
版权声明:本文为本文为博主原创文章,转载请注明出处https://blog.csdn.net/qq_22654551。如有问题,欢迎指正。文章目录第一部分 GIC中断控制器的注册1. GIC驱动分析2.GIC驱动流程分析第二部分 device node转化为platform_device第三部分:platform_device注册添加第四部分 GPIO控制器驱动第五部分 引用GPIO中断的节点的解析第六部分 GPIO中断处理流程本文以AM5728 GPIO中断为例,简单介绍有关从注册GIC中断到 驱动使原创 2021-01-10 16:05:01 · 2607 阅读 · 0 评论 -
ARM平台内存和LL cache对xenomai实时性的影响
版权声明:本文为本文为博主原创文章,转载请注明出处https://blog.csdn.net/qq_22654551。如有问题,欢迎指正。文章目录1. 问题概述2. stress 内存压力原理2. cache 因素2.1 未加压2.2 加压(cpu/io)3. 内存管理因素3.1 内存分配/释放3.2 MMU拥塞4 总结1. 问题概述对ti am5728 xenomai系统latency测试时,在测试过程中发现,内存压力对latency影响极大,未添加内存压力下数据如下(注:文中所有测试使用默认gr原创 2020-11-07 11:54:56 · 935 阅读 · 0 评论 -
Linux下如何使用X86 CPU的GPIO
文章目录1.前言2.linux pinctrl子系统3. pin controller driver4.手动构造device1.前言在arm嵌入式开发中,各个外设具有固定的物理地址,我们可以直接通过芯片手册来编写驱动配置后使用。但是在x86中有所不同,所有外设控制器集成在PCH(曾经的南桥)中,每个外设都是作为一个PCI设备挂在PCH的PCI总线上,PCH再通过DMI与CPU相联。对于标压处理器H/K系列(也就是我们台式机),南桥还在主板上,对于x86移动处理器(Y/U结尾系列),已将PCH和CPU集成原创 2020-10-31 22:19:52 · 2179 阅读 · 2 评论 -
从Ubuntu-base构建ubuntu rootfs(以x86_64和arm为例)
版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。文章目录1.介绍2.目的2.准备宿主系统2.1 宿主系统需求附:创建回环文件并分区1. 创建镜像文件2. 建立分区3. 映射分区设备并格式化4. 挂载分区2.2 挂载新分区2.3 配置目标Ubuntu源2.3 配置DNS2.3 配置用户创建默认配置文件2.3 进入chroot环境3.安装软件3.1 安装内核3.2 安装X-window4.安装各种桌面(可选)4.1 安装Lubuntu的定制LXDE4.2 安装gnome桌面4.3 安装原创 2020-06-14 23:12:39 · 3705 阅读 · 14 评论 -
ubuntu配置图形应用自启动的几种方法
版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。文章目录0.前言1.带桌面环境的自动启动1.1Ubuntu1.2 openbox2.使用登录管理器启动应用2.1 窗口管理器2.2 登录管理器2.2.1 没有窗口管理启动应用程序2.2.2 登录管理器自动登录配置2.3 xorg2.3.1 xinit(startx)2.3.2 xserverrc2.3.3没有窗口管理器启动应用程序0.前言在嵌入式的场合通常会让Linux只执行某一个特定的人机交互应用程序,本文讲述了在Ubuntu环原创 2020-05-18 22:34:09 · 3207 阅读 · 0 评论