今天是晴天
凤凰花开的路口 - (一只呱噪的鸭梨)
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
又到凤凰花朵开放的时候
想起某个好久不见老朋友
记忆跟着感觉慢慢变鲜活
染红的山坡道别的路口
青春带走了什么留下了什么
剩一片感动在心窝
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
也许值得纪念的事情不多
至少还有这段回忆够深刻
是否远方的你有同样感受
成长的坎坷分享的片刻
当我又再次唱起你写下的歌
仿佛又回到那时候
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
几度花开花落
有时快乐有时落寞
很欣慰生命某段时刻
曾一起度过
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
给我最珍惜的朋友
工具篇:第十篇 Git基础入门
Git基础入门,包括Git的基本概念、常用指令、分支管理、多人协作等内容。
简单的git指令
12345678910git init # 初始化一个新的Git仓库。git add <file> # 将文件添加到暂存区。git commit -m <message> # 将暂存区的内容提交到仓库,并附上提交信息。git reset --hard commit_id # 将当前分支的头指针移动到指定的提交,同时重置工作目录和暂存区到这个提交状态。git log # 显示仓库的提交历史记录。git reflog # 显示所有的引用记录,包含所有的提交、重置和合并操作的历史。git checkout -- file # 从当前分支的最新提交中恢复指定文件,撤销对该文件的未提交更改。git reset HEAD <file> # 将指定文件从暂存区移除,但保留工作目录中的更改。这样可以让文件恢复到未暂存状态。git rm # 删除文件,并将删除操作添加到暂存区。git fetch # 从远程仓库获 ...
Linux 工具(换源、Docker)
这里记录了一些使用Linux当中的常用工具,主要是Debian系
一键换源工具
12sudo su # 切换root用户,注意:不能使用sudo替代root执行bash <(curl -sSL https://linuxmirrors.cn/main.sh)
安装Docker工具
在镜像站倒了以后,安装Docker比较麻烦
12sudo subash <(curl -sSL https://linuxmirrors.cn/docker.sh)
显示系统信息
找大佬帮忙之前先截图neofetch的输出
1sudo apt install neofetch
机器学习:第九篇 Yes, We Kan!
陈巍:KAN网络结构思路来自Kolmogorov-Arnold表示定理。MLP 在节点(“神经元”)上具有固定的激活函数,而 KAN 在边(“权重”)上具有可学习的激活函数。在数据拟合和 PDE 求解中,较小的 KAN 可以比较大的 MLP 获得更好的准确性。相对MLP,KAN也具备更好的可解释性,适合作为数学和物理研究中的辅助模型,帮助发现和寻找更基础的数值规律。
前言
WASM汇编:第一篇 Hello World
在学rust,以及在讨论rust的未来应用领域的时候,有一个词一直在眼前蹦跶(WASM),所以什么是WASM?
前言
Google:WASM(WebAssembly)是一个可移植、体积小、加载快并且兼容 Web 的全新格式。
简单来说就是在浏览器上直接运行字节码,而不是js脚本。一拍大腿,好东西啊,把js替代,然后性能蹭蹭蹭往上涨就完了。仔细一想,好像有哪里不对劲,比如Python一直被诟病性能差,但是任然无法阻挡它的受欢迎程度,也没有任何被rust替代的迹象。同理,现如今在Google的优化下,js的性能应付现在的环境已经绰绰有余了,那么WASM的出现是不是多此一举呢?
事实好像不是这样的,普通场景下js的性能已经足够,但是在一些特殊场景下,比如游戏、图形、音频、视频等,js的性能就显得捉襟见肘了。所以WASM的出现就是为了解决这些问题的。WASM并不是为了替代js而是对js的补充。
而且WASM非常便携,运行在:所有主要的Web浏览器、V8运行时(如 Node.js)和独立的wasm运行时(如Wasmtime、Lucet和Wasmer)。
WASM可以导出函数和常量,并且在js的上 ...
工具篇:第九篇 我的 VSCode 不可能这么可爱!
教程开始
原教程看这里 -> 我的 VSCode 不可能这么可爱!
新建文件
随便找个地方新建一个css文件,如:
C:/Users/Debin/.vscode/vsc.css
然后复制类似下面的内容
12345678910.editor-group-watermark>.letterpress { background-image: url( data:image/png;base64, /* 这里是base64编码的图片 */ ) !important; opacity: 0.95; overflow: visible; filter: none; transform: scale(1.5, 1.5);}
替换为你想要的图片的base64编码,就可以了。
我的css文件 -> vsc.css
设置
打开VSCode,安装插件Custom CSS and JS Loader
文件->首选项->设置->搜索Vscode_custom_css->点击在 ...
RUST:第三篇 Rust机器学习框架Candle初体验
最近看到一个非常有意思的项目Candle,使用Rust做机器学习开发。
前言
AI的成本来自哪里?数据、算法还是资源?现如今,AI的开发还处于上升期,这个时候,最需要的是数据的快速获取,以及算法快速落地,所以Python成为了机器学习的首选语言。但是随着AI应用的不断完善,占成本最高的是算力资源和电力资源,这个时候Python的劣势就暴露出来了,Python的解释性语言导致了性能的不足,以及资源的浪费。所以,一门性能更好,更加适合模型推理服务,更“省电”的语言——Rust将会是后AI时代的首选。
“下一个短缺的将是电力。” —— Elon Musk
Candle简介
Candle is a minimalist ML framework for Rust with a focus on performance (including GPU support) and ease of use.
Candle是一个专注于性能(包括GPU支持)和易用性的Rust的最小化ML框架,由Hugging Face公司开发。Candle 使我们能够使用一个类似 torch 的 API 在 Rust 中构 ...
RUST:第二篇 RUST在嵌入式中的编程(STM32)
究极懒狗,这个本来应该是一年前就要写的。
前言
说实话,并不看好rust在嵌入式领域的未来,嵌入式里面C/C++的地位是不可撼动的,但是rust的确是一个很有意思的语言,所以还是想尝试一下。rust的优势在于安全性,但是在嵌入式领域,安全性并不是最重要的,最重要的是性能和资源占用,所以rust在嵌入式领域的未来并不是很乐观。仅仅为了一点安全性的提升,带来的牺牲是巨大的。搞嵌入式的人真正想要的应该是go。
环境准备
写这篇文章的当前时间节点的最新的版本(版本仅供参考):
软件
VSCode 1.86.1
rustc/cargo 1.76.0
arm-none-eabi-gcc 13.2.1
openocd 0.12.0
硬件
STM32L431RCT6(板子是随便找的)
ST-LINK V2
VSCode插件
rust-analyzer:使用VSCode开发Rust必备
cortex-debug:调试、debug嵌入式程序
crates:提升编辑Cargo.toml的体验,辅助包管理
软件安装
VSCode
略
rustc/cargo
打开rust官网,下载Windows: ...
Linux:配置双网卡Linux路由表,实现两个网络之间的通信
前言
因为自己办的宽带不能连接实验室的服务器,而免费的联通宿舍网只能连三个设备,所以拿出了树莓派来做两个网络之间的沟通。使得使用自己的电脑可以直接连接服务器,而且自己的宽带是公网IP,可以直接在家远程访问。
简单绘制一下网络拓扑
如果没有树莓派连接,那么宿舍网络和服务器网络是完全隔离的。
服务器网络为10.26.58.0/25,
宿舍网络为10.125.0.0/16,中间由上级路由转发。
路由表基础知识
先存一下关于路由表操作的基础命令
查看路由表
123456789debin@raspberrypi:~ $ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth00.0.0.0 10.125.0.1 0.0.0.0 UG 600 ...
面试题
从各个网站上看到的面试题
嵌入式面试题
大华
UART串口通信的波特率,常用波特率有哪些,串口通信校验方式是什么,有校验和无校验的区别
4800/9600/115200/460800
校验方式:和校验、奇偶校验、无校验
iic收发数据的流程
起始信号(信号跳变)->发送设备地址(7位地址+1位读写位)->ACK->收发数据->再次ACK->停止信号(信号跳变)
iic子系统的组成部分
我觉得iic子系统主要由三部分组成,首先是iic核心,负责各类信号的起始信号,应答信号,终止信号的产生,然后是iic驱动,负责实现iic从机读取和写入,然后是iic应用层,实现具体的应用。
SPI收发数据的流程
片选信号拉低->发送数据->接收数据->片选信号拉高
wifi协议的通讯过程
wifi协议在网络连接中主要工作在物理层和数据链路层,通过路由器发射出来的2.4G/5G信号的SSID,
发送建立连接的请求,接着通过加密算法进行通讯,通过多个数据包进行数据的传输,最后通过断开连接的请求断开连接。
感觉大华主要是以通讯协议为主
联想 ...