登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Think:如何成为嵌入式软件工程师
Think:如何成为嵌入式软件工程师
[ 复制链接 ]
巴沛若
2025-6-11 13:41:44
嵌入式软件工程师
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
工作内容
系统设计与开发
驱动程序开发与调试
系统集成与测试
维护与升级
基础层
电子基础
数字电路
逻辑门
真值表
AND
OR
NOT
XOR
时序电路
触发器(D Flip-Flop)
计数器
状态机设计
总线协议
地址总线
数据总线
控制总线
时序分析
模拟电路
ADC/DAC
逐次逼近型 vs Σ-Δ型
分辨率与采样率选择
电源管理
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语言
内存管理
free()
calloc()/malloc()
指针与内存
函数指针
数组指针
结构体指针
内存对齐
数组
匿名数组
指针数组
结构体数组
多维数组
位操作
寄存器位掩码(|=、&= ~)
位域(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
标准库开发
HAL/LL库开发
HAL 的抽象层 vs LL 的直接寄存器操作
ESP-IDF
基于 FreeRTOS 的 ESP32 开发框架,支持事件循环(Event Loop)
Arduino兼容库
快速原型开发
外设驱动开发
GPIO
输入(上拉/下拉电阻)
输出(推挽/开漏模式)
Timer
PWM 生成(占空比调节)
输入捕获(测量脉冲宽度)
通信接口
UART
波特率配置
DMA 传输(减少 CPU 占用)
SPI
主从模式
片选信号(CS)管理
I2C
ACK/NACK 处理
总线冲突检测
实时操作系统(RTOS)
任务管理
任务优先级
抢占式调度 vs 时间片轮转
任务间通信
队列(xQueueSend())
传递结构化数据
信号量(二进制/计数信号量)
同步资源访问
互斥锁(xSemaphoreTake())
防止优先级反转
FreeRtos
任务调度
队列
信号量
Zepher
多线程
低功耗支持
内存管理
静态分配
固定大小内存池
动态分配
堆管理(pvPortMalloc())与碎片优化
低功耗模式
睡眠模式
Idle 模式(唤醒源:定时器、外部中断)
停机模式
关闭外设时钟,保留 RAM 数据
通信协议
有线
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
开源调试工具
支持 SWD/JTAG 接口
仿真与测试
模拟 ARM 处理器
逻辑分析仪
Saleae 或 PulseView 抓取 SPI/I2C 波形
单元测试
CppUTest 框架验证驱动逻辑
QEMU
Proteus
协作与自动化
版本控制与协作
Git
分支管理
分支策略
冲突解决
子模块管理
Hooks 脚本
CI/CD
GitHub Actions 自动化编译固件(.hex 文件)
Jenkins 部署自动化硬件测试(如通过串口发送测试指令)
进阶层
低功耗设计
睡眠模式
Sleep/Stop模式
功耗分析工具
Energy Trace
硬件级优化
动态电压频率调节(DVFS)
动态电压频率调节(DVFS)
外围设备时钟门控(关闭未使用的外设时钟)
软件策略
中断驱动设计(替代轮询)
短时唤醒(如每 10 秒采集一次数据)
使用 __WFI()(等待中断)指令进入深度睡眠
嵌入式Linux
内核裁剪与驱动开发
交叉编译
Buildroot/Yocto
内核开发
设备树(Device Tree)配置外设(如 &i2c1 节点)
字符设备驱动框架(file_operations 结构体)
用户态开发
Socket 编程(TCP/UDP 服务器)
多线程(pthread 库)
安全与可靠性
加密算法
AES
AES-128/256 加解密
硬件加速模块使用
安全启动(Secure Boot):验证固件签名
SHA
看门狗
ECC内存
纠正单比特错误,检测双比特错误
独立看门狗
窗口看门狗
linux操作系统
基本使用
系统概述和特点
系统概述和特点
目录结构
基本命令和常用工具
基本网络管理
基本系统管理
基本的shell编程
Linux平台的C/C++开发流程
编辑
vim
Emacs
编译
编译套件
gcc
编译工具
gcc
makefile
cmake/aototools
调试
gdb
运行
Linux系统平台编程
系统控制
内存管理和使用
多任务编程
文件I/O编程
网络编程
图形化界面编程
应用层
应用层
行业场景
汽车电子
AUTOSRA
分层架构(应用层、RTE、BSW)
CAN
CAN 通信(PDU 路由、DBC 文件解析)
功能安全
ISO 26262 标准,ASIL 等级划分
物联网
MQTT
QoS 等级(0/1/2)
保留消息
使用 Mosquitto Broker 搭建私有服务器
OTA 升级
差分升级(减少传输数据量
安全签名验证
CoAP
工业控制
Modbus
RTU 模式(CRC 校验)
TCP 模式(从站地址映射)
使用 libmodbus 库实现主从机通信
PLC
梯形图编程
实时性保障
项目
智能家居
硬件
STM32 + ESP32(Wi-Fi 中继)
功能
采集温湿度(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++-QT
Py-C++
对话框/窗口
信号与槽
组件/控件/布局/事件
绘图
文件操作
定时器
多线程
网络通信
学习路径与资源
初级阶段
《C Primer Plus》《STM32CubeMX 实战指南》
中级阶段
《Mastering STM32》《FreeRTOS 实时内核实战》
高级阶段
《嵌入式Linux系统开发》《AUTOSAR 规范详解》
工具与社区
论坛
EEVBlog
Stack Overflow
CSDN
博客园
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Think
如何
成为
嵌入式
软件
相关帖子
如何安装claude code以及ccr code
WPF治具上位机软件模板分享
PHP转Go系列 | 如何将 PHP 项目快速迁移到 Go 上?
如何通过Python SDK在Collection中进行相似性检索
如何通过Python SDK在Collection中进行相似性检索
百度蜘蛛强引软件
Roslyn 技术解析:如何利用它做代码规范检查与运行时代码生成?
铜价冲击下,如何“锁住”母排利润?
同一设备多账号登录,如何避免消息推送“串门”?
OpenCSG × 派拉软件:打造企业级AI平台,安全高效加速AI应用落地
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
如何安装claude code以及ccr code
0
404
强怀梅
2025-10-13
业界
WPF治具上位机软件模板分享
1
195
晌集涟
2025-10-13
安全
PHP转Go系列 | 如何将 PHP 项目快速迁移到 Go 上?
0
888
嗦或
2025-10-13
业界
如何通过Python SDK在Collection中进行相似性检索
1
496
敖可
2025-10-15
业界
如何通过Python SDK在Collection中进行相似性检索
0
762
褐洌
2025-10-15
程序
百度蜘蛛强引软件
0
30
新程序
2025-10-15
业界
Roslyn 技术解析:如何利用它做代码规范检查与运行时代码生成?
0
1009
辖瑁地
2025-10-15
安全
铜价冲击下,如何“锁住”母排利润?
0
482
段干叶农
2025-10-16
业界
同一设备多账号登录,如何避免消息推送“串门”?
0
242
裸历
2025-10-17
安全
OpenCSG × 派拉软件:打造企业级AI平台,安全高效加速AI应用落地
0
199
第璋胁
2025-10-17
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
巴沛若
2025-6-11 13:41:44
关注
0
粉丝关注
25
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
dage888
999994
3934307807
992122
4
富账慕
9983
5
邹语彤
9982
6
刎唇
9993
7
匝抽
9986
8
聚怪闩
9960
9
孙淼淼
9977
10
烯八
9954
查看更多