Luyoung
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
Rust Trait 笔记:抽象能力、参数传递与设计模式

Rust Trait 笔记:抽象能力、参数传递与设计模式

最近笔者在学 Rust,被 Rust 中精巧的设计深深吸引,尤其是 traits。它不仅能够应用到 Struct、Enum等,而且还能作为参数传入函数。应用于结构体先看这个例子: 12345678910111213141516171819202122232425262728293031323334353637383940414243trait Shape { fn area(&am
2025-02-18
Programming Languages
#Rust #trait #type system
SSH 免密登录失效问题排查:权限、密钥与配置

SSH 免密登录失效问题排查:权限、密钥与配置

问题突然间我发现我需要密码才能登录到服务器,但是我仔细对比检查了私钥和秘钥,发现一切正常。这是什么原因呢? 问题原因原来,前几天我用 snap 安装了 hugo,hugo 需要文件夹权限,为了让 snap 应用访问用户家目录下的文件,我按照网上教程将家目录权限修改为 777。 ssh 为了保证通信安全,防止 key 被篡改或窃取,对目录和文件的权限要求相当严格: 12345chmod 0755 ~
2025-02-15
Tooling
#Linux #SSH #troubleshooting
SPI 与 Flash 访问笔记:读写流程与调试思考

SPI 与 Flash 访问笔记:读写流程与调试思考

从 flash 中读出数据(1)之前在 ysyxSoC/perip/spi/rtl/spi_top_apb.v 中定义宏 FAST_FLASH,因此当程序访问 0x30000000+X 的时候,就会访问这个模块: 123456789101112131415161718`ifdef FAST_FLASHwire [31:0] data;parameter invalid_cmd = 8'
2025-02-09
Computer Architecture
#ysyx #SPI #Flash
C 语言内联汇编:语法、约束与示例

C 语言内联汇编:语法、约束与示例

一个示例123456asm volatile( "jalr x0, 0(%0)" : : "r"(jump_address) : ); 代码片段的格式和含义分解: 这段代码使用了 GCC 扩展内联汇编的通用格式,其基本结构如下: 123456asm [volatile] ( 汇编指令模板 : //
2025-02-06
Systems Programming
#C #inline assembly #compiler
Docker 镜像加速方案:代理、镜像源与配置取舍

Docker 镜像加速方案:代理、镜像源与配置取舍

前言docker 在 pull 镜像的时候,速度要么很慢,要么直接卡住报错,这是因为网络不通的原因。主要有两个思路,方案一就是换源,将 docker 的仓库换到镜像源上,因为镜像源在国内,因此这种方式便宜。但缺点是镜像可能会在某个时间节点停止服务,不够稳定。方案二就是不用管源的事情,直接在本地架设代理,缺点是技术门槛高,需要架设代理,还需要支付额外的流量费。优点是源不会挂掉,很稳定。 方案一创
2025-01-16
Tooling
#Docker #tooling #registry mirror
2024 年终总结:AI 浪潮下的学习与选择

2024 年终总结:AI 浪潮下的学习与选择

2023 年的目标“因此在 2024 年,我将会学习更多的关于算法(CS61B)、计算机网络(CS114)、 数据库、编译原理、Java(面向实习学习)、分布式等知识,争取能在暑假拿到offer。” 上述言论是我在 2023年12月31 在博客中提到的。当时我的想法是学习 Java 后端,学习通用的 Java 学习路线,然后在暑假拿到 实习offer。 但最终,2024 年一整年,我的学习内容
2025-01-09
Personal
#reflection #personal summary #AI #2024
异常处理再探:最小异常处理程序与运行时支持

异常处理再探:最小异常处理程序与运行时支持

前言阅读本案例需要有做 nemu 的经历,最低要求是是做到 PA3.1。 一个最简单的异常处理程序12345678910111213141516#include <klib.h>void handler() { uintptr_t mepc; asm volatile("csrr %0, mepc" : "=r"(mep
2024-11-19
Computer Architecture
#ysyx #runtime #exception
总线笔记:硬件模块互联的基本思路

总线笔记:硬件模块互联的基本思路

前言思路1、将默认信号改成握手信号2、加上随机延迟3、综合测试 状态机的角度进行思考,如何进行状态转换,这个过程中,要考虑信号延迟,因此要能将状态能够保持几个周期,因此要在信号发射端,保持这些信号。总之,谁发射,谁负责,谁接收到了,谁转换状态。 CPU 的状态完全靠寄存器来保持;MEM 的状态完全靠寄存器来保持。
2024-10-30
Computer Architecture
#SoC #bus #ysyx
AXI 总线协议简述:通道、握手与访问事务

AXI 总线协议简述:通道、握手与访问事务

前言AXI(Advanced eXtensible Interface)是 AMBA(Advanced Microcontroller Bus Architecture)协议家族的一部分,由 ARM 公司制定。AXI 是一种高性能、可扩展的总线协议,广泛用于 SoC(System on Chip) 设计中,特别适用于高带宽、低延迟的应用。它主要用于在系统中不同组件之间传输数据和控制信号,尤其是
2024-10-28
Computer Architecture
#AXI #bus protocol #SoC
PA4.1 思考:在 AbstractMachine 上运行 RT-Thread

PA4.1 思考:在 AbstractMachine 上运行 RT-Thread

前言前面谈到了异常响应机制,如果在上下文恢复的时候,做点手脚,比如别让它回到原来的上下文,而是回到了另一个进程的上下文,那么这就是进程切换,也是多道程序的基础。 yield OS前言就是 yield OS 的核心思想了,实现kcontext 后,别忘了修改 trap.S,使得 a0 这个返回值传到 sp。 1234567Context* kcontext(Area kstack, void (
2024-10-21
Operating Systems
#ysyx #AbstractMachine #RT-Thread
1…1011121314…31

搜索

Hexo Fluid
总访问量 次 总访客数 人