- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 rust_analysis
二、核心模块详解2.1 kernel crate ()入口文件,定义了 90+ 个子系统模块:2.3 同步原语 ()2.4 设备模型 ()类型状态模式 - 使用泛型参数表示设备上下文:2.5 驱动框架 ()2.6 错误处理 ()2.7 类型系统 ()2.8 过程宏 ()宏功能声明内核模块Vtable 特质导出函数给 C内核格式化连接标识符粘贴标识符KUnit 测试三、总线子系统3.1 PCI 总线 (
2026-11-02 21:52:34
140
原创 硬件学习必看十大up主
稚晖君:高阶智能硬件、嵌入式研发实战全方位助力工科生提升硬件工程实践能力。jhp 硬件工作室:硬件基础、PCB 设计、EMC 避坑。嘉立创:PCB 打样、EDA 实操教学、开源硬件项目。凡亿教育:电子设计系统培训、主流 EDA 软件教学。电路小匠:开关电源拓扑讲解、硬件调试技巧。唐老师讲电赛:电赛备赛指导、实战技巧拆解。布丁哥讲电路:零基础电路入门、实操教学。爱上半导体:芯片原理、半导体产业链科普。电子芯吧客:元件实测、电路设计避坑分享。工科硬件学习必看 工科硬件学习必看。
2026-10-01 08:07:17
210
原创 【ARM64】【cache/MMU】学习总结
PoC:保证全局一致性,适用于多核、外设共享内存的场景。PoU:保证指令与数据缓存的局部一致性,适用于代码动态修改的场景。关键原则:根据场景选择最小作用范围的维护操作(优先使用PoU,避免不必要的PoC开销)。理解PoU/PoC的差异是优化ARM64系统性能和正确性的基础,尤其在涉及缓存管理的底层开发中需格外谨慎。
2025-04-20 08:38:35
1610
原创 【中断】【ARM64】学习总结
从arm手册可以看出,异常向量表在EL1~EL3都有,本文只涉及Linux kernel中的实现,即只涉及EL1和EL0。
2024-05-02 10:29:17
671
转载 【转载】【ARMv8 编程】A64 数据处理指令——移动&比较指令
移动指令主要为 MOV 以及它的各种“变体”,而比较指令主要用来进行比较并更新条件标志,用来实现条件判断等。指令类型 指令移动 MOV、MVN、MOVK、MOVZ、MOVN比较 CMP、CMN、TST一、移动指令1.1 MOVMOV (to/from SP)在寄存器和堆栈指针之间移动:Rd = Rn。该指令是 ADD(立即数)指令的别名。在这里插入图片描述32-bit (sf == 0)MOV <Wd|WSP>, <Wn|WSP>等价指令ADD <Wd|WSP>, &l
2023-09-14 15:48:04
1265
原创 【Linux kernel/cpufreq】framework ----big Little driver
一般ARM SOC包含能效和性能两个cluster,共8个 core,可以把这8个core统统开放给kernel,让kernel的调度器(scheduler)根据系统的实际情况,决定哪些任务应该在哪些core上执行。。
2022-11-25 21:45:36
1246
原创 【Linux kernel/cpufreq】framework ----cpufreq governor
基于linux模块化的设计,早期的governor基本都是对CPU的使用率进行定时采样检查,然后根据使用率的情况调整CPU频率。
2022-11-01 21:33:16
2204
原创 【Linux kernel/cpufreq】framework ----cpufreq core
当CPU device和CPU driver匹配时,bus core会调用subsys interface的add_dev回调函数,相当于为该特定功能添加一个“device”,进而和该特定功能的“driver”(这里为cpufreq driver)匹配,执行driver的初始化(probe,或者其它)接口。对于不能自动调频的CPU core,必须由软件设定具体的频率值。init,driver的入口,由cpufreq core在设备枚举的时候调用,driver需要根据硬件情况,填充policy的内容。
2022-10-28 22:36:52
1170
原创 【Linux kernel/cpufreq】framework ----初识
对CPU core来说,功耗和性能是一对不可调和的矛盾,通过调整CPU的电压和频率,可以在功耗和性能之间找一个平衡点。这种实现,软件复杂度非常低,通常情况下,只需要告诉CPU core电压和频率的调整范围(通过频率表示,scaling_min_freq和scaling_max_freq,也称作policy),CPU core即可自行调整。关键点2,OS需要根据大致的应用场景(例如,是高性能场景,还是低性能场景),设定一个频率范围,改变时机,由CPU core自行决定。
2022-10-27 21:11:30
1140
原创 【Linux kernel/CPU idle】CPU Idle ----menu governor
Linux kernel的framework有两种比较固定的抽象模式:模式1,provider/consumer模式,interrupt、clock、timer、regulator等大多数的framework是这种模式。它的特点是,这个硬件模块是为其它一个或多个模块服务的,因而framework需要从对上(consumer)和对下(provider)两个角度进行软件抽象;模式2,driver/governor模式,本文所描述的cpuidle framework即是这种模式。
2022-10-26 18:50:47
1758
原创 【Linux kernel/CPU idle】CPU Idle ----framework
当cpu没有执行任务的时候,系统是如何管理cpu的?如果没有运行任务直接对cpu下电,确实做到低功耗了,但会导致下次跑任务,CPU启动太慢会导致性能太拉跨。
2022-10-25 21:51:24
2684
原创 【Linux kernel/CPU idle】CPU Idle 初探
idle 进程是当系统没有调度 CPU 资源的时候,会进入 idle 进程,而 idle 进程的作用就是不使用 CPU,以此达到省电的目的。
2022-10-24 22:09:34
1713
原创 【C语言基础】GNU C 关键字__attribute__用法
GNU C 编译器用于声明函数、变量或类型属性的关键字__attribute__ ((ATTRIBUTE))用法总结
2022-10-20 22:42:28
2718
原创 【Linux】【驱动】【USB学习】
Linux USB 驱动开发(五)—— USB驱动程序开发过程简单总结Linux USB 驱动开发(一)—— USB设备基础概念
2022-04-14 07:32:06
890
原创 【Linux】【Spinlock学习总结】
Linux内核同步机制之(四):spin lockLinux 内核同步(二):自旋锁(Spinlock)handler原子锁_Linux的原子操作与同步机制下面展示一些 内联代码片。// A code blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';arm原子操作实现在arm的指令集中,不存在指令前缀lock,那如何完成原子操作呢?Linux的源码中arm体系结构原子操作的定义文件为。linux2.6/incl
2022-04-14 07:25:03
499
1
原创 arm cp15/MIPS c0协处理器学习总结
摘抄自:鸿蒙轻内核源码分析:MMU 协处理器鸿蒙内核源码中C7,C2,C13三个寄存器协处理器CP15介绍—MCR/MRC指令(6)
2022-01-04 10:44:22
323
原创 CPU cache学习总结
内存的类型:SRAM和DRAMSRAM:基本电路单元是双稳态电路,6个晶体管实现,die面积大、成本高、;延时极小(门级延时),纯逻辑工艺方便集成到芯片内部。DRAM:基本电路单元是单稳态电路,1个晶体管+1电容,die面积小、成本低;延时大,工艺复杂很难集成到芯片内存。Cache要求访问速度快,所以Cache的存储单元通常是SRAM。因为单位SRAM消耗的die面积较大,现在CPU L1/L2 Cache很难做得太大。Intel现在一般CPU L2 Cache是2MB?问题:现在CPU顺便都是多
2022-01-04 10:36:15
1043
原创 【Binder学习】
Android Binder: link.Android Bander设计与实现 - 设计篇: link.Android - Binder 进程间通讯: link.
2021-12-09 00:04:32
1563
原创 window10上vscode连接Ubuntu服务器问题解决过程
2021年11月6日今天在window10上vscode连接Ubuntu,发现连接不上。遇到如下两个问题。1.win10 VScode远程连接服务器时出现an SSH installation couldn’t be found解决过程:首先发现window上没有安装ssh,安装后依然报该问题。打开vscode的setting.json,加入“remote.SSH.path”: “C:\Program Files\OpenSSH\ssh.exe”注意后面应为你自己的ssh安装路径参考wiki:
2021-11-06 22:08:36
871
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅