qianrushi小白学习(1)
qianrushi小白学习1入门一.了解嵌入式定义和核心思想1.1通俗定义1.2核心思想1. 软硬件是“连体婴”必须一起考虑2. “抠门”到极致不浪费一滴电、一个字节3. 反应必须“准时”错过就是事故4. 有强大的“不死之身”能自我复活5. 它是连接真实世界的“感官”和“肌肉”二.学习路线2.1公共树根软硬通识基础2.1.1RTOS实时操作系统2.2Linux应用层与网络编程软件主干的“上肢”2.3Linux底层驱动开发软件主干的“根基”——核心壁垒2.4硬件认知的“边界”辅助视野2.5项目整合三.嵌入式分类第一层应用层上层—— 离硬件最远的“调包侠/业务员”第二层系统/驱动层中层—— ⭐第三层硬件层底层—— 纯电路的“画板匠” 三层之间的“食物链”关系入门暑期学习笔记7.19一.了解嵌入式定义和核心思想1.1通俗定义一个身体里藏着“专用大脑”的隐形管家简单说嵌入式系统就是给机器装的一个专用、微小的“大脑”。它不像你电脑里的CPU那么强大但只为一件特定任务而生。专用性微波炉的“大脑”一辈子只琢磨怎么把食物热好它不会突然想上网聊天。它的功能从出厂就固定了用户无法给它装个App让它去干别的。嵌入性这个“大脑”被完全塞进了机器身体里你甚至感觉不到它的存在。你按下微波炉的“开始”键根本不用去关心里面是谁在计时、谁在控制火力。极致约束这个“大脑”必须特别省电最好一节纽扣电池用几年、特别便宜成本可能就几毛钱、体积还得特别小。它必须在这些“条条框框”里把事情做好。举几个身边的例子你会立刻明白电饭煲有个小电脑它只懂“煮饭”、“保温”通过温度传感器判断什么时候跳闸。汽车安全气囊有一个永不休息的大脑它只做一件事在毫秒级内判断碰撞严重程度决定是否引爆。晚一毫秒都可能是生与死的差别。智能水表藏在地下的一个小电脑只负责计数、定时上报数据电池必须撑十年以上。1.2核心思想在镣铐下把一件事做到完美如果通用计算追求“跑分更高、功能更多”那嵌入式的核心思想就是——“戴着镣铐跳舞只为跳好一支固定的曲子”。它的所有智慧都用在权衡和取舍上。我们可以把这套思想拆解成5个更易懂的生存法则1. 软硬件是“连体婴”必须一起考虑设计时不能先想好硬件再去写软件或者反过来。为了降成本、省电经常要把软件要做的事“硬化”到电路里。通俗理解就像你想做一个能哼歌的门铃。你可以用个便宜芯片硬件写一段复杂程序软件让他模拟哼歌也可以多花几毛钱用个能直接存MP3的芯片软件只要按一下播放。选哪种得从一开始就盘算成本、电量、音质一起算。这就是软硬件协同。2. “抠门”到极致不浪费一滴电、一个字节嵌入式系统的资源内存、算力、电量少得可怜必须精打细算。绝不买大房子1KB就能存下的代码绝不因为方便而占用2KB内存。能站着就不躺着能用一个简单的8位整数算完就绝不用复杂的32位浮点数。见缝插针地偷懒没事干的时候大脑立刻深度休眠只留一双耳朵中断听着有人按键才醒来工作几毫秒然后继续睡觉。这就是低功耗的核心。3. 反应必须“准时”错过就是事故很多事不仅要“做对”还必须在精确的时间点完成这就是实时性。硬实时生死时速汽车的刹车系统你踩下踏板后控制器必须在0.1毫秒内计算并施加制动力。哪怕只是慢了结果就可能是追尾。这是“不到就会死”的底线。软实时可以偶尔迟到网络电视播放视频偶尔有1帧解码晚了屏幕花了一下你也能忍。但不能老迟到。4. 有强大的“不死之身”能自我复活嵌入式设备常在恶劣环境无人值守运行而且坏了很难修。所以它们必须极度抗造。有“看门狗”保镖这是嵌入式系统的标配。如果程序突然跑飞“死机”了这个独立的看门狗定时器等不到“主人”正常程序的定时喂食就会立刻强制把整个系统重启。就像你家的路由器死机后它会自动重启一样。有“蓄电池”兜底断电瞬间要在几毫秒内把重要数据存好把机械臂摆到安全位置。5. 它是连接真实世界的“感官”和“肌肉”纯电脑活在信息世界而嵌入式系统必须能感知物理世界并控制物理世界。感官传感器温度、压力、光线、声音、加速度……这些模拟量通过传感器变成电信号被嵌入式大脑感知。肌肉执行器大脑算出结果后会驱动电机转、让灯泡亮、让扬声器发声从而改变物理世界。完整闭环空调遥控器的“大脑”通过温度传感器感知室温感知对比你设定的温度计算然后决定是启动压缩机还是停止控制这是一个完整的感知-计算-控制循环。总结一下更易懂的说法就是嵌入式系统就是一个专干一件事、藏在设备里、非常省电、极其可靠、反应神速并且能感知和控制物理世界的“小电脑”。它的核心思想不是追求跑分多强而是像一个极度自律的匠人在用料成本、体力功耗、时间实时性都严格受限的条件下一心一意、分毫不差地打磨好自己唯一的作品。希望这个版本能帮你更好地理解。如果还有哪个部分感觉模糊随时告诉我。二.学习路线这些只是我的计划不知道是否准确核心战略摒弃“C→51→STM32→RTOS→Linux”的线性误区采用树形结构——先打牢公共树根再直插树干硬件仅作为辅助视野。2.1公共树根软硬通识基础C语言强化嵌入式专用重点攻克指针函数指针/数组指针、内存管理堆栈区别、内存泄漏、链表单向/双向、字节序大端/小端、位运算。MCU裸机认知非编码重点理解GPIO输入输出、中断触发逻辑、定时器原理、UART/I2C/SPI通信时序。注意会用STM32或51点个灯、读个按键即可绝不在此死磕库函数和RTOS。硬件认知第一层——看图能看懂最小系统原理图能找出电源轨、晶振、复位电路、下载接口能追踪外设在原理图上的引脚位置如I2C设备的SCL/SDA连到了CPU的哪两个脚。你的这份笔记非常准确甚至可以说是“教科书级别”的Linux驱动方向路线图。2.1到2.5的结构严丝合缝逻辑完全自洽可以直接作为你未来一年的行动纲领。既然你说了“尽可能多学一点RTOS也可以学”那我们就不砍掉RTOS而是把它**“优雅地嫁接”**进你的树形结构里。RTOS如FreeRTOS和Linux虽然都是“系统”但它们解决的是不同量级的问题。学RTOS对你最大的价值是用最小的成本把“任务调度、临界区保护、信号量同步”这些操作系统底层思维刻进骨子里。这会让你后面学Linux驱动里的“并发与竞态处理自旋锁/信号量”时理解速度快3倍。我帮你把笔记升级为“V2.0 豪华加强版”在不破坏主线的前提下把RTOS塞进“2.1公共树根”和“2.2 Linux应用层”之间作为一座**“完美的思维桥梁”**。请直接把下面这段内容作为你笔记中“2.1.5”插入2.1.1RTOS实时操作系统核心学习内容只抓主干修剪枝叶任务管理任务的创建、删除、挂起与恢复理解抢占式调度与时间片轮转搞懂“高优先级先执行”这个核心逻辑即可。同步与互斥重中之重与Linux驱动完全相通信号量Semaphore二值信号量用于中断同步、计数信号量用于资源管理。互斥量Mutex理解优先级翻转问题面试常考Linux里同样存在。队列Queue任务间收发数据相当于Linux里的消息队列。中断管理理解“在中断里尽量少做事把耗时任务放到底半部任务级”的思想这和你后面学Linux中断底半部Tasklet/工作队列的思想如出一辙。硬件平台直接用你学裸机时的STM32F103/F407开发板运行RTOS不需要额外买Linux板子跑RTOS。实操项目1个即可“基于FreeRTOS的多按键检测与串口打印”—— 创建一个按键扫描任务高优先级、一个串口打印任务低优先级、用队列传递按键键值。通过这个项目彻底搞懂任务切换时如何保护共享资源临界区。2.2Linux应用层与网络编程软件主干的“上肢”Linux系统编程文件IO标准接口、进程/线程管理fork/pthread、进程间通信管道、消息队列、共享内存。网络编程高薪护城河Socket套接字TCP/UDP、I/O多路复用Epoll为核心Select/Poll了解即可。配套工具链GCC编译选项、Makefile编写通用模板、交叉编译链安装与使用。阶段结业项目手写一个多线程TCP并发服务器如简易聊天室或文件传输工具跑通开发板与PC的局域网通信。2.3Linux底层驱动开发软件主干的“根基”——核心壁垒目标4~6个月对照韦东山视频芯片手册硬啃内核模块基础Linux内核模块的编写、编译与加载insmod/rmmod、printk调试打印。字符设备驱动重中之重掌握file_operations结构体填充、设备号申请register_chrdev_region、read/write/ioctl接口实现、内存映射mmap。并发与竞态处理自旋锁spinlock、信号量semaphore、互斥锁mutex——驱动里必须有。中断处理中断申请request_irq、中断底半部机制Tasklet / 工作队列Workqueue。设备树Device Tree当前主流会修改设备树dts文件匹配硬件引脚会在驱动中通过of_系列函数获取设备树节点属性。常用总线驱动框架I2C 子系统和SPI 子系统能挂载传感器/外设芯片即可不求手写复杂控制器驱动。2.4硬件认知的“边界”辅助视野认知第二层——查手册Datasheet会翻阅芯片数据手册找到外设对应的时钟使能寄存器、模式控制寄存器、状态寄存器对照驱动代码理解数值来历。认知第三层——用仪器万用表测GPIO引脚电平高低验证驱动是否成功拉高/拉低。逻辑分析仪抓取I2C/SPI/UART 波形确认主控是否正常发出开始/停止信号及数据调通讯驱动的救命稻草。硬性红线不碰模电/数电理论推导、不碰电源完整性/EMC设计2.5项目整合项目A驱动中断为开发板编写GPIO按键中断驱动程序配合设备树修改引脚实现按键消抖并在应用层编写测试程序捕获按键事件。项目B总线网络在Linux下驱动I2C温湿度传感器如AHT20通过逻辑分析仪验证时序并将采集到的温度数据通过Socket网络编程上报给上位机PC端显示。三.嵌入式分类第一层应用层上层—— 离硬件最远的“调包侠/业务员”岗位名称嵌入式Linux应用工程师、Qt界面开发工程师、网络协议工程师。核心工作内容写业务逻辑代码如智能网关的MQTT数据转发规则、车载中控的UI界面交互。调用系统接口如socket()发网络包、open()/read()读设备节点。坚决不碰寄存器、不碰内存物理地址、不管时钟树。技术栈重灾区C/C基础、Linux系统API文件/进程/线程、Socket网络编程、Qt图形界面框架或Web服务器移植如lighttpd/nginx。第二层系统/驱动层中层—— ⭐岗位名称嵌入式Linux驱动工程师、BSP板级支持包工程师、内核开发工程师。核心工作内容写驱动程序让Linux内核认识板子上的LED、按键、I2C温湿度传感器、SPI Flash。修改设备树DTS根据硬件原理图的改动调整引脚配置哪个GPIO是输入、哪个复用成I2C功能。移植内核与BootLoader把Uboot和Linux内核移植到新的核心板上。技术栈重灾区Linux内核模块编程、file_operations结构体、中断底半部Tasklet/Workqueue、并发控制自旋锁/信号量、Platform总线模型、I2C/SPI子系统驱动框架。硬件认知要求核心必须会看原理图找引脚、找总线上挂了哪些设备。必须会查数据手册找到外设的时钟使能寄存器地址和配置位。必须会用逻辑分析仪/万用表抓时序验证软件有没有正确发出波形。第三层硬件层底层—— 纯电路的“画板匠”岗位名称硬件工程师、PCB Layout工程师、射频工程师。核心工作内容画原理图和PCB板用Altium Designer/Cadence。选型电容电感、设计电源树DCDC/LDO。调试信号完整性与EMC电磁兼容认证。技术栈重灾区模电/数电理论、电源设计、阻抗匹配、高频信号处理。工具是烙铁、示波器测纹波、频谱仪。软件要求基本不写C代码最多写点VerilogFPGA或Python辅助计算。 三层之间的“食物链”关系在嵌入式Linux项目组里硬件层设计好电路板并提供原理图和芯片数据手册。系统/驱动层你拿到原理图对着手册写驱动把硬件功能封装成/dev/xxx设备节点向上层提供接口。应用层根本不管硬件怎么接它只调用你给的/dev/xxx接口去读温度、发网络包。结论驱动层是连接“物理世界”和“逻辑世界”的桥梁。没有驱动层硬件是废铁应用是空中楼阁。这就是驱动层的核心价值。

相关新闻

DDD:领域驱动设计的初步认识

DDD:领域驱动设计的初步认识

DDD:领域驱动设计的初步认识 DDD(领域驱动设计)一直是 Java 后端中讨论度很高的话题。有人觉得它是复杂系统的救星,也有人觉得它过度设计。在真正学习 DDD 的各种概念之前,更重要的问题其实是:DDD 到底解决…

2026/10/19 19:20:53 阅读更多 →
回测只用了今天的成分股:幸存者偏差会把结果推高多少

回测只用了今天的成分股:幸存者偏差会把结果推高多少

回测如果只使用今天仍在指数或股票池里的成分股,会漏掉历史上退出、退市或长期弱势的样本,结果常被抬高。牛股王股票这类面向普通投资者的量化辅助软件,适合先把股票池日期、因子条件和最长5年回测区间写清;聚宽可用带日期的成分数…

2026/10/18 3:06:39 阅读更多 →
国内量化软件导出的CSV能直接迁移吗:编码、时区和空值测试

国内量化软件导出的CSV能直接迁移吗:编码、时区和空值测试

国内量化软件导出的CSV不一定能直接迁移,常见问题是UTF-8 BOM、证券代码格式、时间字段和空值含义不同。牛股王股票这类普通投资者量化辅助软件,适合先把策略、回测与提醒记录整理成可读表格;QMT和PTrade进入券商侧环境后,还要继续…

2026/10/19 23:44:54 阅读更多 →

最新新闻

VINS-Fusion滑窗SFM:从位姿估计到Ceres优化全解析

VINS-Fusion滑窗SFM:从位姿估计到Ceres优化全解析

这篇继续往源码深处走。前面我们聊过前端特征追踪、IMU预积分、初始化框架,这次把目光单独锁定在“滑窗内的纯视觉SFM”上。之所以单独拎出来讲,是因为我之前很长一段时间都用现成配置跑VINS-Fusion,直到需要自采数据、频繁看到日志里初始化反…

2026/10/20 23:09:33 阅读更多 →
基于SpringBoot与Vue的无人值守停车系统实践

基于SpringBoot与Vue的无人值守停车系统实践

1. 从人工岗亭到无人车场:这个系统到底改了哪些环节过去半年我一直在迭代一套基于SpringBoot Vue的智能停车系统,最初的想法很朴素:让停车场不再依赖收费员在岗亭里跑进跑出,把入场、计费、抬杆、出场、支付这一整条链路交给程序…

2026/10/20 23:09:33 阅读更多 →
麦田物语:基于作物生命周期的状态机教学实践

麦田物语:基于作物生命周期的状态机教学实践

简介:本资源是一份基于Unity引擎开发的「麦田物语」主题课程设计项目,适用于高校数字媒体、游戏开发或交互设计方向的本科生毕业设计参考与实践学习,聚焦2D角色动画系统构建与场景资源组织。压缩包共2007个文件,体量109.8MB&#…

2026/10/20 23:09:33 阅读更多 →
Python变量作用域陷阱:为什么读取不报错但赋值就崩

Python变量作用域陷阱:为什么读取不报错但赋值就崩

1. 这个看似“常识”的规则,为什么90%的Python开发者都踩过坑?你有没有写过这样的代码?counter 0def increment():counter 1 # 报错:UnboundLocalError: local variable counter referenced before assignmentreturn counterin…

2026/10/20 23:09:33 阅读更多 →
AI应用架构师的落地策略:从定义正确问题到价值验证

AI应用架构师的落地策略:从定义正确问题到价值验证

开头这些年,我给不少企业做过AI落地方案,发现一个很有意思的现象:市面上谈“AI应用架构师”这个角色的,十有八九都在讲技术栈、讲模型微调、讲算法精度。但你真跑到一家想要数字化转型的企业里去,老板拍着桌子跟你说“…

2026/10/20 23:08:31 阅读更多 →
context-mode设计模式:用上下文快照与模式契约治理条件分支爆炸

context-mode设计模式:用上下文快照与模式契约治理条件分支爆炸

1. 从“上下文模式”这个命名说起:它到底在解决什么问题第一次看到“context-mode”这个词,很多人会下意识地把它当成某个框架里的配置项,或者某个编辑器插件的开关。但如果你真的在工程一线待过几年,就会发现这个词背后藏着一个非…

2026/10/20 23:08:31 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →