自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows 端口映射

在 Windows 中,可以使用 netsh 命令来添加、查看和删除端口转发规则。要要要其中的和应该与你想删除的规则匹配。请注意,执行这些操作通常需要管理员权限。

2023-09-09 12:07:53 558

原创 Ubuntu 22.04 系统安装水星 wifi 驱动 Mercury MW310UH

lsusb得到 USB 设备信息。

2023-09-09 12:05:51 1888

原创 QEMU启动RISC-V架构OpenEuler并配置OSC环境

QEMU启动OpenEuler-RISCV

2023-07-23 19:46:43 761

原创 C 语言实现简单有限状态机

常说的状态机是有限状态机 FSM,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。状态总数(state)是有限的。任一时刻,只处在一种状态之中。某种条件下,会从一种状态转变(transition)到另一种状态。设计状态机的关键点:当前状态、外部输入、下一个状态。

2023-01-08 13:51:42 2506

原创 CPU 亲和性与中断亲和性

CPU 的亲和性 (Affinity),属于一种调度属性,可以绑定进程到指定 CPU 上。换句话说,就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器。为何会出现这种技术?在 SMP(Symmetric Multi-Processing 对称多处理) 架构下,调度器会试图保持进程在相同的 CPU 上运行,这意味着进程通常不会在处理器之间频繁迁移,进程迁移的频率小就意味着产生的负载小。

2023-01-07 15:22:52 2267

原创 CPU Cache 高速缓存

如果发现,要写入的数据所对应的 Cache Block 里,放的是别的内存地址的数据,那么就要看一看,那个 Cache Block 里面的数据有没有标记成脏的。相比而言,如果使用中间的位作为组索引,那么相邻的块总是映射到不同的组,图中的情况能够存放整个大小的数组片。CPU 的读(load)实质上就是从缓存中读取数据到寄存器(register)里,在多级缓存的架构中,如果缓存中找不到数据(Cache miss),就会层层读取二级缓存三级缓存,一旦所有的缓存里都找不到对应的数据,就要去内存里寻址了。

2023-01-06 20:40:25 1972

原创 AMBA 总线协议-AXI 协议

在握手过程中,还会用到 LAST 信号。为了防止死锁发生,信号之间要遵循一些规矩,举例来说,如上面提到的 READY 信号依赖 VALID 信号,但是 VALID 信号不能根据 READY 信号来判断是否数据已准备好,否则将会造成死锁。这里也体现了双向流控机制,发送方的 VALID 信号只要置高,再握手完成之前都不能置低,必须等到接收方 READY 信号置高。AXI 协议是基于 Burst 的,地址结构里声明了一些传输过程中需要的信号,如起始地址,burst 传输长度,传输模式等等。

2023-01-06 20:34:40 1592

原创 Clang-Format 格式化代码

上文多次提到了配置文件,该文件决定了代码如何格式化,现在来介绍如何使用该文件。# 宏定义对齐使用宏定义对齐更详细的配置,可以参考官方文档。使用该配置一定要使用等宽的字体,否则配置生效但是显示不正确。比如我是用微软雅黑字体作为编码字体,因为该字体每个字符不等宽,导致格式化正确,但是显示不正确。如果将字体换位等宽字体如常用的Consolas,就可以正常显示。

2023-01-06 20:33:36 1717

原创 Git clone下来的分支不完整

设置克隆深度时发生。因为有些大型项目一次性克隆容易出错,所以只克隆一层深度。到本地后发现本地缺失了一些远程仓库的分支。命令查看所有分支没有显示该分支,该如何解决?

2023-01-06 20:30:44 2494

原创 《代码整洁之道》读书笔记

代码整洁之道

2022-12-28 19:18:17 870

原创 DEBUG 原理

1985 年,几家半导体厂商为了解决板级测试的问题,成立了 Joint Test Action Group(JTAG)联合测试行动小组,他们希望将测试点和测试电路集成在芯片内部引脚处。同时,留出一个统一协议的接口,大家都能通过这个接口来访问芯片的输入与输出状态。这样就省去了板级测试是的物理接触,同时还能进行逻辑性调试。后来 IEEE 组织,将这个方案制定成了标准 IEEE 1149.1,这就是现在我们常听到的 JTAG 调试。

2022-12-28 19:16:21 1716

原创 CPU 缓存一致性 MESI 协议

目前主流电脑的 CPU 都是多核心的,多核心的有点就是在不能提升 CPU 主频后,通过增加核心来提升 CPU 吞吐量。需要注意的是,对于不同状态触发的事件操作,可能来自于当前 CPU 核心,也可能来自总线里其他 CPU 核心广播出来的信号。这个策略,本质上就是把所有的读写请求都通过总线广播给所有的 CPU 核心,然后让各个核心去“嗅探”这些请求,再根据本地的情况进行响应。这里的问题就是所谓的缓存一致性问题,因为 CPU A 的缓存与 CPU B 的缓存是不一致的。加载到自己的缓存中,然后将变量。

2022-12-26 21:04:33 834

原创 Ubuntu 18.04 安装Clang/LLVM 11

【代码】Ubuntu 18.04 安装Clang/LLVM 11。

2022-12-24 17:25:44 3080 1

原创 加密算法总结

以 防止被篡改。严格来说,MD5 不是一种 加密算法 而是。

2022-12-22 11:41:25 982

原创 解决/usr/bin/env:python:No such file or directory

在执行的程序源码开头有这么一句,!#这玩意叫shebang也叫hashbang。他用来指定脚本的解释器,也就是说这个程序指定python解释器。再看这个错误提示,罪魁祸首就是这句命令,就是说在环境变量找不到python,通俗点说,假如我要能直接用python来跑这个程序,我在命令行直接输入python应该是可以进入python环境的,但是此时肯定不能。我们可以试试。

2022-12-22 11:40:37 3382 1

原创 保持 SSH 连接

SSH 总是被强行中断,尤其是用 VSCode 代码写的好好的,突然刷新窗口,不仅效率低,更惹人恼火。

2022-12-20 13:53:20 2107

原创 编码字体与阅读字体推荐

编码字体首要原则:等宽,等宽,还是 TMD 等宽!

2022-12-20 13:53:09 919

原创 CodeReview中常见缩写

代码评审CodeReview中常用缩写

2022-12-03 20:11:12 875

原创 多版本 Python 使用 pip 安装 package

多版本 Python 使用 pip 安装 package 问题

2022-11-29 09:10:38 3934 1

空空如也

空空如也

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

TA关注的人

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