# 2025 嵌入式软件开发全景笔记 📘 ## 概述 欢迎来到本项目,你将收获一份系统、全面且贴近实战的嵌入式软件开发学习路线和知识点总结。 涵盖范围包括 C/C++、驱动开发、RTOS、嵌入式 Linux、网络通信与物联网、常用工具链等。 **目录** * C语言基础与进阶 * C语言基础 * [变量](./01-C语言基础与进阶/Readme.md#-变量variable) * [数据类型](./01-C语言基础与进阶/Readme.md#-数据类型data-types) * [关键字](./01-C语言基础与进阶/Readme.md#-关键字keywords) * [常量](./01-C语言基础与进阶/Readme.md#-常量constant) * [栈 和 堆(内存管理)](./01-C语言基础与进阶/Readme.md/#-栈和堆(内存管理)) * [指针 / 指针数组 / 二级指针](./01-C语言基础与进阶/Readme.md/#-指针/指针数组/二级指针) * [函数指针 / 函数指针数组](./01-C语言基础与进阶/Readme.md/#-函数指针/函数指针数组) * [表达式、语句、运算符](./01-C语言基础与进阶/Readme.md/#-表达式、语句、运算符) * [数组](./01-C语言基础与进阶/Readme.md#数组array) * [字符串](./01-C语言基础与进阶/Readme.md#字符串string) * [结构体](./01-C语言基础与进阶/Readme.md#结构体) * [共用体](./01-C语言基础与进阶/Readme.md#共用体) * [枚举](./01-C语言基础与进阶/Readme.md#枚举enumeration) * [位域](./01-C语言基础与进阶/Readme.md#位域bit-field) * [位操作](./01-C语言基础与进阶/Readme.md/#-位操作) * [关键语义 & 修饰符](./01-C语言基础与进阶/Readme.md/#-关键语义&修饰符) * [内存存储类型与生命周期](./01-C语言基础与进阶/Readme.md/#-内存存储类型与生命周期) * [编译与调试基础](01-C语言基础与进阶/Readme.md/#-编译与调试基础) * [冒泡排序](./01-C语言基础与进阶/Readme.md#冒泡排序bubble-sort) * [选择排序](./01-C语言基础与进阶/Readme.md#选择排序selection-sort) * [插入排序](./01-C语言基础与进阶/Readme.md#插入排序insertion-sort) * [快速排序](./01-C语言基础与进阶/Readme.md#快速排序quick-sort) * [归并排序](./01-C语言基础与进阶/Readme.md#归并排序merge-sort) * [堆排序](./01-C语言基础与进阶/Readme.md#堆排序heap-sort) * 嵌入式系统基础知识 * [嵌入式系统概览](./02-嵌入式系统基础知识/README.md#-嵌入式系统概览) * [定义与特点](./02-嵌入式系统基础知识/README.md#-嵌入式系统定义与特点) * [系统构成](./02-嵌入式系统基础知识/README.md#-系统构成mcu存储器传感器外设) * [主流 MCU 简介](./02-嵌入式系统基础知识/README.md#-主流-mcu-简介) * [架构与启动流程](./02-嵌入式系统基础知识/README.md#-架构与启动流程) * [Cortex-M 内核结构](./02-嵌入式系统基础知识/README.md#-cortex-m-内核结构) * [启动文件 Startup.s](./02-嵌入式系统基础知识/README.md#-启动文件-startups) * [启动流程简要](./02-嵌入式系统基础知识/README.md#-启动流程简要) * [编译器与链接器](./02-嵌入式系统基础知识/README.md#-编译器与链接器) * [常用嵌入式工具链](./02-嵌入式系统基础知识/README.md#-常用嵌入式工具链) * [链接脚本 (.ld) 示例](./02-嵌入式系统基础知识/README.md#-链接脚本-ld-示例) * [存储器布局图(STM32 示例)](./02-嵌入式系统基础知识/README.md#-存储器布局图stm32-示例) * [芯片数据手册阅读方法](./02-嵌入式系统基础知识/README.md#芯片数据手册阅读方法) * [典型结构(以 STM32 为例)](./02-嵌入式系统基础知识/README.md#典型结构以-stm32-为例) * [阅读技巧](./02-嵌入式系统基础知识/README.md#阅读技巧) * [向量表的定义与重定向](./02-嵌入式系统基础知识/README.md#向量表的定义与重定向) * [定义](/02-嵌入式系统基础知识/README.md#什么是向量表) * [重定向](./02-嵌入式系统基础知识/README.md#重定向方法常用于-bootloader-或自定义中断) * [ROM 启动 vs RAM 启动的差异](./02-嵌入式系统基础知识/README.md#rom-启动-vs-ram-启动的差异) * [ROM 启动](./02-嵌入式系统基础知识/README.md#rom-启动flash-启动) * [RAM 启动](./02-嵌入式系统基础知识/README.md#ram-启动) * [使用差异](./02-嵌入式系统基础知识/README.md#使用差异) * 驱动开发与外设编程 * [寄存器级开发](./03-驱动开发与外设编程/README.md#-寄存器级开发) * [地址映射与寄存器偏移](./03-驱动开发与外设编程/README.md#-地址映射与寄存器偏移) * [位操作技巧](./03-驱动开发与外设编程/README.md#-位操作技巧) * [通用外设驱动](./03-驱动开发与外设编程/README.md#-通用外设驱动) * [GPIO](./03-驱动开发与外设编程/README.md#-gpio通用输入输出) * [UART / USART](./03-驱动开发与外设编程/README.md#-uart-usart) * [SPI](./03-驱动开发与外设编程/README.md#-spi串行外设接口) * [I2C](./03-驱动开发与外设编程/README.md#-i2c集成电路间总线) * [ADC](./03-驱动开发与外设编程/README.md#-adc模拟-to-数字转换器) * [RTC 实时时钟](./03-驱动开发与外设编程/README.md#-rtc-实时时钟) * [复杂外设支持](./03-驱动开发与外设编程/README.md#-复杂外设支持) * [DMA 控制器](./03-驱动开发与外设编程/README.md#-dma-控制器) * [看门狗](./03-驱动开发与外设编程/README.md#-看门狗watchdog) * [CAN](./03-驱动开发与外设编程/README.md#-can控制器局域网) * [开发库 & 工具链](./03-驱动开发与外设编程/README.md#-开发库--工具链) * [STM32 HAL ](./03-驱动开发与外设编程/README.md#-stm32-hal硬件抽象层) * [STM32 LL ](./03-驱动开发与外设编程/README.md#-stm32-ll低层驱动) * [STM32CubeMX](./03-驱动开发与外设编程/README.md#-stm32cubemx) * [实战技巧](./03-驱动开发与外设编程/README.md#-实战技巧与常见问题) * RTOS * [RTOS 基础概念](./04-实时操作系统/README.md#-rtos-基础概念) * [任务管理](./04-实时操作系统/README.md#-任务管理) * [时间管理](./04-实时操作系统/README.md#-时间管理) * [线程间通信](./04-实时操作系统/README.md#-线程间通信) * [队列](./04-实时操作系统/README.md#队列queue) * [信号量](./04-实时操作系统/README.md#信号量semaphore) * [消息队列](./04-实时操作系统/README.md#消息队列Message-Queue) * [事件组](./04-实时操作系统/README.md#事件组Event-Group) * [资源管理](./04-实时操作系统/README.md#-资源管理) * [FreeRTOS 配置与移植](./04-实时操作系统/README.md#-FreeRTOS-配置与移植) * [实践应用场景](./04-实时操作系统/README.md#-实践应用场景) * 嵌入式 Linux 开发基础 * [系统概览](./05-EmbeddedLinux/README.md#-嵌入式-linux-系统概览) * [特点](./05-EmbeddedLinux/README.md#-嵌入式-linux-特点) * [组成](./05-EmbeddedLinux/README.md#-系统组成) * [启动流程详解](./05-EmbeddedLinux/README.md#-启动流程详解) * [设备树](./05-EmbeddedLinux/README.md#-设备树device-tree) * [常用 Linux 命令与开发工具](./05-EmbeddedLinux/README.md#常用-linux-命令与开发工具) * [文件与目录管理](./05-EmbeddedLinux/README.md#文件与目录管理) * [权限与用户管理](./05-EmbeddedLinux/README.md#权限与用户管理) * [进程管理](./05-EmbeddedLinux/README.md#进程管理) * [网络调试](./05-EmbeddedLinux/README.md#网络调试) * [设备与文件系统](./05-EmbeddedLinux/README.md#设备与文件系统) * [软件包管理](./05-EmbeddedLinux/README.md#软件包管理针对开发板所用-Linux) * [Shell 脚本与自动化](./05-EmbeddedLinux/README.md#Shell-脚本与自动化) * [交叉编译相关命令](./05-EmbeddedLinux/README.md#交叉编译相关命令Makefile-环境) * [Linux 驱动开发模型](./05-EmbeddedLinux/README.md#-linux-驱动开发模型) * [根文件系统构建](./05-EmbeddedLinux/README.md#-根文件系统构建) * [工具链与调试手段](./05-EmbeddedLinux/README.md#-工具链与调试手段) * [常见开发平台](./05-EmbeddedLinux/README.md#-常见开发平台) * 网络通信与物联网协议 * [串口通信与 Socket 通信](./06-NetworkIot/README.md#串口通信与Socket通信) * [串口通信](./06-NetworkIot/README.md#串口通信) * [Socket 网络通信](./06-NetworkIot/README.md#Socket网络通信) * [无线通信协议](./06-NetworkIot/README.md#无线通信协议) * [Wi-Fi](./06-NetworkIot/README.md#Wi-Fi) * [BLE(蓝牙低功耗)](./06-NetworkIot#ble/README.md#蓝牙低功耗) * [LoRa / ZigBee](.06-NetworkIot/README.md#lora--zigbee) * [物联网协议栈](./06-NetworkIot/README.md#物联网协议栈) * [MQTT](./06-NetworkIot/README.md#-mqtt) * [HTTP/HTTPS](./06-NetworkIot/README.md#http--https) * [CoAP/LwM2M](./06-NetworkIot/README.md#coap--lwm2m) * [TCP/IP 协议栈基础与嵌入式实现](./06-NetworkIot/README.md#tcpip-协议栈基础与嵌入式实现) * [TCP/IP 协议栈分层结构(四层模型)](./06-NetworkIot/README.md#tcpip-协议栈分层结构四层模型) * [TCP 与 UDP 区别](./06-NetworkIot/README.md#tcp-与-udp-区别) * [嵌入式 TCP/IP 协议栈组件](./06-NetworkIot/README.md#嵌入式-tcpip-协议栈组件) * [嵌入式 TCP/IP 通信流程](./06-NetworkIot/README.md#嵌入式-tcpip-通信流程以-lwip-为例) * [常用 API 示例](./06-NetworkIot/README.md#常用-api-示例lwip-bsd-socket) * [DHCP / DNS / ICMP 说明](./06-NetworkIot/README.md#dhcp--dns--icmp-说明) * [云平台接入 & OTA 实现](./06-NetworkIot/README.md#云平台接入--ota-实现) * [云平台对接](./06-NetworkIot/README.md#云平台对接) * [OTA 升级机制](./06-NetworkIot/README.md#OTA-升级机制)