• 最新文章
  • Linux系统
  • 嵌入式开发
  • 控制算法
  • 代码开发
  • 笔记
  • C语言进阶

C 语言内存管理(一):内存段与布局(.text/.data/.bss/堆/栈)

内存管理 — 内存段与布局 内存管理是嵌入式 C 语言开发的核心难点。本文聚焦于程序内存布局、内存段的逻辑与物理映射、以及嵌入式内存优化实践。 1 程序内存布局 1.1 内存段的基本概念 C 程序运行时,内存被划分为不同的区域,每个区域存储特定类型的数据: 代码段(.text):存放程序的机器指令,只读 只读数据段(.rodata):存放常量和字符串字面量,只读 已初始化数据段(.data):存放
C 语言内存管理(一):内存段与布局(.text/.data/.bss/堆/栈)

FreeRTOS阅读源码之编程风格

FreeRTOS 阅读源码之编程风格 一、编程风格 FreeRTOS 严格遵循匈牙利命名法——看到名字就能推断出返回值类型、所属模块和参数类型。 变量看前缀,类型一目了然 → u/c/s/l/x/p 函数三段式,返回+模块+动作 → vTaskDelay / xQueueSend 宏看开头词,就知在哪定义 → config/pd/port/task 💬 匈牙利命名法已不是现代必用规范(IDE 弱化
FreeRTOS阅读源码之编程风格

SolidWorks 装配体:如何让零件和装配体基准面快速重合

目标 让零件的前视/上视/右视基准面(或原点坐标系)与装配体的对应基准面/原点完全重合——位置 + 方向全部对齐。 ℹ️ 核心思路:选中两个原点 → 添加重合配合 → 勾选\"对齐轴\",一步到位。 操作步骤 1. 确保零件为浮动状态 右键零件 → 选择浮动(不能是"固定",否则无法添加配合)。 2. 依次选中两个原点 先点击装配体的原点(设计树最上方的原点,或图形区红/绿/蓝箭头
SolidWorks 装配体:如何让零件和装配体基准面快速重合

嵌入式通信基础概念

嵌入式通信基础概念 在深入各种总线之前,先把几个容易混淆的基础概念彻底搞清楚。这些是理解所有通信协议的"元知识"。 1. 同步 vs 异步:到底谁在"喊节拍"? ℹ️ 一句话区别:有没有一根专门的时钟线来统一收发双方的节奏。 对比项 同步通信 异步通信 时钟线 有(如 I2C 的 SCL、SPI 的 SCLK) 没有 同步方式 主机通过时钟线"喊节
嵌入式通信基础概念

PID 控制算法: 位置式与增量式对比 第二篇(进阶)

PID 进阶实战:位置式与增量式完全对比 在上一篇《PID 控制算法 第一篇(基础篇)》中,介绍了 PID 控制的基础概念、三个参数的物理意义以及基本的调参方法。如果你还没有阅读过第一篇,建议先回顾基础知识再来阅读本文。 本篇作为 PID 系列的第二篇,将深入探讨 PID 控制器在工程实践中最核心的两种离散化实现方式——位置式 PID 和增量式 PID。我们会从数学推导、代码实现、优缺点对比、工程
PID 控制算法: 位置式与增量式对比 第二篇(进阶)

第四篇FreeRTOS同步机制-信号量、互斥量与优先级反转

第四篇 FreeRTOS 同步机制:信号量、互斥量与优先级反转 掌握信号量与互斥量的原理和使用场景,深入理解优先级反转问题。这是 RTOS 面试中出现频率最高的知识点之一。本文从"为什么需要同步"讲起,带你彻底搞清楚二值信号量、计数信号量、互斥量的区别和实战用法。 一、为什么需要同步机制? 1.1 多任务并发问题 任务A: 读取温度 → → 写入全局变量 temp 任
第四篇FreeRTOS同步机制-信号量、互斥量与优先级反转

第二篇FreeRTOS任务管理-基础架构与生命周期

FreeRTOS 基础架构与任务管理 理解 RTOS 存在的意义,掌握 FreeRTOS 任务的完整生命周期,能独立创建多任务程序。本文从裸机与 RTOS 的对比入手,带你一步步搞懂 FreeRTOS 任务的创建、状态机、调度规则和常用 API。 一、FreeRTOS 是什么?为什么需要它? 1.1 裸机 vs RTOS 对比 对比项 裸机(前后台系统) FreeRTOS 架构 while(1)
第二篇FreeRTOS任务管理-基础架构与生命周期

嵌入式通信协议UART、I2C 、SPI、CAN、Modbus总线协议区别

嵌入式常用总线特点与区别 前置知识: 先搞懂同步/异步、串行/并行、全双工/半双工、差分/单端信号等基础概念,后面的协议就能秒懂《 👉 通信基础概念》 一览表(速查) 特性 UART I2C SPI CAN Modbus 全称 Universal Asynchronous Receiver/Transmitter Inter-Integrated Circuit Serial Peripheral
嵌入式通信协议UART、I2C 、SPI、CAN、Modbus总线协议区别

详解GCC编译器常用命令

GCC 从入门到实战:编译四阶段 + 常用命令速查 GCC(GNU Compiler Collection)是 Linux 下最常用的 C/C++ 编译器,也是嵌入式开发中不可或缺的工具。 基本格式:gcc 源文件 -o 输出文件 💡 嵌入式中的交叉编译 交叉编译器的用法和 gcc 完全一致,只是前缀不同: arm-linux-gnueabihf-gcc — ARM Linux aarc
详解GCC编译器常用命令

第三篇FreeRTOS 通信机制 — 队列、事件组与任务通知

FreeRTOS 通信机制 — 队列、事件组与任务通知 FreeRTOS 提供了三大核心通信机制:队列、事件组、任务通知。掌握它们的原理、API 和适用场景,是写好多任务程序的关键。本文带你逐一攻破。 一、队列(Queue) 1.1 什么是队列 FreeRTOS 队列(又称消息队列)是一种线程安全的 FIFO 缓冲区,专门用于在任务与任务、任务与中断之间传递数据。你可以把它想象成一个带锁的管道——
第三篇FreeRTOS 通信机制 — 队列、事件组与任务通知