-
2023-11-01 #fpga
-
2023-10-21 #cpu
注: 啃手册自用,基于riscv-spec-20191213-1版本,使用DeepL辅助翻译,人工二次修改校对,若有纰漏,望谅指正.
riscv-spec
Chapter 9 “Zicsr” CSR
“Zicsr”, 控制和状态寄存器(CSR) 指令, Version 2.0
RISC-V 定义了一个由 4096 个控制和状态寄存器及其Hart(硬件线程)组成的独立地址空间。本章定义了在这些 CS
-
又是一个没写多少代码,但是却花了半个晚上思考程序OOP结构的夜晚,我发现这是在浪费时间,而且会让你的大脑很累,感觉昏昏沉沉的.所以我痛定思痛,写下下面的一些感悟总结. 不一定对,而且随着时间变化,一些观点也会改变吧.
- OOP不是必要: 当需要实例化多个相同类型的对象时,使用OOP来组织程序是很好的,但当整个程序中只存在一个实例(单例)的时候,面向对象设计得到的收益并不是很大.
- C++不是必要:
-
2023-08-23 #lan
介绍
之前一直用Valgrind这个工具来定位C/C++程序的各种内存问题,结果发现还有这个由Google开发的调试工具Sanitizers,提供更全面的报错和更好的性能(Valgrind会导致程序减慢大概20到50倍,而Sanitizers只会减慢大概2到4倍)
Sanitizers能够覆盖到如下这些Valgrind不能检测到的问题:
- Out-of-bounds access in stack
-
2023-08-22 #cpu
RV32I指令集和多周期 RV32I CPU代码的笔记,可用于RV32I指令集速查
指令格式
RISC-V指令集是模块化设计的,其中RV32I是基本的32位整数ISA,只有47种指令,但是足以提供给现代操作系统足够的基本支持以及作为编译器的编译目标。
| 助记符 | 描述 | | ------ | ------------- | | I
-
2023-08-10 #lan
-
2023-08-08 #web
时至今日还能回忆起第一次自己部署网站的痛苦(笑),当时前后搞了一周多,记得当时有个非常神奇的bug困扰了我好久:网站部署后随机丢失css和js文件,当时左查右查,最后发现是Django的
SECRET_KEY
字段,我是这样写的:SECRET_KEY = get_random_secret_key()
,看似没有问题,但是当uWSGI启动多线程时,线程之间的SECRET_KEY
却因此不同,导致了这样神奇 -
2023-08-03 #cpu
第一篇“提问的智慧” 较为系统和详细,作者描述了很多提问时需要注意的细节,非常详细,在此将其结合自己的理解概括总结如下:
- 提问之前:应该尽可能先自己解决问题,而不是一有问题就麻烦别人。
- 提问时:
- 提问的地方:选择合适的地方,尊重他人
- 标题:使用
目标-差异
式的描述,目标
指示哪里有问题,差异
指示与正常情况有何差别 - 内容:
- 拼写语法正确,易于阅读
- 简洁、准确描述重现问题发现的情况
- 先直接告知现象而不是