C语言关键字—static/extern/volatile/const 笔记(上) C语言进阶 — 关键字详解(上) C 语言共有 32 个关键字(C89)/ 44 个(C11)。本篇聚焦嵌入式开发中与存储、链接、优化直接相关的四个核心关键字:static、extern、volatile、const。 下篇:C语言关键字(下)—— typedef、sizeof、register、inline、enum、struct、union。 1 static 关键字 💡 核心思想 stati C语言进阶 林峰 6小时前 18 热度 0评论
C语言字符串:字符指针char * 与 字符数组char[]区别 字符串与字符数组 — char *、char、strlen、sizeof C 没有字符串类型。"字符串"就是以 \\0 结尾的 char 数组。 本文从内存布局讲清 char * 和 char 的区别,以及 sizeof 和 strlen 到底在算什么。 1 字符串的本质 // "hello" 实际占 6 字节: // 'h' C语言进阶 林峰 9小时前 27 热度 0评论
宏定义与宏函数 C语言进阶 — 宏定义与宏函数 宏是 C 预处理器最强大也最容易"翻车"的特性。本文聚焦于对象宏与函数式宏的用法、函数式宏的三大经典陷阱、以及嵌入式开发中最实用的宏技巧。 1 预处理器本质:文本替换引擎 1.1 编译四阶段中的预处理 源文件 (.c) │ ▼ ① 预处理 (gcc -E) 展开后的源文件 (.i) ← 宏替换、#include 展开、条件编译 │ ▼ ② 编译 C语言进阶 林峰 12小时前 21 热度 0评论
C 语言内存管理(一):内存段与布局(.text/.data/.bss/堆/栈) 内存管理 — 内存段与布局 内存管理是嵌入式 C 语言开发的核心难点。本文聚焦于程序内存布局、内存段的逻辑与物理映射、以及嵌入式内存优化实践。 1 程序内存布局 1.1 内存段的基本概念 C 程序运行时,内存被划分为不同的区域,每个区域存储特定类型的数据: 代码段(.text):存放程序的机器指令,只读 只读数据段(.rodata):存放常量和字符串字面量,只读 已初始化数据段(.data):存放 C语言进阶 林峰 2天前 93 热度 0评论
FreeRTOS阅读源码之编程风格 FreeRTOS 阅读源码之编程风格 一、编程风格 FreeRTOS 严格遵循匈牙利命名法——看到名字就能推断出返回值类型、所属模块和参数类型。 变量看前缀,类型一目了然 → u/c/s/l/x/p 函数三段式,返回+模块+动作 → vTaskDelay / xQueueSend 宏看开头词,就知在哪定义 → config/pd/port/task 💬 匈牙利命名法已不是现代必用规范(IDE 弱化 嵌入式开发 林峰 2天前 45 热度 0评论
SolidWorks 装配体:如何让零件和装配体基准面快速重合 目标 让零件的前视/上视/右视基准面(或原点坐标系)与装配体的对应基准面/原点完全重合——位置 + 方向全部对齐。 ℹ️ 核心思路:选中两个原点 → 添加重合配合 → 勾选\"对齐轴\",一步到位。 操作步骤 1. 确保零件为浮动状态 右键零件 → 选择浮动(不能是"固定",否则无法添加配合)。 2. 依次选中两个原点 先点击装配体的原点(设计树最上方的原点,或图形区红/绿/蓝箭头 3D打印 林峰 4天前 43 热度 0评论
嵌入式通信基础概念 嵌入式通信基础概念 在深入各种总线之前,先把几个容易混淆的基础概念彻底搞清楚。这些是理解所有通信协议的"元知识"。 1. 同步 vs 异步:到底谁在"喊节拍"? ℹ️ 一句话区别:有没有一根专门的时钟线来统一收发双方的节奏。 对比项 同步通信 异步通信 时钟线 有(如 I2C 的 SCL、SPI 的 SCLK) 没有 同步方式 主机通过时钟线"喊节 嵌入式开发 林峰 5天前 101 热度 0评论
PID 控制算法: 位置式与增量式对比 第二篇(进阶) PID 进阶实战:位置式与增量式完全对比 在上一篇《PID 控制算法 第一篇(基础篇)》中,介绍了 PID 控制的基础概念、三个参数的物理意义以及基本的调参方法。如果你还没有阅读过第一篇,建议先回顾基础知识再来阅读本文。 本篇作为 PID 系列的第二篇,将深入探讨 PID 控制器在工程实践中最核心的两种离散化实现方式——位置式 PID 和增量式 PID。我们会从数学推导、代码实现、优缺点对比、工程 嵌入式开发 林峰 6天前 247 热度 0评论
第四篇FreeRTOS同步机制-信号量、互斥量与优先级反转 第四篇 FreeRTOS 同步机制:信号量、互斥量与优先级反转 掌握信号量与互斥量的原理和使用场景,深入理解优先级反转问题。这是 RTOS 面试中出现频率最高的知识点之一。本文从"为什么需要同步"讲起,带你彻底搞清楚二值信号量、计数信号量、互斥量的区别和实战用法。 一、为什么需要同步机制? 1.1 多任务并发问题 任务A: 读取温度 → → 写入全局变量 temp 任 未分类 林峰 6天前 115 热度 0评论
第二篇FreeRTOS任务管理-基础架构与生命周期 FreeRTOS 基础架构与任务管理 理解 RTOS 存在的意义,掌握 FreeRTOS 任务的完整生命周期,能独立创建多任务程序。本文从裸机与 RTOS 的对比入手,带你一步步搞懂 FreeRTOS 任务的创建、状态机、调度规则和常用 API。 一、FreeRTOS 是什么?为什么需要它? 1.1 裸机 vs RTOS 对比 对比项 裸机(前后台系统) FreeRTOS 架构 while(1) 嵌入式开发 林峰 7天前 241 热度 0评论