自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 【中断】【ARM64】学习总结

从arm手册可以看出,异常向量表在EL1~EL3都有,本文只涉及Linux kernel中的实现,即只涉及EL1和EL0。

2024-05-02 10:29:17 200

原创 ARM学习资料

arm学习资料

2023-10-05 03:11:01 104

转载 【转载】【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 575

原创 【刷题】找出数组中出现次数大于a的数

【刷题】找出数组中出现次数大于a的数

2023-09-03 09:10:44 120

原创 ARM64 指令用法学习整理

ARM64指令用法学习整理

2023-08-11 07:18:06 6127

原创 [Linux kernel] [ARM64] boot 流程梳理

[Linux kernel] [ARM64] boot 流程梳理

2023-08-07 07:28:43 556

原创 【Linux kernel/cpufreq】framework ----big Little driver

一般ARM SOC包含能效和性能两个cluster,共8个 core,可以把这8个core统统开放给kernel,让kernel的调度器(scheduler)根据系统的实际情况,决定哪些任务应该在哪些core上执行。。

2022-11-25 21:45:36 885 1

原创 【Linux kernel/cpufreq】framework ----cpufreq governor

基于linux模块化的设计,早期的governor基本都是对CPU的使用率进行定时采样检查,然后根据使用率的情况调整CPU频率。

2022-11-01 21:33:16 1476

原创 【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 846

原创 【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 955

原创 【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 973

原创 【Linux kernel/CPU idle】CPU Idle ----framework

当cpu没有执行任务的时候,系统是如何管理cpu的?如果没有运行任务直接对cpu下电,确实做到低功耗了,但会导致下次跑任务,CPU启动太慢会导致性能太拉跨。

2022-10-25 21:51:24 1752

原创 【Linux kernel/CPU idle】CPU Idle 初探

idle 进程是当系统没有调度 CPU 资源的时候,会进入 idle 进程,而 idle 进程的作用就是不使用 CPU,以此达到省电的目的。

2022-10-24 22:09:34 1033

原创 【ARM/cache】CPU cache:组织及一致性

掌握cache,对写出高效能代码,以及优化Linux系统的性能是至关重要的

2022-10-21 22:29:37 1587

原创 【C语言基础】GNU C 关键字__attribute__用法

GNU C 编译器用于声明函数、变量或类型属性的关键字__attribute__ ((ATTRIBUTE))用法总结

2022-10-20 22:42:28 2216

原创 【ARM/cache】DynamIQ架构及cache的替换策略

【ARM/cache】DynamIQ架构及cache的替换策略学习

2022-10-11 20:48:54 2575

原创 【X6818】问题总结

X6818开发板调试问题总结

2022-07-18 05:41:49 697

原创 【Linux kernel基础】arch_initcall到底是怎么是一回事【doing】

arch_initcall学习

2022-06-24 08:15:54 792

原创 【刷题】【7.数组中出现次数超过一半的数字】

数组中出现次数超过一半的数字

2022-06-07 16:45:48 95

原创 【刷题】【6.连通网络的操作次数】

连通网络的操作次数

2022-06-07 16:43:55 90

原创 【刷题】【5.最少交换次数】

最少交换次数

2022-06-07 16:41:00 1286

原创 【刷题】【4.找朋友】

找朋友

2022-06-07 16:39:09 258

原创 【刷题】【2.两数之和绝对值最小】

两数之和绝对值最小

2022-06-07 16:35:59 1149 1

原创 【刷题】【1.连续区间个数】

连续区间个数

2022-06-07 16:31:50 960

原创 【刷题】【3.字符串比较】

字符串比较

2022-06-07 16:28:27 1229 1

原创 UEFI学习总结

UEFI学习总结

2022-04-18 10:23:18 1348

原创 【Linux】【驱动】【USB学习】

Linux USB 驱动开发(五)—— USB驱动程序开发过程简单总结Linux USB 驱动开发(一)—— USB设备基础概念

2022-04-14 07:32:06 807

原创 【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 311 1

原创 【Linux】【学习资料汇总】

linux资料汇总

2022-04-03 03:40:40 969

原创 编译器学习资料

详解三大编译器:gcc、llvm 和 clang了解Clang/LLVM

2022-02-19 05:09:22 177

原创 arm cp15/MIPS c0协处理器学习总结

摘抄自:鸿蒙轻内核源码分析:MMU 协处理器鸿蒙内核源码中C7,C2,C13三个寄存器协处理器CP15介绍—MCR/MRC指令(6)

2022-01-04 10:44:22 220

原创 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 771

原创 arm64 页表创建相关资料汇总

ARM64的启动过程之(二):创建启动阶段的页表ARMv8(aarch64)页表建立过程详细分析

2021-12-09 00:09:23 383

原创 【Binder学习】

Android Binder: link.Android Bander设计与实现 - 设计篇: link.Android - Binder 进程间通讯: link.

2021-12-09 00:04:32 1434

原创 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 639

原创 vscode 配置

vscode 配置

2021-10-25 19:13:47 229 1

原创 vscode连接远程服务器显示could not establish connect,解决步骤

vscode连接远程服务器显示could not establish connect,解决步骤欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器首先在Window

2021-02-28 01:55:00 7645

原创 ARM编程模型之异常&&中断总结

ARM编程模型

2020-04-02 07:53:01 226

原创 JZ2440学习笔记

OpenJTAG驱动路径:开发板资料\如何烧写S3C2440裸板程序\驱动\OpenJTAG

2020-02-10 09:19:11 345

转载 Linux Kernel devm_* API源码分析【转】

Linux Kernel devm_* API源码分析本文通过对devm_kzalloc函数的实现进行解析,帮助理解devm系列api的用法。devm系列api的主要特别之处:使用devm系列申请到的资源可以由系统自动释放,解放双手devm_kzalloc函数的实现代码:void * devm_kzalloc(struct device *dev, size_t size, gfp_...

2020-01-11 12:56:26 510

vscode1.52版本

vscode当前最新正式版本vscode1.52已发布。由于之前使用的版本太老旧,下载安装某些插件不能使用,提示不支持旧版本,请使用当前最新版本尝试。

2020-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除