Files
EmbeddedSoftwareLearn1/README.md
T
2025-06-17 16:59:45 +08:00

186 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2025 嵌入式软件开发全景笔记 📘
## 概述
欢迎来到本项目,这里将更新一份系统、全面且贴近实战的2025年嵌入式软件开发学习路线和知识点总结。
涵盖范围包括 C语言、驱动开发、RTOS、嵌入式 Linux、网络通信与物联网、常用工具链等。
**目录**
* 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#栈-stack自动分配内存函数退出即释放)
* [堆](./01-C语言基础与进阶/Readme.md#堆-heap使用-malloc--free-手动分配和释放)
* [指针 / 指针数组 / 二级指针](./01-C语言基础与进阶/Readme.md/#-指针/指针数组/二级指针)
* [指针](./01-C语言基础与进阶/Readme.md#指针保存变量的地址)
* [指针数组](./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#排序算法)
* [冒泡排序](./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#-常见开发平台)
* [嵌入式系统安全基础](./05-EmbeddedLinux/README.md#-嵌入式系统安全基础)
* [安全启动(Secure Boot)](./05-EmbeddedLinux/README.md#-安全启动secure-boot)
* [固件加密与防逆向](./05-EmbeddedLinux/README.md#-固件加密与防逆向)
* [权限隔离与防护](./05-EmbeddedLinux/README.md#-权限隔离与防护)
* [Bootloader 开发建议](./05-EmbeddedLinux/README.md#-bootloader-开发建议)
* 网络通信与物联网协议
* [串口通信与 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)
* [安全通信实践](/06-NetworkIot/README.md#-安全通信实践)
* [安全测试](/06-NetworkIot/README.md#-安全测试)
* [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-升级机制)
* 调试与性能优化
* [常用调试工具](./07-Debug_Optimization#-常用调试工具)
* [JTAG / SWD 接口](/07-Debug_Optimization#-jtag--swd-接口)
* [GDB + OpenOCD 调试](./07-Debug_Optimization#-jtag--swd-接口)
* [逻辑分析仪 / 示波器](./07-Debug_Optimization#-jtag--swd-接口)
* [printf / 串口调试](./07-Debug_Optimization#-jtag--swd-接口)
* [断点调试](./07-Debug_Optimization#-jtag--swd-接口)
* [性能与功耗优化](./07-Debug_Optimization#-性能与功耗优化)
* [FreeRTOS Trace 与分析工具](./07-Debug_Optimization#-freertos-trace-与分析工具)
* [SystemView 分析工具](./07-Debug_Optimization#-systemview-分析工具)
* [STM32CubeMonitor](./07-Debug_Optimization#-stm32cubemonitor)
* [低功耗模式优化](./07-Debug_Optimization#-低功耗模式优化)
* [调试与优化实战案例](./07-Debug_Optimization#调试与优化实战案例)
* 项目实战与工具链
* [工程管理](./08-项目实战与工具链#-工程管理)
* [Git 版本控制](./08-项目实战与工具链#-git-版本控制)
* [Makefile、CMake 构建工具](./08-项目实战与工具链#-makefilecmake-构建工具)
* [Jenkins/GitHub Actions CI 流水线](./08-项目实战与工具链#-jenkinsgithub-actions-ci-流水线)
* [项目实践](/08-项目实战与工具链#-项目实践)
* [嵌入式应用框架设计](./08-项目实战与工具链#-嵌入式应用框架设计)
* [通用 BSP 构建](./08-项目实战与工具链#-通用-bsp-构建)
* [模块化驱动结构](./08-项目实战与工具链#-模块化驱动结构)
* [开发工具链](./08-项目实战与工具链#开发工具链安装指南)
* [VS Code + PlatformIO](./08-项目实战与工具链#vs-code--platformio)
* [STM32CubeIDE](./08-项目实战与工具链#stm32cubeide)
* [CLion](./08-项目实战与工具链#clion)
* [OpenOCD](./08-项目实战与工具链#openocd)
* [GDB](./08-项目实战与工具链#gdb)
* [ST-Link/V2](./08-项目实战与工具链#st-linkv2)
* [CppCheck](./08-项目实战与工具链#cppcheck)
* [Clang-Tidy](./08-项目实战与工具链#clang-tidy)
* [SonarQube](./08-项目实战与工具链#sonarqube)
* [Unity](./08-项目实战与工具链#unity)
* [CMock](./08-项目实战与工具链#cmock)
* [Google Test](./08-项目实战与工具链#google-test)
* 2025 嵌入式软件新趋势
* [AI on MCU / Edge AI](./09-2025_AI_on_MCU#-ai-on-mcu--edge-ai)
* [TinyML / TensorFlow Lite Micro](./09-2025_AI_on_MCU#-tinyml--tensorflow-lite-micro)
* [STM32 AI 开发套件](./09-2025_AI_on_MCU#-stm32-ai-开发套件)
* [模型量化与部署](./09-2025_AI_on_MCU#-模型量化与部署)
* [AI + 外设驱动融合案例](./09-2025_AI_on_MCU#-ai--外设驱动融合案例)
* [安全性](./09-2025_AI_on_MCU#-安全性)
* [TPM 安全芯片接入](./09-2025_AI_on_MCU#-tpm-安全芯片接入)