如何优化中断 ISR 开销?一文读懂中断本质与优化思路
在嵌入式开发中,中断几乎是所有RTOS的灵魂。它让CPU在关键事件发生时立刻中断当前任务,去处理更重要的事。但很多人没意识到——中断并不是免费的。不知道你有没有遇到过这样的问题:定时器中断刚配好,一秒几十次,结果主循环的逻辑突然变慢,调试打印也卡顿。问题很可能不在代码逻辑,而是ISR(中断服务函数)的开销太大。...
2025-10-12 12:30:00
一文读懂PWM:原理与应用
PWM,全称是脉宽调制。顾名思义,它的核心思想就是用数字信号来模拟出模拟信号的效果。虽然输出端看上去是一个高低电平的方波信号,但通过控制方波的占空比,我们就能得到一个可等效为某个电压或功率的“平均值”。简单来说,PWM 就是让单片机用逻辑电平去假装自己会输出模拟电压的一种手段。模拟与数字的碰撞先说说模拟信号...
2025-10-05 12:00:00
涨价通知
涨价通知感谢大家一直以来对立芯嵌入式的信任与支持。很多同学和我们一路学习、一路成长,这份陪伴和认可,是我们坚持打磨课程、持续更新内容的最大动力。为了保证课程的持续打磨与优化,我们在不断投入更多精力:开发更多 实战项目,帮助大家实现高质量就业;增加 更多答疑老师,并引入 机器人实时监督罚款(全网独家),...
2025-10-04 12:00:00
聊聊FreeRTOS的空闲任务和钩子魔法
说到FreeRTOS的核心功能,空闲任务和钩子函数绝对是绕不开的两个话题。今天我们就来聊聊这两位的门道。空闲任务嵌入式系统里,CPU总不能时时刻刻都在干活,总得有喘口气的时候吧?FreeRTOS的空闲任务(Idle Task)就是专门为CPU摸鱼设计的。当系统中没有更高优先级的任务需要运行时,调度器就会把控制权交给空闲任务。这家...
2025-10-02 12:30:00
一文讲清楚FreeRTOS内存管理,超级详细!!!
大家好,欢迎来到立芯嵌入式。内存管理在RTOS中是个硬核话题,内存管理的好坏直接影响系统的性能和稳定性。无论你是用小巧的8位单片机,还是功能强大的32位MCU,搞懂FreeRTOS的内存管理机制,对你使用freertos都非常有帮助。今天我们就来聊聊FreeRTOS的内存管理,深入讲讲五种不同的管理方案。内存管理核心概念:堆和栈在Fre...
2025-10-02 12:30:00
STM32 从上电到 main()函数之间到底发生了什么?
大家好,欢迎来到立芯嵌入式。今天我们来聊一个容易被忽略的话题——从 STM32 芯片上电到 main() 函数运行,到底发生了什么?这篇文章,我们从零开始,手把手带你搞懂 STM32 的裸机 C 启动过程,顺便点亮一块开发板上的 LED 小灯,体验一下从“裸奔”到“优雅运行”的快感。嵌入式开发的“潜规则”如果你玩过 STM32 开发,尤其是基...
2025-09-30 12:00:00
volatile 关键字到底该怎么用?
对于搞嵌入式的,volatile关键字就像个不起眼但关键的救火队员。不少人对它的理解仅停留在书本上那句轻描淡写的定义:告诉编译器变量的值可能随时变化。但实际开发中,volatile的正确使用能直接决定你的代码是稳定运行,还是优化后直接崩盘。遇到过这些问题吗?代码调试时没问题,一开优化就挂;中断一启用,程序就莫名其妙...
2025-09-28 12:15:00
搞定状态机通信:轮询、事件、阻塞与队列的实战心得
大家好,欢迎来到立芯嵌入式。今天终于来到状态机系列的最后一篇,我们来尝试解决一个问题:“状态机本身实现可能不是大问题,真正头疼的是状态机周边的代码,以及它们如何与外界互动。”很多坑,其实都埋在状态机之外——我们怎么把它塞进系统里?它怎么跟其他部分“聊天”?其实不光是状态机,你想想,任何一个处理单元,不管是...
2025-09-28 12:15:00
如何分配RTOS任务优先级?背后的黄金法则:RMA
基于RTOS开发时,经常会遇到一个棘手问题:有一堆周期性任务,大家都有自己的执行时间和截止期限,那到底该按照什么规则去分配优先级,才能既不浪费CPU,又能保证关键任务的实时性?这就引出了一个经典方法——速率单调调度,也就是大家常说的 RMA。为什么需要调度算法嵌入式系统,尤其是实时系统,讲究的是 时间就是生命。比...
2025-09-27 21:41:35
嵌入式老司机带你解锁 C 语言状态机的正确姿势
大家好,欢迎来到立芯嵌入式,今天继续聊聊嵌入式系统里的有限状态机(FSM)。上一篇文章我带大家用 C 语言实现了一个按钮开关灯的简单例子。这次,咱们要更进一步,把状态机的“引擎”和具体实现分开,搞出一个更通用、更实用的 C 语言状态机框架。为什么要升级?如果你的任务只是点亮一盏灯,上一期的代码可能已经够用了。...
2025-09-27 21:41:35
STM32 Flash数据掉电保护与可靠性设计
大家好,欢迎来到立芯嵌入式。掉电后还能保留的数据(写在 Flash、EEPROM 里的)是个老生常谈但又至关重要的话题。无论是意外断电还是软件Bug,都可能让精心保存的数据变成一堆乱码。比如丢失校准数据可能得把设备寄回厂家重调,想想就头疼。今天我们从软件层面分享一些经验。Flash数据的痛点Flash存储,比如EEPROM或者Flas...
2025-09-21 12:30:00
状态机:简单又牛逼的概念,你可能天天用却没感觉
大家好,欢迎来到立芯嵌入式,状态机(State Machine)这玩意儿,牛得让人拍案叫绝,简单得又像老朋友。它在嵌入式开发里到处都是,但说实话,我这些年见过的状态机代码,十有八九都写得一塌糊涂。今天这篇,我想从头捋一遍状态机的基本套路,带你一步步写个简单但靠谱的实现,每步都聊聊为啥这么干。希望你看完能找到自己...
2025-09-21 12:30:00
一文讲透串口(UART)通信,超级详细!!!
大家好,欢迎来到立芯嵌入式。不知道有没有朋友还记得以前台式机上那些厚重的串口打印机、鼠标和调制解调器吗?插头比手指还大,还得用螺丝拧上——没错,那时候大多是靠 串口UART 在背后默默传输数据。虽然现在 USB 几乎统治了所有外设接口,但串口并没有被淘汰,反而在嵌入式开发场景中活得越来越滋润了。你在 Arduino、STM...
2025-09-21 12:30:00
如何写出稳定的代码?MISRA-C这套规范了解一下
C语言就像一辆高性能跑车,动力强劲、灵活无比,但刹车系统却让人捏把汗。1998年,英国汽车工业软件可靠性协会(MISRA)针对C语言在安全关键系统中的应用,推出了一套127条开发指南,也就是大名鼎鼎的MISRA-C。这套指南就像是为C语言装上了一套更靠谱的刹车系统,专为汽车、医疗、航空等安全攸关的场景量身定制。今天,我们...
2025-09-20 23:19:47
RTOS如何设计系统任务优先级?
任务优先级是个常被提及却又容易被误解的概念。不少同学一听到优先级,就觉得高优先级任务就是更重要,或者以为调高优先级就能解决所有问题,比如任务抢占、调度混乱甚至死锁。然而,事实远没这么简单。今天我们就来聊聊任务优先级的本质,搞清楚优先级到底该怎么用。优先级不是谁更重要,而是响应确定性的保证在基于优先级...
2025-09-14 17:38:10
嵌入式工程师必修课:浅谈电磁兼容EMC(一)
大家好,欢迎来到立芯嵌入式。说到电磁兼容 EMC,很多人第一反应是认证、法规,或者测试实验室里那一堆神秘的黑色吸波墙。但其实,EMC问题远比你想象的要凶险,它不是单纯的指标,而是真真切切能要命的。举几个真实案例:一架客机在空中爆炸,230人遇难;医院的注射泵突然停了,却没报警;核电站的汽轮机控制阀无缘无故自己...
2025-09-13 12:30:00
为什么单核 MCU 也会有并发 Bug?一文读懂 CPU Cache:缓存一致性
大家好,欢迎来到立芯嵌入式。搞嵌入式的同学,对缓存这东西肯定不陌生。无论是 ARM Cortex-M 的指令 Cache,还是 Cortex-A 的多级数据 Cache,它们在系统性能里都扮演着举足轻重的角色。但要说真正理解 CPU Cache 的一致性机制,恐怕很多人都只是停留在一知半解的阶段。今天我们就来聊聊关于 Cache 的一些常见误区。为什么...
2025-09-07 18:29:01
我天!一块板子跑12路视频流,140ms延迟,这就是国产芯片的实力!
在智能视觉技术不断发展的今天,多路摄像数据的处理与传输已成为众多应用场景的核心需求。从智能安防监控领域的全面覆盖,到工业视觉处理网关的精准检测,再到车载环视融合平台的实时驾驶辅助以及智慧社区AI防控的快速响应,多路摄像数据的处理与传输已成为关键需求,而高效且低延时的解决方案则是实现这些应用的核心。目前...
2025-09-04 10:30:00
科技圈大地震!elexcon2025 AI+芯片狂欢,开发板白送,你敢来吗?
All for AI, All for GREEN作为电子与嵌入式技术年度大展,elexcon2025将汇聚全球超过400家优质技术提供商,发布有关GPU、AI存算与边缘计算、AI存储与新型存储、高性能MCU/MPU、数字电源等嵌入式技术;GaN、高速连接等高性能电子元件组件;chiplet、AI电源系统级封装、PLP与TGV等先进封测技术等。海量demo展示嵌入式技术、...
2025-08-13 12:30:00
告别内存碎片!嵌入式系统内存池完美解决方案
大家好,欢迎来到立芯嵌入式。最近在给一个工控项目做优化,又一次遇到了老生常谈的问题:动态内存分配。先说说动态内存分配这个东西。在PC端写代码的时候,new一个对象,delete掉,这事儿再正常不过了。内存不够?加内存条呗。但在嵌入式系统里,尤其是那些只有几十K RAM的MCU上,情况就完全不同了。动态内存分配确实有它...
2025-08-07 12:30:00
最近,嵌入式的招聘市场已经疯掉了。。。
说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”我先给出最直接的答案:一定要把现有...
2025-08-06 12:30:00
一文讲透RTC实时时钟,超级详细!!!
在嵌入式开发中,实时时钟(RTC)是个不可或缺的模块,尤其在需要精确计时或日历功能的场景下,比如智能电表、车载设备甚至航天器。今天咱们就来聊聊微控制器内置RTC的那些技术细节。RTC的核心任务RTC的本质是个专门用来数秒的定时器,核心任务就是以1秒为单位稳定计时。别看这功能听起来简单,实际要求可不低:高精度和不...
2025-07-22 12:17:00
一文讲透PWM,超级详细!!!
PWM,全称脉宽调制,听起来高大上,但其实就是通过控制信号高低电平的时间比例来实现模拟量输出。无论是搞个小风扇转速控制,还是弄个炫酷的RGB灯效,PWM都是绕不过去的坎儿。什么是PWM的占空比?先来说说PWM的核心概念:占空比。简单点讲,占空比就是在一个周期内,信号处于有效状态(通常是高电平)的时间占比,用百分比...
2025-07-21 12:19:00
多任务、多线程、多进程傻傻分不清?硬核一次讲透
作为嵌入式工程师,聊到多任务、多线程和多进程这些概念,估计大家脑子里已经冒出了各种中断、上下文切换和CPU调度的画面。这些术语听起来高大上,但本质上都是为了让我们的系统更高效地干活。接下来,我们将从嵌入式开发者的视角来详细辨明一下这三个概念。多任务先说多任务,简单点讲,就是一台电脑看起来能同时干好几件...
2025-07-17 12:00:00
嵌入式Linux快速入门系统教程(三):用 Buildroot 添加新功能
快速入门嵌入式Linux开发,咱们已经一起走过了前两集。这次,我们要更进一步,聊聊如何通过引入现成的开源软件,为固件增加高级功能,比如让你的设备摇身一变成一个无线接入点(AP)。这一节的目标,是带你掌握一套通用的工作流程,学会如何把新功能集成到你的系统里。新功能的开发流程给Linux固件添加新功能,听起来高大上...
2025-07-14 10:21:00
嵌入式Linux快速入门系统教程(二):用 Buildroot 构建 Linux 系统
嵌入式 Linux 开发中,从源码构建一个系统并让它在硬件上跑起来,是最让人兴奋的时刻。这篇文章将带你一步步完成这个过程,以树莓派为目标硬件,使用 Buildroot 工具链打造一个高度定制的 Linux 系统镜像。这不仅是一篇技术分享,更是一个实操教程,让你真正感受到嵌入式开发的乐趣。无论你是用实体树莓派还是虚拟机,都能...
2025-07-13 10:00:00
真心建议嵌入式工程师冲冲这个新兴领域,工资高前景好!
2025开年,AI技术打得火热,正在改变程序员的职业命运:阿里云核心业务全部接入Agent体系;字节跳动30%后端岗位要求大模型开发能力;腾讯、京东、百度开放招聘技术岗,80%与AI相关……大模型正在重构技术开发范式,传统CRUD开发模式正在被AI原生应用取代!最残忍的是,业务面临转型,领导要求用RAG优化知识库检索,你不会;带...
2025-07-09 09:50:00
嵌入式Linux快速入门系统教程(一):拆解核心概念
从路由器到智能音箱,再到工业控制器,Linux的灵活性和低成本处理器的普及让它们成为开发的天堂。更夸张的是,国内目前价格花不到100块就能买到一块能跑Linux的开发板,简直是白菜价这一系列文章的目标,是带你从零开始,逐步掌握嵌入式Linux的开发精髓。我们会从挑选硬件开始,一路讲到如何从源码编译系统镜像,再深入到定...
2025-07-08 10:00:00
嵌入式Linux|安卓驱动开发实战项目,助你强势成为Offer收割机!
一、前言这几年,火热的自动驾驶、智能硬件(手机、平板、手环)等催生了很多嵌入式Linux 驱动相关的工作岗位与机会,比如,汽车智能座舱中的的SoC周边的外设(屏幕LCD、触摸TP、车内外摄像头等)始终处于快速变换的节奏中,每次的外设更换,都需要由驱动工程师进行重新适配与性能优化。现在的汽车、智能硬件等市场已经进入...
2025-07-08 10:00:00
什么是内存泄漏?如何避免内存泄露?
C/C++中的内存泄漏像个隐形杀手,悄无声息地侵蚀系统资源,尤其在长时间运行的设备上,比如物联网终端或工业控制器,后果可能不堪设想。内存泄漏本质上是程序员忘了释放动态分配的内存,导致可用内存逐渐减少,最终可能让系统瘫痪。今天我们就来深入剖析一下C/C++中内存泄漏的成因,并结合实际开发场景提供一些解决方法。内...
2025-07-06 10:22:00