嵌入式软件架构设计浅谈(短文简述技术拓展)

1.前言

嵌入式软件架构设计的核心是在硬件资源受限(MCU/MPU 的 RAM、Flash、算力有限)的前提下,平衡实时性、可靠性、可维护性与硬件适配性,区别于通用软件架构(如 Web、桌面软件),嵌入式架构必须深度绑定硬件特性(外设、中断、时钟、功耗),同时满足工业级 / 消费级的功能、非功能需求(如实时响应、抗干扰、低功耗)。软件架构设计决定了系统的可靠性、可维护性和可扩展性。优秀的架构能在有限的硬件资源上构建出稳定高效的系统,而糟糕的架构则会导致项目延期、维护困难和性能瓶颈。

2.机制简述

一.前后台架构(含中断机制)

1.核心要点

前台:无限循环的主任务流,顺序执行低优先级常规任务(如传感器采集、数据显示、状态监测);

后台:由中断触发的高优先级任务(如按键、故障、串口数据),仅处理 “最短必要逻辑”(如置标志位、保存关键数据),复杂逻辑交回前台执行。

2.实现要点

中断服务程序(ISR)必须 “短小精悍”(执行时间≤1ms),禁止在 ISR 中做耗时操作(如 Flash 写入、浮点运算);

前台通过 “标志位” 与后台交互(如 ISR 置key_flag=1,前台轮询标志位后执行按键逻辑),避免 ISR 直接调用复杂函数。

二.时间片轮询架构

1.核心思想

将 CPU 时间划分为固定长度的 “时间片”,按顺序为每个任务分配时间片,实现多任务的轮流执行。该架构解决了前后台架构中前台任务顺序执行的阻塞问题,是嵌入式从裸机向 RTOS 过渡的关键架构,也是多任务操作系统的基础调度策略。

2.核心原理

定时器中断触发时间片:配置硬件定时器(如 SysTick、TIM)按固定周期(如 10ms)产生中断,每次中断代表一个时间片结束;

任务列表与时间片分配:定义任务数组,为每个任务分配相同 / 不同的时间片长度,记录任务的 “当前剩余时间片” 和 “运行状态”;

轮询执行任务:在主循环中遍历任务列表,若任务有剩余时间片且处于就绪状态,则执行该任务,直到时间片耗尽或任务主动放弃 CPU。

三.RTOS 多任务架构(时间片轮转 / 抢占式)

1.核心结构

基于实时操作系统(FreeRTOS、uC/OS-II、RT-Thread),将系统拆分为多个独立任务,由 RTOS 调度器按 “优先级 + 时间片” 分配 CPU 资源;

支持 “抢占式调度”(高优先级任务可打断低优先级任务)、“时间片轮转”(同优先级任务公平执行)。

2.实现要点

任务划分:按 “功能 + 优先级” 拆分(如紧急故障>串口通信>数据采集>显示),任务数控制在 8~16 个(过多增加调度开销);

通信机制:任务间通过队列(Queue)、信号量(Semaphore)、事件组(Event Group)通信,禁止全局变量裸奔;

中断与 RTOS 结合:ISR 中通过xSemaphoreGiveFromISR()/xQueueSendFromISR()唤醒任务,不直接处理业务逻辑。

嵌入式软件工程师面试完全指南

面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3200+订阅,非常适合在找工作面经薄弱的同学,3500+订阅还会涨价到39.9,提前订阅提前享受,持续更新中。

原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

打开牛客,又是一片哀嚎:笔试挂、面试挂、简历已读不回…今年秋招,简直是在玩一场椅子越来越少,人越来越多的抢座游戏。但说句大实话:找不到工作,真不全是咱们大学生的问题。现在是什么情况?企业也难。经济下行,业务收缩,很多公司今年的核心目标根本不是扩张,而是 降本增效。这个词听起来高大上,翻译成人话就是:把成本压到最低,让现有的人干更多的活。对一个企业来说,新招一个应届生,看似只付一份工资,但实际上要付出的成本远不止于此——五险一金、办公资源、培训管理…全都是钱。相比之下,让老员工加加班,付出的代价可能小得多。所以你会发现,很多公司宁愿让团队996付加班费,也不愿意多开一个hc。因为对他们来说,加班费是可变成本,而多一个员工是固定成本。在不确定的时代,企业会本能地砍掉所有固定的、长期的承诺。于是,一个诡异的局面就形成了:在职的累成狗,求职的闲到慌。 岗位总量在减少,而涌入市场的应届生却一年比一年多。这不是什么大学生眼高手低,这就是最朴素、最残酷的供需关系。所以,别再把焦虑的枪口对准自己了。面试被拒,不是你不够优秀,可能只是那个岗位有500个和你一样优秀的人在抢。这是一场经济周期下的生存挑战,而不是个人能力的终极审判。我们能做的,就是尽人事听天命。
秋招吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务