自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 问答 (2)
  • 收藏
  • 关注

原创 终章:从困惑到清晰——终端技术的系统化思考

在嵌入式开发和系统运维的日常工作中,终端(Terminal)看似简单,实则蕴含着Linux系统最核心的交互机制。从串口调试到SSH远程连接,从环境变量到Shell初始化,每一个"奇怪"的现象背后,都有其深刻的技术原理。在过去的五期博客中,我们从TTY基础出发,逐步深入到串口通道的双重角色、伪终端(PTY)的原理、Shell初始化机制,最终在实战案例中融会贯通。每一篇都致力于将看似零散的知识点,编织成一张清晰的知识网络。

2026-02-28 23:26:01 816

原创 Linux终端异常排查实战:从“发疯“到修复的系统化方法

终端属性被修改(如top等交互式命令意外指向串口)是串口"发疯"的最常见原因printk和printf走的是不同路径:前者直接写硬件,后者经过TTYstty sane是终端"发疯"的急救命令,盲打输入即可恢复高频日志会导致系统卡顿,有4个应急方案可快速恢复/dev/console的指向由内核参数决定,排查时需确认/dev/kmsg是向内核日志写入的正确方式,避免串口拥堵掌握这些知识后,当你再遇到终端异常时,将不再一头雾水——你知道该检查什么、问题出在哪里、以及如何修复。

2026-02-28 23:12:53 641

原创 第四期:环境变量凭空消失?——Shell 初始化机制与脚本执行的那些坑

本文深入剖析Linux Shell初始化机制,直击嵌入式开发中“环境变量凭空消失”的痛点。通过对比SSH与串口登录差异,揭示Login Shell中“减号”的关键作用,详解/etc/profile加载逻辑及rcS export失效的根本原因。文章涵盖Shebang陷阱、execve传参误区及Wrapper脚本优雅解法,并新增PS1提示符调试技巧。提供大量可复现的实验命令与排查思路,助开发者彻底掌握Shell环境配置,从容应对各类系统调试难题。

2026-02-28 00:59:05 691

原创 第三期:SSH 和 HDC Shell 的幕后功臣——伪终端(PTY)的工作原理

SSH 和 HDC Shell 之所以不会被内核日志干扰,核心在于它们使用了 伪终端(PTY),Linux 内核提供的虚拟终端对,由 Master 端和 Slave 端(供 Shell 使用,如 /dev/pts/X)组成,形成一条与串口(/dev/console)完全隔离的独立通道。HDC 通过 USB 转发数据到设备端的 hdcd,SSH 则通过网络连接到 sshd,两者均利用 PTY 实现交互。值得注意的是,SSH 的字符回显由远端 PTY 生成并经网络传回,因此网络中断时敲击键盘不会显示任何内容。

2026-02-16 00:02:33 670

原创 第二期:一根线,两个灵魂——串口通道的双重角色与数据争抢

救命!串口调试时 Shell 被内核日志冲飞了?🤯敲命令敲到一半,突然冒出一堆 [kernel] usb: new device...,光标直接失踪……别慌!不是你操作错了,是串口在“超载运行”!📌 其实:✅ 内核日志 + Shell 输出 共用同一个 TX 通道!✅ 日志太多 → TX 缓冲区满 → Shell 写不出去 → 整个卡住!✅ 背后默默给你开 Shell 的,是那个叫 getty 的“串口门卫”!一篇超硬核又超好懂的串口原理解析🔥

2026-02-13 15:30:03 597

原创 你每天用的终端,到底是个什么东西?——TTY 与文件描述符揭秘

A:“2>&1” 表示将标准错误(stderr,fd2)重定向到标准输出(stdout,fd1)所在的位置。"> /dev/null 2>&1"是一个比较常见的组合,表示将所有输出(包括正常输出和错误信息)都丢弃。:串口在嵌入式系统中同时充当"内核日志输出口"和"用户交互终端",这种"一个通道两个角色"的设计会带来什么问题?今天,我们将从最基础的TTY概念出发,彻底搞懂终端背后的工作原理,让你的终端使用从"黑盒"变"白盒":在Linux中,TTY不是硬件,而是一个软件抽象,代表用户与系统交互的通道。

2026-02-12 13:37:27 744 3

原创 当AI沉默时,你还能敲出那行命令吗?

朋友们,不知道你们有没有同感。自从有了ChatGPT、Copilot这些“赛博外挂”,我的编码效率那是坐着火箭往上蹿。以前要翻半天手册的sed命令,现在只要对AI说一句:“诶,帮我把文件里所有的foo换成bar,要原地替换。” 它秒回,还附赠三种不同写法,贴心程度堪比老母亲。我曾经也以为,把一切重复性劳动外包给AI,是程序员进化的终极形态。直到那天,我被一个路径问题干趴下了整整一个小时。事情是这样的:我写个脚本,里面有个路径变量。

2025-10-24 23:48:41 417

原创 控制第八章 非线性系统【自用/最新】

N(A)称为描述函数,是正弦输入信号作用下,非线性系统稳态输出中,一次谐波分量和输入信号的复数比。A对应的幅值,是输入(传向非线性环节的信号)xtx(t)xt的对应幅值因此,若要使用描述函数法,需要具备以下两个条件:①可化为非线性环节与线性环节的串联②非线性部分具有奇对称性为了让描述函数法更好的工作,_______还应该满足以下性质①低通滤波性②输入可以由一次谐波分量进行近似“小圆内的点离不开大圆”

2023-12-19 14:48:12 2051

原创 现控散落知识点梳理【自用/最新】

现控集大成之作

2023-12-19 14:47:34 1367

原创 自动控制第Z章 离散【自用/最新】

如图,矫正部分为GDzG_D(z)GD​zGDsΦzΦez⋅GzGD​sΦe​z⋅GzΦz​推导过程【很简单的!格式:常为首1【1±kz−11±kz−1第一步:得到z域的开环传函可能需要离散化用到的方法:留数法拆传函、零阶保持器Z变换、Z变换公式Gz1−z−1ZG0ssGz1−z−1ZsG0​s​第二步:检查开环传函传递函数中有没有单位圆上或者圆外的零极点。

2023-10-24 12:29:38 1094 5

原创 我的创作纪念日

事实上,我理想的创作状态是:自己能看懂即可。我力求自己在多年之后翻看自己的经验贴还能看懂,但是我知道距离完全做到这一步还有一定距离。写博客现在成了个人兴趣,CSDN在本科期间对我帮助很大,我写博客的初衷只是为了让自己日后能更快的拾起某项技能,不过如果能对读者提供帮助,自然是更好!祝各位前程似锦,祝我考研顺利。

2023-09-01 13:04:03 220

原创 SLAM十四讲学习笔记 第二期:部分课后实践代码

最近在看SLAM十四讲相关内容,顺便跑一跑快半年没有开过的虚拟机本期在Ubuntu20上跑一跑《视觉SLAM十四讲》中提到的代码

2023-08-26 19:05:03 1474 1

原创 【自用】自动控制第X章 校正系统a

整理的比较满意的自控理论校正系统

2023-07-26 22:13:51 564

原创 VMWare 16.0给Ubuntu虚拟机扩容

不知道为什么,在平台搜索“虚拟机扩容”时,出来的都是一些长篇大论;要在扩容之后,再在虚拟机系统的命令行大动一番干戈。╮(╯▽╰)╭。

2023-07-20 19:52:59 331

原创 临时增加虚拟机内存方法;make过程中“fatal error ... cc1plus“

make时遇到"fatal error ... terminated program cc1plus";因为内存不够

2023-07-19 21:57:11 638

原创 ORB_SLAM3下的euroc单目数据集png文件读取异常:can‘t open/read file

在运行ORB_SLAM3的Example时,我使用euroc数据集,跑example例程;这里输出的png格式显示就有问题,!!

2023-07-14 08:45:20 422 6

原创 Ubuntu20 安装 Pangolin【pybind11报错】【2023.07.12测试有效】【Slam十四讲】

slambook第五讲 Pangolin配置和pybind11报错

2023-07-12 20:46:03 2082 4

原创 SLAM十四讲学习笔记 第一期:Ubuntu复健计划

本期写旧未使用的虚拟机如何上手…

2023-07-05 20:24:47 805

原创 【自用】自动控制 第四章 根轨迹

K∗K∏j1m​s−pj​∏i1n​s−zi​​sK∗Q 代表帮助理解概念的问题K 代表梳理过程中零碎的知识点。

2023-06-15 20:33:23 1101

原创 【自用】自动控制原理第21-23课课堂笔记

所有的开环零点极点都在左边【负实轴?包括虚轴吗】传递函数开环参数常用指标ωc\omega_cωc​γ\gammaγ系统时域性质常用指标tst_sts​δ\delta\%δξ\xiξωn\omega_nωn​闭环性能常用指标MrM_rMr​ωb\omega_bωb​σ0.160.4Mr−1×100tsπωc21.5Mr−12.5Mr−12Mr≈1sin⁡γ35∘≤γ≤9。

2023-06-14 15:55:46 3190

原创 机器人学 备忘录

这里写自定义目录标题概念问题变量说明方向向量ω\mathbf{\omega}ω旋转矩阵R\mathbf{R}R变换矩阵T\mathbf{T}T【又写作小写ggg】旋量ξ\mathcal{\xi}ξ节距hhh空间速度矩阵Vabs\boldsymbol{V}_{a b}^{s}Vabs​旋转矩阵 变换矩阵矩阵的左乘,右乘的物理意义SO(n)和SE(n),so(n)和se(n)SOSE叉乘的算子"^"和"v"旋转矩阵(so中)旋量(se中)so(3)到SO(3)的变换(旋转矩阵R的计算)推导过程:结论se(3)到

2023-06-01 14:41:14 321

原创 数学规划第七章 动态规划问题【复习自用】

个人认为,动态规划的特点在于多阶段性,分步骤解决,上一阶段的问题解决后,上一阶段即为最优。按照步骤算,第i步找到所有i步能够到达的节点,算出他们的最短路径,作为该节点的价值。的方法,先求出最后一步的最优策略,并列出该步骤最优策略的函数表达式。以数量为x(万元)的资金分配给前k个工厂所得到的最大总利润值。出仅1、2、3、4个工厂时,怎么分配。从后往前推,从前往后推,都可以。需要的最小费用【每个阶段的每个。同阶段的节点之间,彼此无联系。种物品时的最大使用价值。个工厂的资金数(万元)同理,算出剩下的阶段。

2023-05-26 10:11:28 264

原创 【课堂笔记】运筹学第二章:对偶问题

单位第iii种资源在最优方案中做出贡献的估价做法:通过求导得到每一种资源带来的利润的提升是多少所有问题一定能找到对偶问题,但是其对偶问题不一定有意义.原问题对偶问题收益最大化代价最小化方程的个数,即种类的个数决策变量数价值系数对偶问题右端的项向量,即约束资源的约束价值系数与前面内容有所重复,即BCB,CBC互换,AAA转置上面讲的都是对称形式。

2023-04-02 15:56:08 11149

原创 运筹学第一章:线性规划 【复习自用】

min⁡SCXs. t.AXbX⩾0minSCXs. t.AXbX⩾0​​可用这一向量形式表示的问题定义见上方注意这里的等效。

2023-03-15 22:59:19 5264

原创 LQR的理解与运用 第二期——一阶倒立摆在matlab上的LQR实现

一阶倒立摆子在matlab上的物理模型仿真

2023-03-04 11:55:02 5850 3

原创 ROS仿真gazebo小车寻迹PID【第一期】

本篇的目标是借助官方给的智能车模型,和地图实现小车巡线的仿真

2023-02-21 21:17:11 8514 5

原创 【工具篇】拉格朗日动力学建模及系统设置初值求变量

拉格朗日动力学方程和简单(一维输入)系统设置初值求解变量值的Matlab代码实现

2023-02-17 01:04:40 7911 1

原创 【工具篇】 Solidworks导出xml模型到matlab及simscape一系列输入输出参数设置

这个插件跟提到的sw2urdf插件是平行关系;本插件的作用是【并最终在matlab simscape中使用】同时包括了设置模型质量的内容

2023-02-06 19:01:43 13036 28

原创 【工具篇】 Solidworks导出urdf模型 & Solidworks将stl文件转为obj文件 附过程中遇到的错误

解决了Solidworks中urdf的导出,urdf中continuous和revolute的区别,stl转obj等问题

2023-02-01 11:33:50 10210 3

原创 LQR的理解与运用 第一期——理解篇

解释什么是LQR,并梳理LQR求解过程。大家可以思考这么几个问题:1. LQR的适用场景是(使用条件)?2. LQR解决了哪些问题(什么是LQR)?3. LQR的变量是什么,输入是什么,输出是什么?4. LQR是怎么解决这些问题的?5. LQR中有没有为了优化问题设置的假设条件?

2023-01-27 10:45:47 28382 5

原创 欧拉角,四元数和旋转矩阵互转代码【python版】

代码包括了`欧拉角与四元数互转`,`旋转矩阵与四元数互转`,`欧拉角与旋转矩阵互转`,输入参数均为`np.array`形式代码内置了角度制和弧度制😃😃,当时因为这块吃了好多亏里面有验证函数

2023-01-11 20:50:46 3160 7

原创 nginx【第3.75期】实战结果展示

nginx+uwsgi+flask(域名+端口+路径) 部署结果展示

2022-12-16 02:36:19 395

原创 微信小程序+nginx+php+mysql实现数据库管理【第四期】

把项目从本地部署到云服务器上,同时记录了php添加扩展的方法

2022-07-06 18:06:39 1634

原创 【第3.5期】nginx+uwsgi+flask访问公网ip+端口+路径

本节主要内容是复盘下自己寒假期间摸索过的nginx的一些使用指南我会简单介绍一下nginx和云服务器上的操作,本片的目的是完成当时困扰我快一个月主要任务https协议的“https://域名:端口号”

2022-05-28 01:14:07 1850

原创 微信小程序+nginx+php+mysql实现数据库管理【第3.25期】nginx、uwsgi、flask、django的关系

在正式开始第四期之前,nginx、uwsgi、flask、django这些是什么东西,要弄清楚个大概。

2022-05-25 22:36:01 712

原创 Ubuntu与stm32串口通信及Windows与stm32串口通信

Windows的串口通信老师学了就忘学了就忘,给自己备忘用的

2022-05-03 20:06:29 2698

原创 STM32 Keil和STLinkv2无法连接的问题

正确连接keil和STLink

2022-05-01 20:44:18 8405 4

原创 微信小程序+nginx+php+mysql实现数据库管理【第三期】php代码公布

php代码公开...

2022-04-21 22:03:07 3091

原创 微信小程序+nginx+php+mysql实现数据库管理【第二期】小程序端的操作

讲一讲小程序端的操作先画个🍪预计目标:用户点击登录后,判断该用户【未提交数据/已经提交数据/有多条数据(这种情况应该是不被允许的!)】,在填充完数据后,点击“提交”按钮,完成数据库的增改。

2022-04-08 19:36:02 3855

原创 微信小程序+nginx+php+mysql实现数据库管理【第一期】数据库与php的正确连接

预计目标:用户点击登录后,判断该用户【未提交数据/已经提交数据/有多条数据(这种情况应该是不被允许的!)】,在填充完数据后,点击“提交”按钮,完成数据库的增改。若该用户在数据库中已有数据,则应自动将数据库中保存信息更新至小程序端

2022-04-08 14:39:38 4551

空空如也

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

TA关注的人

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