嵌入式软件工程师
Technology has the power to make the world a better place
唯有热爱可抵岁月漫长
- 压缩包下载(PDF、Xmind、Png):
https://files.cnblogs.com/files/blogs/839288/嵌入式软件工程师.zip?t=1739296486&download=true
工作内容
系统设计与开发
驱动程序开发与调试
系统集成与测试
维护与升级
基础层
电子基础
- 数字电路
- 逻辑门
- 时序电路
- 触发器(D Flip-Flop)
- 计数器
- 状态机设计
- 总线协议
- 模拟电路
- ADC/DAC
- 电源管理
- LDO
- DC-DC转换器(Buck/Boost)
- 低功耗设计
- 传感器接口
- 温度传感器(DS18B20)
- 加速度计(MPU6050)
- 常用元器件
- 贴片(0805、0603)
- 功率器件
- MOSFET 驱动电路
- 热设计(散热片与 PCB 布局)
- 计算机组成原理
- 数字逻辑与硬件基础
- 布尔代数与逻辑门(AND/OR/NOT/XOR)
- 组合电路(多路复用器、译码器)
- 时序电路(触发器、寄存器、计数器)
- 有限状态机(FSM)设计
- 数据表示与运算
- 二进制/十六进制表示(补码、浮点数)
- 算术逻辑单元(ALU)结构与运算流程
- 位操作优化(掩码、位移)
- 存储器系统
- 存储层次:寄存器→缓存→主存→外存
- 缓存工作原理(Cache Line、映射策略)
- 内存管理:地址空间、内存对齐
- CPU架构与指令集
- 指令集架构(RISC vs CISC)
- 指令周期:取指→译码→执行→写回
- 流水线技术(冒险与解决方法)
- 输入输出(I/O)系统
- I/O接口:轮询 vs 中断 vs DMA
- 中断处理流程(ISR、优先级、嵌套)
- DMA传输机制(减少CPU占用)
- 总线与通信协议
- 总线类型:系统总线(地址/数据/控制)
- 通信协议:SPI/I2C/UART/CAN
- 总线仲裁与冲突解决
编辑基础
- C语言
- 内存管理
- 指针与内存
- 数组
- 位操作
- 寄存器位掩码(|=、&= ~)
- 位域(struct { uint8_t flag : 1; })
- 枚举/结构体/联合体
- C++
- STL
- RTTL
- 面向对象
- 封装(类与访问控制)
- 继承(虚函数与多态)
- 抽象
- 类
- 多态
- 模板编程
- 泛型容器(std::vector)
- 模板元编程(编译期计算)
- 资源管理
- RAII(资源获取即初始化)
- 智能指针(std::unique_ptr)
- Python
- 脚本自动化
- 使用 pySerial 控制串口设备
- pandas 处理日志数据
- 硬件交互
- 树莓派 GPIO 控制(RPi.GPIO 库)
- 自动化测试框架(pytest)
- 数据处理
- 数据结构和算法
- 计算机网络
- TCP/IP协议和分层
- ARP协议
- IP协议/ICMP协议
- IP协议/ICMP协议
- NDS协议/HTTP协议/HTTPS协议
核心层
微控制器(MCU)
- 架构与选型
- ARM Cortex-M
- M0(低成本)
- M4(带 FPU,适合 DSP)
- M7(高性能)
- RISC-V
- 开源架构(如 GD32VF103)
- 工具链(riscv-gcc)
- AVR
- ESP32
- 双核 Wi-Fi/BLE 芯片
- FreeRTOS 集成
- 开发框架
- STM32
- ESP-IDF
- 基于 FreeRTOS 的 ESP32 开发框架,支持事件循环(Event Loop)
- Arduino兼容库
- 外设驱动开发
- GPIO
- Timer
- PWM 生成(占空比调节)
- 输入捕获(测量脉冲宽度)
- 通信接口
实时操作系统(RTOS)
- 任务管理
- 任务优先级
- 任务间通信
- 队列(xQueueSend())
- 信号量(二进制/计数信号量)
- 互斥锁(xSemaphoreTake())
- FreeRtos
- Zepher
- 内存管理
- 低功耗模式
通信协议
- 有线
- UART
- SPI
- I2C
- CAN总线
- 帧格式(标准帧 vs 扩展帧)
- 仲裁机制
- 应用场景:汽车 OBD-II 诊断、工业控制
- USB协议栈
- CDC(虚拟串口)
- HID(人机接口设备)
- 使用 libusb 开发主机端驱动
- 无线
- BLE(低功耗蓝牙)
- GATT 协议(服务与特征值)
- 广播包过滤
- 开发工具:nRF Connect(Nordic 芯片)
- Wi-Fi
- LoRa
- 扩频技术
- 传输距离与功耗平衡
- 网关设计(如 ChirpStack 服务器)
- ZigBee
工具层
开发工具链
- 编译器与调试器
- GCC 交叉编译链
- arm-none-eabi-gcc 编译 Cortex-M 代码
- Keil MDK
- 集成调试(ULINK 仿真器)
- 性能分析(Event Recorder)
- OpenOCD
- 仿真与测试
- 模拟 ARM 处理器
- 逻辑分析仪
- Saleae 或 PulseView 抓取 SPI/I2C 波形
- 单元测试
- QEMU
- Proteus
- 协作与自动化
版本控制与协作
- Git
- CI/CD
- GitHub Actions 自动化编译固件(.hex 文件)
- Jenkins 部署自动化硬件测试(如通过串口发送测试指令)
进阶层
低功耗设计
- 睡眠模式
- 功耗分析工具
- 硬件级优化
- 动态电压频率调节(DVFS)
- 外围设备时钟门控(关闭未使用的外设时钟)
- 软件策略
- 中断驱动设计(替代轮询)
- 短时唤醒(如每 10 秒采集一次数据)
- 使用 __WFI()(等待中断)指令进入深度睡眠
嵌入式Linux
- 内核裁剪与驱动开发
- 交叉编译
- 内核开发
- 设备树(Device Tree)配置外设(如 &i2c1 节点)
- 字符设备驱动框架(file_operations 结构体)
- 用户态开发
- Socket 编程(TCP/UDP 服务器)
- 多线程(pthread 库)
安全与可靠性
- 加密算法
- AES
- 安全启动(Secure Boot):验证固件签名
- SHA
- 看门狗
linux操作系统
- 基本使用
- 系统概述和特点
- 系统概述和特点
- 目录结构
- 基本命令和常用工具
- 基本网络管理
- 基本系统管理
- 基本的shell编程
- Linux平台的C/C++开发流程
- 编辑
- 编译
- 编译套件
- 编译工具
- gcc
- makefile
- cmake/aototools
- 调试
- 运行
- Linux系统平台编程
- 系统控制
- 内存管理和使用
- 多任务编程
- 文件I/O编程
- 网络编程
- 图形化界面编程
应用层
应用层
- 行业场景
- 汽车电子
- 物联网
- MQTT
- QoS 等级(0/1/2)
- 保留消息
- 使用 Mosquitto Broker 搭建私有服务器
- OTA 升级
- CoAP
- 工业控制
- Modbus
- RTU 模式(CRC 校验)
- TCP 模式(从站地址映射)
- 使用 libmodbus 库实现主从机通信
- PLC
- 项目
- 智能家居
- 硬件
- 功能
- 采集温湿度(DHT11)并通过 MQTT 上报云端
- 通过 BLE 控制智能灯泡(PWM 调光
- 技术点
- FreeRTOS 任务划分
- JSON 数据解析(cJSON 库)
- 无人机
- 飞控算法
- PID 控制(姿态稳定)
- 路径规划(A* 算法)
- 卡尔曼滤波(传感器融合)
- 硬件
- STM32F7 + MPU6050(陀螺仪)
- 无刷电机驱动
- 通信
- 2.4GHz 射频模块(NRF24L01)传输遥控指令
- 穿戴设备
- 低功耗
- 采集数据后立即进入睡眠模式
- BLE 广播间隔优化(1s → 2s)
- BLE通信
- 硬件
- nRF52832(BLE SoC)
- 心率传感器(MAX30102)
- 数据同步
- 通过 Nordic UART Service(NUS)上传至手机 App
嵌入式应用层开发
- 内存管理/使用
- 多任务编程
- 进程
- 进程概念和基础
- 进程控制
- 守护进程
- 进程间通信
- 管道通信
- 消息队列
- 信号
- 信号量
- 共享内存
- socket通信
- 线程
- 文件I/O编程
- 文件/文件描述符
- 文件指针/文件流
- 缓冲
- 流操作:开/闭/读/写/内容定位等
- 标准I/O流
- 标准I/O操作
- 非阻塞I/O
- 异步I/O
- 多路复用
- 网络编程
- TCP/IP协议族
- Socket通信和应用
- TCP编程
- UDP编程
- 图像化界面编程
- Qt开发基础
- 对话框/窗口
- 信号与槽
- 组件/控件/布局/事件
- 绘图
- 文件操作
- 定时器
- 多线程
- 网络通信
学习路径与资源
初级阶段
- 《C Primer Plus》《STM32CubeMX 实战指南》
中级阶段
- 《Mastering STM32》《FreeRTOS 实时内核实战》
高级阶段
- 《嵌入式Linux系统开发》《AUTOSAR 规范详解》
工具与社区
- 论坛
- EEVBlog
- Stack Overflow
- CSDN
- 博客园
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |