自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 【aarch64】bitmask immediate

def highest_set_bit(x): pos=-1 while x!=0: pos+=1 x=x>>1 return pos#imms!=63或imms!=31#imms不为全1 判断:imms&level!=leveldef gen_bitmask(): l=[] for n in range(2): for imms in range(63): for im

2021-12-20 14:32:52 409

原创 【python高级语法】装饰器

对装饰器的理解:每个装饰器都对应了一个函数,用装饰器装饰的对象会成为装饰器的一个参数。通过下面的例子可以看出,不管对象是类还是函数,都被装饰器return的class B给替换了。要注意的是这个替换的操作是在加载模块时完成的。也就是说,一个装饰器的语句只会执行一次。还挺好玩的。def decratorA(class_A): class B: def __init__(self): print("class B has replaced class A

2021-12-10 19:16:27 754

原创 【学习资料汇总】关于arm64、模拟器等

1.gem5的使用https://blog.csdn.net/ivy_reny/category_6666068.html2.arm64的体系结构、tfa等https://blog.csdn.net/weixin_42135087/article/details/1070371453.Arm官方学习资料https://developer.arm.com/4.gnu工具链的手册https://www.gnu.org/manual/manual.html5.gem5的官方学习文档(有点过时)h

2021-12-07 11:17:33 293

原创 [gem5] gem5 ISA DSL语法

原教程为:https://www.gem5.org/documentation/general_docs/architecture_support/isa_parser/在原教程上基于gem5(v20.0.0.1)源码进行补充和修改。ISA Parsergem5的ISA DSL的语法部分可以在isa_parser.py的以p_开头的函数中找到。ISA的描述文件被分成两个部分:声明部分和解码部分。解码部分指定解码器的结构,并定义解码器返回的特定指令。声明部分定义了解码器所需的全局信息(类、指令格式、模板

2021-10-27 11:40:08 1050

原创 A64指令集如何将64位的数值写入通用寄存器

A64指令集中,mov编码里的立即数为16位。ATF中,通过宏定义,使得可以通过 mov_imm reg, imm的形式向通用寄存器中写入32bit或64bit的值。 .macro mov_imm _reg, _val .if (\_val) == 0 mov \_reg, #0 .else _mov_imm16 \_reg, (\_val), 0 _mov_imm16 \_reg, (\_val), 16 _mov_imm16 \_reg, (\_val), 32

2021-10-12 16:14:31 935

原创 Detailed analysis for runtime exception vector table and handler in TFA

文章目录1.Entries in TFA2.struct cpu_context3.sync_exception_aarch643.1 apply_at_speculative_wasave_and_update_ptw_el1_sys_regs3.2 check_and_unmask_ea3.3 handle_sync_exception3.3.1 smc_handler64(1) Prototype for runtime service SMC handler function and how to

2021-10-12 10:14:45 294

原创 2021-05-28 __typeof__()

typeof() and __typeof() are compiler-specific extensions to the C language, because standard C does not include such an operator. Standard C requires compilers to prefix language extensions with a double-underscore (which is also why you should never do so

2021-06-08 18:37:25 80

原创 【笔记】makefile学习笔记

参考:https://blog.csdn.net/weixin_38391755/article/details/80380786/0 关于程序的编译和链接编译(compile):把源文件编译成中间代码文件语法正确函数与变量的声明的正确:告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中)链接(link):把大量的Object File合成执行文件链接函数和全局变量1 Makefile 介绍IEEE 1003.2-1992 标准?1.1 Makefil

2021-03-18 15:53:24 164

原创 热题100刷题记录

热题100刷题顺序:按照难易程度排序3/8/2021 7/1001.两数之和题目时间3/8/2021解题思路c++代码class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> ans; int size=nums.size(); for(int i=0;i<size;i++)

2021-03-08 14:10:38 113

原创 数据库系统概率知识点提纲

参考数据库系统概论(第5版)第1章 绪论1.数据库的4个基本概念 P4数据数据库数据库管理系统数据库技术2.数据管理技术的三个阶段 P63.数据模型的组成要素P17数据结构数据操作数据的完整性约束条件4.常用的数据模型P18层次模型网状模型关系模型P25名词解释:关系、元祖、属性、码、域、分量、关系模式面向对象数据模型对象关系数据模型半结构化数据模型5.三级模式和两级映像 P27三级模式模式外模式内模式二级映像外

2021-02-22 16:41:59 898

原创 软件工程知识点提纲

第一章1.软件:如何去定义软件 程序+数据+文档软件特点(和硬件相比)P6 软件复用性2.软件危机:产生的原因(什么导致了软件危机)、表现(什么是软件危机)、如何解决?3.软件工程的定义、软件工程的三要素4.软件工程的目标、过程、原则5.八条一般原理6.七条基本原理第二章1.软件生命周期六个基本步骤2.瀑布模型特点、优点、缺点3.快速原型模型特点、优点、缺点4.增量模型特点、优点、缺点5.螺旋模型特点、优点、缺点6.喷泉模型特点、优点、缺点7.Rational统一过程的四个阶

2021-02-19 19:54:03 183

原创 【专题】动态规划

【专题】动态规划刷题顺序来自https://leetcode-cn.com/circle/article/48kq9d/文章目录【专题】动态规划更新记录数组中的动态规划[509. 斐波那契数](https://leetcode-cn.com/problems/fibonacci-number/)[70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)[338. 比特位计数](https://leetcode-cn.com/problems

2021-01-30 17:47:30 112

原创 【笔记】Arm CoreLink Generic Interrupt Controller v3 and v4 Overview

1.概述本文介绍:GICv3中断控制器的相关操作如何在裸机环境下配置GICv3中断控制器本文是_Arm CoreSight Generic Interrupt Controllers_相关指南的三部曲其一:Arm CoreLink Generic Interrupt Controller v3 and v4: Overview (this guide)Arm CoreLink Generic Interrupt Controller v3 and v4: Locality-specific

2021-01-08 21:53:36 2391

原创 【笔记】Armv8-A Exception model 异常模型

0.目录文章目录0.目录1.简介2. 特权与异常等级2.1 特权的类型2.2 存储特权2.3 寄存器访问3.执行状态和安全状态3.1 执行状态3.2 安全状态3.3 改变执行状态3.4 改变安全状态3.5 异常等级和执行状态4.异常类型4.1 同步异常4.2 异步异常4.3 IRQ和FIQ4.4 SError5.处理异常5.1 异常术语5.2 处理异常5.3 异步异常路由5.4 确定异常将被带往的执行状态5.5 从异常状态返回5.6 异常栈6.向量表参考1.简介本文介绍:Armv8-A的异常和特权模

2021-01-07 19:01:11 2035 1

原创 【笔记】Armv8-A 内存管理

1. 概述本指南介绍:虚拟地址如何转换为物理地址转换表格式如何管理TLBs对以下可能有所帮助:如boot编程或驱动编程需要设置或管理MMU将能够学会:虚拟地址如何转换为物理地址命名不同的地址空间解释地址空间怎么映射到地址翻译的各个阶段什么时候软件必须维护TLB,以及维护TLB的命令的语法2. 什么是内存管理内存管理描述如何控制系统中对内存的访问。每次操作系统或应用程序访问内存时,硬件都会执行内存管理。内存管理是一种将内存区域动态分配给应用程序的方法。2.1 为什么需

2021-01-06 20:44:17 1600

转载 【笔记】Armv8-A virtualization

0.目录文章目录0.目录1.概述1.1 Before you begin2.虚拟化介绍2.1 虚拟化为什么重要2.2 hypervisors的两种类型2.3 全虚拟化和半虚拟化2.4 虚拟机和虚拟CPUs3.AArch64中的虚拟化4.stage 2 转换4.1 什么是stage 2 转换4.2 VMIDs4.3 VMID vs ASID4.4 属性整合和覆盖4.5模拟MMIO(Memory-mapped Input/Output)4.6 系统内存管理单元System Memory Management

2021-01-05 20:54:57 1009 1

原创 [笔记]嵌入式HypervisorXvisor与KVM和XEN+ACRN架构的对比分析

目录目录目录摘要1.介绍2.虚拟化技术分类2.1 Hypervisor设计1.完全宏内核设计2.部分宏内核设计3.微内核设计2.2 虚拟化模式1.全虚拟化2.半虚拟化3. **嵌入式系统的开源Hypervisor**3.1 XEN3.2 KVM3.3 **X3.4 ACRN4.客户机IO事件模拟4.1 Xen ARM4.2 KVM ARM4.3 Xvisor ARM4.4 ACRN5.主机中断5.1 Xen ARM5.2 KVM ARM5.3 Xvisor ARM5.4 ACRN6. 锁同步延迟7.内存管

2021-01-05 14:02:19 3331

原创 关于raspi3的注册分析

关于raspi3的注册分析1.raspi3_machine_init1.1 binclude/hw/arm/raspi.cstatic void raspi3_machine_init(MachineClass *mc){ mc->desc = "Raspberry Pi 3"; mc->init = raspi3_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; mc

2020-12-18 16:30:49 228 2

原创 【ARM-8】MPIDR_EL1, Multiprocessor Affinity Register 多处理器关联寄存器

作用: 在多处理器系统中,为调度提供一个额外的PE(process element)识别机制属性: MPIDR_EL1是一个64位的寄存器域值:[63:40]:Reserved, RES0.[39:32]:Affinity level 3。有关更多信息,请参阅Aff0的描述。[31]:Reserved, RES1.[30]:U。表示一个单处理器系统,与多处理器系统中的pe0不同。这个位的可能值是:0b0 :处理器是多处理器系统的一部分。0b1 :处理器是单处理器系统的一部分。[29:2

2020-09-14 15:28:10 8693

翻译 【ARM-8】 DCZID_EL0, Data Cache Zero ID register:

作用: 指示DC ZVA(Data Cache Zero by Address)指令写入字节值0的块大小如果实施了FEAT_MTE,那么这个寄存器还指示了DC GVA和DC GZVA的粒度Bits [63:5] :Reserved, RES0.DZP, bit [4] :Data Zero Prohibited.此字段指示是否允许或禁止使用DC ZVA指令0:允许1:禁止BS, bits [3:0] :block size = 2^value * 64 bit,value_max=9,ma

2020-09-14 15:26:50 679 1

原创 【多媒体】关于DCT的理解

图片压缩中的第一步就是使用DCT进行离散余弦变换原理:图像原理:人眼对低频信息更稳敏感,对高频信息比较不敏感。这是什么意思呢?想象姚明出现在小学生中,这是非常突兀的,姚明就是高频信息,小学生就是低频信息。而对高频信息不敏感的意思是,出现在小学生中的人如果是任何一个正常身高的成年人,也能够一眼观察的到,虽然成年人和姚明的身高也差个几十公分,但是在一堆小学生里,他们身高的变化都属于高频信息。DCT变换,就是将姚明变成了成年人。数学原理:函数可以通过傅里叶变换转换成余弦级数,低次方的项保存着低频信息,高次

2020-07-10 15:19:43 1321

原创 2.2线性表的顺序表示

#include<cstdio>#include<stdlib.h>typedef int ElemType;#define MaxSize 100#define InitSize 100//1.顺序表结构体定义//1.1静态分配数组typedef struct SqList { ElemType data[MaxSize]; int length;};//1.2动态分配数组typedef struct SeqList { ElemType *data

2020-06-14 08:02:14 152

原创 【ucosII】6.内存管理

2020-04-24 19:25:31 76

原创 【ucosII】5.消息队列

2020-04-24 19:24:19 86

原创 【ucosII】4.事件管理

2020-04-24 19:21:33 143

原创 【ucosII】3.中断和事件管理

2020-04-24 19:13:05 128

原创 【ucosII】2.任务管理

2020-04-24 19:11:22 92

原创 【esp32】esptool的用法

esptool是一个烧录工具,位于 esp-idf 下 ./components/esptool_py/esptool/esptool.pyesptool功能参考:$ ./components/esptool_py/esptool/esptool.py --helpusage: esptool [-h] [–chip {auto,esp8266,esp32}] [–port PORT] [...

2020-03-08 15:04:42 3770

原创 【leetcode0131】分割回文串

代码private List<List<String>> res = new ArrayList<>(); public List<List<String>> partition(String s) { if(s.length()==0) return res; backtrack(s,new ArrayList...

2020-02-19 15:15:32 61

原创 【leetcode0126】单词接龙 II(超时)

代码private int min = 99999; private List<List<String>> res = new ArrayList<>(); public List<List<String>> findLadders(String beginWord, String endWord, List<String&...

2020-02-19 14:40:12 124

原创 【leetcode0090】子集 II

代码private List<List<Integer>> res=new ArrayList<>(); public List<List<Integer>> subsetsWithDup(int[] nums) { Arrays.sort(nums); boolean[] choose=new boolean[nums.le...

2020-02-19 09:59:40 77

转载 【leetcode0089】格雷编码

代码 public List<Integer> grayCode(int n) { List<Integer> gray = new ArrayList<Integer>(); gray.add(0); //初始化 n = 0 的解 for (int i = 0; i < n; i++) { int add ...

2020-02-19 09:42:53 84

原创 【leetcode0079】单词搜索

思路代码public boolean exist(char[][] board, String word) { boolean[][] choose=new boolean[board.length][board[0].length]; for(int i=0;i<board.length;i++) { for(int j=0;j<board[0].length;j...

2020-02-19 09:23:14 87

原创 【leetcode0078】子集

思路套回溯框架代码private List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> subsets(int[] nums) { List<Integer> path = new ArrayList<>();...

2020-02-18 22:54:58 65

原创 【leetcode0077】组合

思路套用回溯模板代码private List<List<Integer>> res=new ArrayList<>(); public List<List<Integer>> combine(int n, int k) { List<Integer> path=new ArrayList<>();...

2020-02-18 22:29:00 62

原创 【leecode0060】第k个排列

思路代码public String getPermutation(int n, int k) { int[] fac= {0,1,2,6,24,120,720,5040,40320,362880,3628800}; String res=""; String s="123456789".substring(0,n); --k; while(k>0) { int...

2020-02-18 22:13:41 97

原创 【leetcode0051&0052】N皇后&N皇后2

小技巧回溯法字符数组转化为字符串思路代码private List<List<String>> res=new ArrayList<>(); public List<List<String>> solveNQueens(int n) { char[][] board=new char[n][n]; for (c...

2020-02-18 20:47:12 59

原创 【leetcode0047】全排列II

思路和46类似,要考虑去重;由于相同的数字走过的路径相同,那么相同的数字要么一起选,要么只用选择其中一个作为分叉点。代码private List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> permuteUnique(int[] nums)...

2020-02-17 18:48:51 60

原创 【leetcode0046】全排列

思路不需要剪枝的回溯算法,照模板写即可代码private List<List<Integer>> res =new ArrayList<>(); public List<List<Integer>> permute(int[] nums) { if(nums.length==0) return res; bool...

2020-02-17 18:05:35 61

原创 【leetcode0044】通配符匹配(回溯法时间超了,等动态规划的时候重新改)

思路代码public boolean isMatch(String s, String p) { if(p.isEmpty()) return s.isEmpty()? true:false; if(s.isEmpty()) return p.charAt(0)=='*'? isMatch(s,p.substring(1)):false; if(p.charAt(0)...

2020-02-17 17:22:38 97

空空如也

空空如也

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

TA关注的人

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