首页
学习
活动
专区
工具
TVP
发布

人人都是极客

专栏作者
495
文章
819531
阅读量
173
订阅数
在实时操作系统里面随便怎么写代码都能硬实时吗?
众所周知,硬实时的概念,其核心并非追求速度的极致,而是确保系统能在预定的、可重复的时间范围内给予确定的响应。这意味着,实时系统的正确性不仅在于计算逻辑的正确,更在于结果的产生时间是否符合预期。以汽车为例,当发生碰撞时,安全气囊必须在极短的时间内弹开,否则可能无法起到应有的保护作用。
刘盼
2024-04-22
1030
Linux BSP实战课(中断篇):中断控制器的硬件实现
中断机制在处理器中扮演着一个至关重要的角色,它是处理器异步响应外围设备请求的核心方式。从技术的深层次来看,中断是处理器在正常运行过程中,因外部或内部事件(如外围设备的输入/输出请求、异常错误等)而暂时中断当前执行的程序,转而执行特定的中断服务程序(Interrupt Service Routine, ISR)的过程。
刘盼
2024-04-15
1540
Linux BSP实战课(设备树篇):设备树的解析
我们来看看内核是如何把设备树解析成所需的device_node。Linux最底层的初始化部分在HEAD.s中,这是汇编代码,暂且不作过多讨论。在head.s完成部分初始化之后,就开始调用C语言函数,而被调用的第一个C语言函数就是start_kernel:
刘盼
2024-01-25
2500
Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考
本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些Linux内核机制从而选择更合适的使用策略。
刘盼
2024-01-18
1820
Linux BSP实战课(pin 驱动篇):IOMUX控制器的原理
我们知道,芯片包含数量有限的引脚,其中大部分有多种信号选择。这些信号到引脚和引脚到信号的选择是由输入输出多路复用器称为IOMUX决定的。IOMUX也被用来配置其它引脚的特性,比如说电压水平和驱动强度等等。
刘盼
2023-12-13
2510
Linux时间子系统(下)
上一篇文章我们简单了解了一些关于时间的概念,以及Linux内核中的关于时间的基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关的一些数据结构。
刘盼
2023-12-13
2740
Linux中CPU亲和性(affinity)
超线程技术(Hyper-Threading): 就是利用特殊的硬件指令,把两个逻辑内核(CPU core)模拟成两个物理芯片,(一个核模拟出两个核?)
刘盼
2023-12-04
3361
Linux BSP实战课(SoC bringup篇):Uboot的初始化过程
board_init_r 是执行 Uboot 的关键函数,该函数定义在 common/board_r.c 中,主要作用是进行一些必要的初始化工作,然后根据相关的配置情况,读取 Uboot,并启动它。
刘盼
2023-11-13
3410
Linux BSP实战课(SoC bringup篇):Uboot启动前的工作
上电后,片上的 BootROM code 会将启动的 bin 文件拷贝到 ocram 中运行, ocram 通常只有4kb,甚至更小。所以将 uboot 中放到 ocram 中运行是不现实的。故 SPL 应运而生,SPL(Secondary Program Loader) 是一个非常小的 bin 文件,足以加载到 ocram 中运行。SPL 在 ocram 运行起来以后会将 uboot 加载到外部 DDR 中运行,uboot 运行在 DDR 中,则不受空间大小限制,可以进行复杂的操作。支持包括不同文件系统、脚本执行、多种操作系统加载等等操作。其中主要的工作是从存储设备中读取 kernel,解析后跳转到 kernel 执行。
刘盼
2023-11-13
2260
一文搞懂 Linux 网络 Phy 驱动
上图来自 瑞昱半导体 (RealTek) 的 RTL8201F 系列网卡 PHY 芯片手册。按OSI 7层网络模型划分,网卡PHY 芯片(图中的RTL8201F)位于物理层,对应的软件层就是本文讨论的 PHY 驱动层;而 MAC 位于 数据链路层,也是通常软件上所说的网卡驱动层,它不是本文的重点,不做展开。另外,可通过 MDIO 接口对 PHY 芯片进行配置(如PHY芯片寄存器读写),而 PHY 和 MAC 通过 MII/RMII 进行数据传输。
刘盼
2023-11-05
1.2K0
Linux BSP实战课(网络篇):虚拟网络设备bridge
首先,bridge是一个虚拟网络设备,所以具有网络设备的特征,可以配置IP、MAC地址等;其次,bridge是一个虚拟交换机,和物理交换机有类似的功能。
刘盼
2023-09-20
4370
Linux BSP实战课(网络篇):数据包的发送过程
本文将介绍在Linux系统中,以一个UDP包的接收过程作为示例,介绍数据包是如何一步一步从应用程序到网卡并最终发送出去的。
刘盼
2023-09-20
4000
Linux BSP实战课(网络篇):数据包的接收过程
本文将介绍在Linux系统中,以一个UDP包的接收过程作为示例,介绍数据包是如何一步一步从网卡传到进程手中的。
刘盼
2023-09-20
3020
ChatGPT是Linux程序员的福音还是噩梦?
大家好,我是Peter。最近一直在思考一个问题,什么样的产品或者技术才能真的称为改变世界。
刘盼
2023-08-23
1940
使用 ChatGPT ,通过自然语言编写 eBPF 程序和追踪 Linux 系统
eBPF 是一项革命性的技术,起源于 Linux 内核,可以在操作系统的内核中运行沙盒程序。它被用来安全和有效地扩展内核的功能,而不需要改变内核的源代码或加载内核模块。今天,eBPF被广泛用于各类场景:在现代数据中心和云原生环境中,可以提供高性能的网络包处理和负载均衡;以非常低的资源开销,做到对多种细粒度指标的可观测性,帮助应用程序开发人员跟踪应用程序,为性能故障排除提供洞察力;保障应用程序和容器运行时的安全执行,等等。eBPF 已经成为了一个越来越受欢迎的技术,它可以帮助我们更加高效地对内核和用户态的几乎所有应用进行追踪和分析。
刘盼
2023-08-23
1670
万字长文解读 Linux 内核追踪机制
Linux 存在众多 tracing tools,比如 ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如 tracepoint、trace events、kprobe、eBPF 等,甚至让人搞不清楚他们到底是干什么的。本文尝试理清这些概念。
刘盼
2023-08-22
8450
Linux操作系统通过实战理解CPU上下文切换
CPU上下文其实是一些环境正是有这些环境的支撑,任务得以运行,而这些环境的硬件条件便是CPU寄存器和程序计数器。CPU寄存器是CPU内置的容量非常小但是速度极快的存储设备,程序计数器则是CPU在运行任何任务时必要的,里面记录了当前运行任务的行数等信息,这就是CPU上下文。
刘盼
2023-08-22
2940
为U-boot 添加新的board
uboot需要支持众多的硬件,并且具有良好的可扩展性、可移植性和可维护性,因此必须要有一个设计良好的代码架构。代码架构的设计总是与软硬件架构密不可分的,在硬件层面嵌入式系统的核心一般包括以下层次:
刘盼
2023-01-05
1.2K2
ALSA子系统 | 一次性能优化
这客户反馈每次用识别笔去识别文字的时候,启动的时候概率性会卡住大概一秒钟的时间才会有语音响起,很影响用户体验。
刘盼
2023-01-05
6941
引导内存分配器
1.引导内存分配器的作用因为内核里面有很多内存结构体,不可能在静态编译阶段就静态初始化所有的这些内存结构体。另外,在系统启动过程中,系统启动后的物理内存分配器本身也需要初始化,如伙伴分配器,那么伙伴分配器如何获取内存来初始化自己呢 ?为了达到这个目标,我们先实现一个满足要求的但是可能效率不高的笨家伙,引导内存分配器。用它来负责系统初始化初期的内存管理, 最重要的, 用它来初始化我们内存的数据结构, 直到我们真正的内存管理器被初始化完成并能投入使用, 我们将旧的内存管理器丢掉。
刘盼
2023-01-05
7910
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档