logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

os操作系统——第2讲:任务的三六九等

但那个代码里,每个任务只是一个裸函数,调度器只知道“下一个是谁”。如果系统里有 10 个任务,有的需要紧急响应,有的只是后台统计,有的正在等待数据……为了让第一专栏节奏适中,本讲我们先实现“就绪”、“运行”、“阻塞(延时)”三个状态。真实操作系统(如 FreeRTOS)还会有“就绪态挂起”、“阻塞态挂起”等细分,但核心就是这四大状态。可以用一个按唤醒时间排列的有序链表,或者用一个简单的“延时滴答计

os操作系统——第1讲:一切从心跳开始

我们将告别“两个func全局变量”的野路子,正式引入数据结构来管理任务,并实现就绪、运行、阻塞、挂起等状态。这就像餐厅里一个服务员同时服务十张桌子——当一桌客人点完菜在等上菜时,服务员不会傻站在那里等,而是去招呼其他桌的客人。先抛开复杂的操作系统概念,我们手写一个最简单的例子(以ARM Cortex-M为例,用汇编+C混合,更贴近底层)。所有任务轮流执行,如果任务A需要紧急响应(比如刹车信号),它

#车载系统
ISO26262功能安全——安全案例与ASIL分解

从第1篇的失控刹车故事,到第10篇的安全案例与ASIL分解,我们走完了汽车电子功能安全的完整旅程。功能安全不是一系列酷炫的技术堆砌,而是一套严谨的、有时甚至令人厌倦的工程纪律。它不创造新功能,不提升性能,不改善续航——它只是确保,当一切正常时你享受科技的红利;当一切异常时,你不会为此付出生命代价。回看整个专栏,我们讲过V模型的左侧(HARA、系统架构、硬件FMEDA、软件设计),也讲过右侧(故障注

#安全
ISO26262功能安全——指向“Fail-Operational”

不再是简单的“防止电子系统乱动作”,而是要确保系统在任何单一故障下,仍有足够的能力把自己和乘客带到安全地带。这就像飞机设计中的“双发失效后还能滑翔”一样,是一种极致的安全冗余哲学。当然,Fail‑Operational不是万能钥匙。它需要从传感器、计算、执行器到供电、通信的全链路冗余,成本高昂。但对自动驾驶来说,当人类不再手握方向盘时,这是唯一的出路。下一篇预告:我们已经走过了从系统架构到硬件、软

#安全
ISO26262功能安全——指向“Fail-Operational”

不再是简单的“防止电子系统乱动作”,而是要确保系统在任何单一故障下,仍有足够的能力把自己和乘客带到安全地带。这就像飞机设计中的“双发失效后还能滑翔”一样,是一种极致的安全冗余哲学。当然,Fail‑Operational不是万能钥匙。它需要从传感器、计算、执行器到供电、通信的全链路冗余,成本高昂。但对自动驾驶来说,当人类不再手握方向盘时,这是唯一的出路。下一篇预告:我们已经走过了从系统架构到硬件、软

#安全
Mcu架构以及原理——6.中断与事件

中断向量表是中断服务的入口索引,复位后由硬件读取。NVIC是中断的核心控制器,支持优先级分组、嵌套、尾链优化。抢占优先级和子优先级共同决定中断的响应顺序和嵌套能力。尾链技术大幅降低了高频中断的响应开销。系统异常涵盖了从复位到各类故障,HardFault是调试中最常见的挑战。HardFault调试通过分析栈帧中的PC、LR等寄存器,可以精准定位错误代码。掌握中断,就掌握了实时系统设计的主动权。无论是

#单片机#架构#嵌入式硬件
Mcu架构以及原理——7.寄存器编程与抽象

外设寄存器是软件控制硬件的直接接口,通过结构体封装和标准库抽象,提高了开发效率和可读性。位带操作提供了原子性的位访问,避免了“读-改-写”的竞态问题。DMA是高性能系统的关键,让CPU从繁琐的数据搬运中解放出来,专注于算法和控制。低功耗模式的合理使用,可以让电池供电设备运行数月甚至数年。硬件抽象层的构建,是工程化开发的基础,提升了代码的可移植性和可维护性。从第一讲的宏观架构,到这一讲的软硬结合,我

#单片机#架构#stm32
Mcu架构以及原理——4.时钟系统

时钟源有内部RC和外部晶振,各有优劣。外部晶振精度高但成本高,内部RC启动快但精度低。时钟树通过选择、倍频、分频,从单一的时钟源生成多路不同频率的时钟,供给CPU、总线、外设。外设时钟门控是实现低功耗的关键,按需开关,避免无谓的能量浪费。时钟安全系统为关键应用提供了容错能力,防止晶振失效导致系统崩溃。低功耗模式通过不同程度地关闭时钟和电源,将功耗从毫安级降至纳安级。时钟配置需要综合考虑晶振频率、P

#单片机#架构#嵌入式硬件
Mcu架构以及原理——5.内核寄存器详解

寄存器是CPU内部最高速的存储单元,位于处理器核心内部,与ALU(算术逻辑单元)直接相连。访问寄存器只需要一个时钟周期,而访问SRAM通常需要多个周期,访问Flash则更慢。Cortex-M内核拥有16个通用寄存器(R0-R15)和若干个特殊功能寄存器。它们共享一个32位宽度(在Cortex-M中),且大部分操作都围绕这些寄存器展开。注意:Cortex-M0/M0+只支持部分特殊功能寄存器,且有些

#单片机#架构#嵌入式硬件
Mcu架构以及原理——3.存储器架构

内存映射让Flash、RAM、外设寄存器共享同一个地址空间,CPU用统一的指令访问所有资源。Flash是程序的永久家园,存储代码和只读数据。零等待区域的存在意味着代码布局会影响性能,关键代码应放在高速区。SRAM是程序的工作台,全局变量、堆、栈都在这里运行。堆的使用需谨慎,栈溢出是嵌入式开发的大敌。启动过程是Flash和SRAM协同工作的典范:CPU从Flash读取向量表,初始化栈指针,将.dat

#单片机#架构#嵌入式硬件
    共 22 条
  • 1
  • 2
  • 3
  • 请选择