首页
苦瓜小仔
取消

【笔记】rCore (RISC-V):GDB 使用记录

安装 GDB GDB 需要针对 riscv64 平台编译的版本才能用来调试内核,其二进制文件为 riscv64-unknown-elf-gdb。 rCore 教程的配置环境一章给了 GDB 预编译二进制的下载链接,但那是在 2020 年版本了。 最大的缺点在于不支持 TUI 插件和 dbg-dashboard。 所以,为了愉快地调试代码,需要自己编译最新的 GDB。GDB 编译流程在...

【笔记】rCore (RISC-V):函数调用与调用栈

函数调用是一种控制流结构 程序中构造的 控制流 (Control Flow) 具有多种结构。在汇编级别,它们核心都是利用跳转一类的指令: 控制流结构 汇编指令 说明 分支结构 (如 if/switch 语句) B 型指令 (条件分支) beq, bne, blt, b...

【笔记】rCore (RISC-V):指令的二进制格式

示例:beq x1 x2 0x1f 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 1...

【笔记】《期货市场技术分析》约翰·墨菲

《道氏理论》基本原则 平均价格包容消化一切因素。 市场具有三种趋势。 趋势定义是,只要相继的上冲价格波海和波谷都对应地高过前一个波峰、波谷, 那么市场就处在上升趋势之中。换言之,上升趋势必须体现在依次上升的蜂和谷上。 相反,下降趋势则以依次下降的峰和谷为特征。 趋势分成三类——主要趋势、次要趋势和短暂趋势。 ...

LazyLock 未稳定的难点

LazyLock 的背景 翻看古老的教程,初始化数据用的最多的是 lazy_static!。 但实际上,它正逐渐在被 once_cell 库替代: lazy_static 库已经存在了 10 年,截止目前下载量超过 1.56 亿次,不久前官方宣布 落幕 once_cell 库仅存在 5 年,下载量就已突破 1.4 亿次,其作者就是 Rust Analyzer 的作者 onc...

syn 的高级封装库 parsel

使用 syn 库解析语法树时,常常人工编写 Parse trait 的实现。 最近发现一个基于 syn 和 quote 两个库,具有良好设计和封装的高级库 parsel,它具有以下亮点: 通过自定义类型和 #[derive(Parse, ToTokens)] 的方式,无需重复编写 input.parse() 这种“显而易见”的啰嗦代码 无缝使用 syn 和 quote 库 通...

Rust 自定义测试:组合型参数

使用 libtest-mimic 给每组参数生成测试(自定义测试名和测试函数名、自动处理 panic、良好的结果汇总) 使用 itertools 生成参数的组合 /* [dependencies] itertools = "0.10" libtest-mimic = "0.6" */ use libtest_mimic::{Failed, Trial}; #[test] f...

axum 使用 ctrl-c 退出

最简单的例子在 axum 仓库中有:https://github.com/tokio-rs/axum/blob/b0eb7a24bc62c76d59d2a98117c27a4bdb11a34a/examples/graceful-shutdown/src/main.rs#L31 但考虑以下场景:使用 ctrl-c 会让 server 结束,而 tokio 异步运行时通过 block_on ...

R 语言绘图包整理搜集

ggally https://ggobi.github.io/ggally/index.html 拓展 ggplot2,主要绘制成对型的矩阵数据,方便绘制多子图。 ggbump https://github.com/davidsjoberg/ggbump 排名图 ggVennDiagram https://github.com/gaospecial/ggVennDiag...

WezTerm (Alacritty 的竞品)

WezTerm 与 Alacritty 的区别 它们的定位都是 跨平台的(win10+、Linux、MacOS) GPU 加速的 终端模拟软件 (terminal emulator):你可以连本地 shell、ssh、WSL 角度 WezTerm Alacritty 仓库地址...