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

人人都是极客

专栏作者
495
文章
819448
阅读量
173
订阅数
在实时操作系统里面随便怎么写代码都能硬实时吗?
众所周知,硬实时的概念,其核心并非追求速度的极致,而是确保系统能在预定的、可重复的时间范围内给予确定的响应。这意味着,实时系统的正确性不仅在于计算逻辑的正确,更在于结果的产生时间是否符合预期。以汽车为例,当发生碰撞时,安全气囊必须在极短的时间内弹开,否则可能无法起到应有的保护作用。
刘盼
2024-04-22
940
Linux BSP实战课(中断篇):中断控制器的硬件实现
中断机制在处理器中扮演着一个至关重要的角色,它是处理器异步响应外围设备请求的核心方式。从技术的深层次来看,中断是处理器在正常运行过程中,因外部或内部事件(如外围设备的输入/输出请求、异常错误等)而暂时中断当前执行的程序,转而执行特定的中断服务程序(Interrupt Service Routine, ISR)的过程。
刘盼
2024-04-15
1540
深度学习中的3个秘密:集成,知识蒸馏和自蒸馏
训练好的模型,用自己蒸馏一下,就能提高性能,是不是很神奇,这里面的原理到底是什么呢,这要从模型集成开始说起。
刘盼
2024-04-15
1680
模型训练过程和国产算力面临的挑战
典型的模型训练流程可以从计算的角度分为三个关键步骤:前向计算、反向计算和参数更新。这些步骤构成了模型在训练中的核心计算过程。
刘盼
2024-04-02
540
ARM SoC漫谈
芯片厂商向客户介绍产品,从硬件角度说地最多的就是功能,性能,功耗和价格。功能这个主要就是看芯片提供了什么接口,比如闪存,内存,PCIe,USB,SATA,以太网等,还看内部有什么运算模块,比如浮点器件,解码器,加解密,图形加速器,网络加速器等等。性能,对CPU来说就是测试程序能跑多少分,比如Dhrystone,Coremark,SPEC2000/2006等等。针对不同的应用,比如手机,还会看图形处理器的跑分;又比如网络,还会看包转发率。当然,客户还会跑自己的一些典型应用程序,来得到更准确的性能评估。功耗就是在跑某个程序的时候,整个芯片的功率是多少瓦。通常,这时候处理器会跑在最高频率,但这并不意味着所有的晶体管都在工作,由于powergating和clock gating的存在,那些没有被用到的逻辑和片上内存块并没在完全耗电。我看到的芯片公司给出的处理器最大功耗,通常都是在跑Dhrystone。这个程序有个特点,它只在一级缓存之上运行,不会访问二级缓存,不会访问内存。这样得出的其实并不是真正的最大功耗。但是从实际经验看,没有应用程序能让CPU消耗更高的能量,所以这么测量最大功耗也没什么错。当然,作为整体的芯片功耗,还得包括各种加速器和接口,尤其是会被用到的模块。
刘盼
2024-04-02
1310
Real-Time进程会导致系统lockup吗
Linux kernel支持两种实时(real-time)调度策略(scheduling policy):SCHED_FIFO和SCHED_RR,无论是哪一种,实时进程的优先级范围[0~99]都高于普通进程[100~139],始终优先于普通进程得到运行。如果实时进程是CPU消耗型的,会不会导致其它进程得不到运行机会,造成系统lockup呢?
刘盼
2024-01-25
1030
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
1810
网络数据包的接收过程
这里深度理解一下在Linux下网络包的接收过程,为了简单起见,我们用udp来举例,如下:
刘盼
2024-01-10
2440
网络数据包的接收过程
这里深度理解一下在Linux下网络包的接收过程,为了简单起见,我们用udp来举例,如下:
刘盼
2024-01-10
1890
为什么要有 RISC-V
• 它要适用于所有实现技术,包括 FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)、ASIC(Application-Specific Integrated Circuit,专用集成电路)、全定制芯片,甚至未来的制造元件技术。
刘盼
2023-12-26
1180
智能汽车虚拟化技术(下)
上篇内容主要介绍了虚拟化技术本身的基本概念,以及车载虚拟化技术的一些特点。而本篇的内容则主要围绕一些虚拟化的技术路线以及行业内的部分应用来展开,同时也带来我们的虚拟机管理器产品(Photon Hypervisor)的介绍。
刘盼
2023-12-13
2800
Linux BSP实战课(pin 驱动篇):IOMUX控制器的原理
我们知道,芯片包含数量有限的引脚,其中大部分有多种信号选择。这些信号到引脚和引脚到信号的选择是由输入输出多路复用器称为IOMUX决定的。IOMUX也被用来配置其它引脚的特性,比如说电压水平和驱动强度等等。
刘盼
2023-12-13
2510
智能汽车虚拟化技术(上)
随着数字智能化技术的发展,汽车功能呈现多样化和集中化的特点,架构上从分散式架构到域融合架构,再到中央计算平台,集中化的演进趋势已成为行业共识。
刘盼
2023-12-13
2750
Linux时间子系统(下)
上一篇文章我们简单了解了一些关于时间的概念,以及Linux内核中的关于时间的基本理解。而本篇则会简单说明时钟硬件,以及Linux时间子系统相关的一些数据结构。
刘盼
2023-12-13
2740
Linux中CPU亲和性(affinity)
超线程技术(Hyper-Threading): 就是利用特殊的硬件指令,把两个逻辑内核(CPU core)模拟成两个物理芯片,(一个核模拟出两个核?)
刘盼
2023-12-04
3341
实时和非实时操作系统有什么区别?
实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统。
刘盼
2023-11-24
4300
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
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档