自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 开源项目源码阅读方法

源代码阅读方法

2024-04-02 20:40:35 257

原创 JTAG原理

需要注意的是DR寄存器有很多,每个IR指令可以对应不同的DR。一个特殊的DR动作是,当TAP进入Test-Logic-Reset状态时,DR寄存器自动装入这个器件对应的ID,规定这是一个32位的值。当TAP处在Shift-IR模式下,就可以通过TDI每次写入一bit到IR寄存器,然后IR寄存器会自动移动一位。TAP维护了一个状态机[1],这个状态机的状态变化只是受TMS控制,状态改变之后对TDI、TDO的解释和行为定义将发生对应的变化,从而实现了监测、下载程序、调试等不同的功能。

2024-03-30 21:51:03 469

原创 如何理解一个操作系统

操作系统通常比较复杂,各种系统服务和功能组件非常丰富,深入研究一个操作系统可能会经常感到无从下手,特别是没有很多资料的时候。有以上四点,我认为一个操作系统的关键内容已经有了,系统大厦的奠基完成。

2023-06-18 09:15:00 178 1

原创 linux mm系列:buddy分配器

buddy分配器的真实接口是 rm_queue,该接口实际调用 rmqueue_buddy. 这个函数不断地尝试从zone中寻找符合order要求的page,申请的核心是__rmqueue_smallest和__rmqueue.这是一个锦上添花的操作,大概的作用就是把空闲的块按照能否移动的性质分成几类,再以后出现大量外碎片的时候,可以做些移动操作来减小。expand函数中的low是申请的内存的order数,high是当前分配的block的order数。剩余的那一个3阶的内存块就是要返回的内存块了。

2023-03-26 18:19:21 379

原创 linux mm系列:内核内存管理概述

首先明确内存访问过程,程序中使用的都是虚拟地址,所有的内存访问从软件角度都是虚拟地址。同时,真实的存储都是在物理内存或者外设寄存器上,这些物理内存和外设寄存器在物理地址空间上的分配一同构成了物理内存布局。在解决这两个核心问题后,可以进行一些锦上添花的操作,例如可以在实际写内存时才分配物理内存,提升物理内存的实际利用率等等。这两个问题,在逻辑上是两个完全独立的问题,虚拟内存的分配可以和物理内存分配没有任何关系,让二者关联的方式就是地址映射,也就是通过页表将虚拟地址转换成物理地址。

2023-03-26 14:28:57 223

原创 linux mm系列:memblock分配器

memblock是物理分配器还是虚拟分配器?答:memblock管理的核心逻辑是基于物理内存的,从这个角度来看是物理分配器。但是分配的返回地址可以是物理地址也可以是虚拟地址。虚拟地址是通过phys_to_virt函数完成的映射。因此可以看出memblock的工作在直接映射区上,即通过__va()宏得到虚拟地址。memblock的生命周期是怎样的?答:memblock存在于Linux启动初期,这个阶段buddy还未工作。

2023-03-26 13:36:39 263

原创 libfakeroot.c:90:40:error _STAT_VER undeclared

将其下的fakeroot.mk中的版本改成1.25.3,确保下面的网址可以访问,如果不能访问,需要重新搜索一下。找到buiildroot/package/fakeroot。

2023-02-18 20:22:23 1440

原创 Linux配置、编译和移植以及GDB调试

本文阐述拿到Linux源码之后,如何对其进行配置、编译,以及如何使用gdb调试内核

2023-01-16 22:59:04 518

原创 SCons上手教程

如何使用scons,基本的三个问题的答案

2023-01-11 22:41:24 914

原创 Cache的基本原理

Cache是高性能的处理器必不可少的,cache的实现在逻辑上的关键是在于将一个地址A,映射成为到一个cache内的地址单元。本文尝试对这三种结构做一个的简单明亮的阐述。

2022-12-12 01:51:59 625 2

原创 ARMv7 MMU多级页表

Arm v7-A架构中规定的VMSA(virtual memory space address)可以支持最多两级页表,MMU是具体实现VMSA的器件,本文关注使用MMU实现虚拟地址转换的关键的软件细节。

2022-08-07 12:11:17 1434

原创 LLVM快速入门上手指南

llvm迅速上手

2022-07-31 17:52:48 4806

原创 四步解决动态规划--绪论

四步骤解决动态规划问题

2022-07-23 18:50:35 96

原创 动态规划的本质是递推问题

掌握递推,其实也就掌握了动态规划。

2022-07-20 23:46:09 645

原创 对cmake编译框架的思考

大型项目CMake工程的思维模型

2022-07-02 21:26:03 166

原创 SystemC快速实战指南

主要内容如何安装SystemCSystemC风格的hello worl如何编译SystemC下的hello world1. 如何安装SystemCSystemC是一组C++库,可以从下面这个网址进行下载。https://accellera.org/downloads/standards/systemcSystemC下有几个组件:SystemC 2.3.3 (Includes TLM)SystemC AMS 2.3SystemC CCI 1.0SystemC Verificat

2022-05-28 20:28:09 3184

原创 qemu仿真只显示vnc server running on ::1:5900

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-05-28 17:01:45 2380

原创 Linux CFS调度器的思考

linux CFS调度器常见的调度策略固定时间片的问题CFS调度的目标1 什么是完美的多任务处理器?2 如何刻画一个完美的多任务处理器?3 如何模拟一个完美的多任务处理器?CFS调度的实现新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与

2022-01-12 21:37:39 494

原创 GNU linker的undefined reference问题

奇怪的undefined reference symbol一种可能的原因

2021-10-03 13:07:15 341

原创 C++模板的若干问题

1.为什么要使用模板?对于特点相似的类,比如有相同的方法相似的成员,使用模板可以使得这些类得到进一步的抽象。也就是写一个超级形态的类。这样至少有一个浅显的好处,只用写一次。但实际上,可能更方便维护,也具有更一直的特性。对于函数,作用也类似,也就是形成一个函数簇,这个函数簇的所做的动作是高度相似的。使用模板函数的益处也相似。2.模板类怎么写?模板类的申明如下template <class T> class MyClass1 { // C++98就开始支持}t.

2020-05-20 20:23:40 216

原创 C++ 内存泄漏究竟是什么

C++中被new出的空间没有被正确的delete则会造成内存泄漏。内存泄漏可以导致程序在运行时没有足够的内存空间,从而发生OOM错误。我在这里要测试一件事情,就是不正确的释放new出来的空间,看看会发生什么。上图中两段代码,左侧正常的new和delete,而右侧只new不delete。在程序运行过程中,这样的结果是显然的,也就是说不正确的delete内存会被继续消耗,而大量的这种情况存在,会使得程序在运行期间消耗的内存越来越大,到最后慢慢变卡,最后的最后就crash掉了。导致不能正确的d

2020-05-19 11:20:03 603

原创 搞懂链表环路-快慢指针:原理和代码

搞懂链表环路-快慢指针:原理和代码1问题抽象2快指针是慢指针的2倍速度3 C++代码描述4 快指针是慢指针的三倍速5二倍速算法中c点的存在性6重要的事快慢指针经常被用在链表相关的一些算法中,具有很高的时间和空间效率。最近在LeetCode上刷题看到了链表环路检测和环路起始节点的访问,看了一些代码和一些大佬的解释,但是感觉说得不是很清楚。所以自己动手推导了一下。1问题抽象带有环的链表一定可以表...

2020-04-26 19:42:47 865

免费的PDF分割合并小工具

免费的PDF分割合并小工具CQY-SM。解压即可使用,无需安装。代码基于python tinker pypdf2等。请不要再次在其它地方上传本资源。双击gui.exe即可运行。

2020-05-02

王新梅_纠错码_原理与方法_带目录 .rar

纠错码 pdf 带目录 西电王新梅 有限域 线性码

2019-05-22

使用wxWidgets进行跨平台程序开发 pdf

中文教程,目录详细,使用wxWidgets进行跨平台程序开发

2019-01-23

空空如也

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

TA关注的人

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