序言
【整篇文章后续慢慢完善...】
本人为非相关专业转行嵌入式的,写此文希望帮助到自学嵌入式的新手,方便新手们对嵌入式学习框架有一个基本了解,避免在茫茫知识点中迷失方向;也是对自己的经验总结的简单记录,如有不对之处希望广大网友批评指正。
简述下我自己低效的学习路线。先随便买了本C语言书,国庆节7天过了一遍;然后把华清远见的嵌入式linux网课过了一遍,此课涉及c语言、数据结构、linux系统编程、linux驱动编程;然后买了一块迅为电子linux开发板,三星的处理器,跟着视频过了一遍,此视频也涉及linux系统编程和驱动编程,还有QT等;后来还看了正点原子stm32视频资料以及阿尔法linux开发板视频资料;然后6个月就过去了。之后工作的前两年(一年stm32应用层开发、一年嵌入式linux应用层开发)其实学的很迷糊,知识体系不完善,没有系统的分析嵌入式如何学习,学什么,怎么学的问题。后来又工作两年,有点儿感悟,就借用CSDN记录分享一下。下面先写一点儿自己浅显的理解,后面的目录框架待后续慢慢完善。
(1) 嵌入式是什么?
嵌入式即嵌入式系统,也是微型计算机系统,包含硬件和软件。电路板上有主控芯片,有外设接口,能跑程序就是嵌入式系统。
(2) 嵌入式工作内容?
硬件方面:元器件和主控芯片选型;芯片外围电路原理图设计;PCB设计;出BOM表;投板贴片。
软件方面:写程序+调试。
(3) 嵌入式学习重点
如何设计嵌入式产品;嵌入式硬件如何设计;嵌入式软件如何设计;高效利用主控芯片资源、软件功能模块性能优化、降低成本等;项目为王,嵌入式经验都是靠项目堆起来的。
每做一个项目就对其进行复盘,做经验总结。软件方面既要有从底层驱动到上层应用的调试能力,又要有不依赖硬件从上层应用到底层驱动的设计能力。
(4)目前来看嵌入式高效的自学方法
前期:买开发板调试+免费视频课自学+高人指导;或参加嵌入式机构培训。
后期:逐渐补充硬件设计理论知识+项目实践;逐渐补充软件设计理论知识
+项目实践。
(5)闲言碎语
27岁非相关专业不建议转行嵌入式,市场不给就业机会;嵌入式是技术活儿,只要感兴趣肯花时间和精力专科都能学会,现在的招聘要求硕士起步只是市场行为。多积累嵌入式项目是提升嵌入式能力的关键。
.....
以下是嵌入式学习框架的正文,待慢慢完善。
第一篇 全局篇
第一章 嵌入式开发总体框架
1.1、嵌入式开发分类
(1)嵌入式硬件开发
(2)嵌入式软件开发
1.2、嵌入式开发流程
1.2.1 总体设计流程
(1)市场调研
(2)方案设计
(3)架构设计
(4)功能设计
(5)详细设计
(6)产品软硬件测试
(7)产品量产与维护
1.2.2 嵌入式硬件开发流程
(1) 产品立项
(2) 芯片选型
(3) 元器件特性和参数
(4) 封装元件
(5) PCB 封装设计
(6) 项目各电路原理图设计
供电系统、以太网、rs485、电机驱动等等
(7) 完整项目 PCB 设计
1.2.3 嵌入式软件开发流程
(1) 熟悉产品总体设计文档
(2) 熟悉原理图
(3) 移植软件代码框架
(4) 调试各功能接口的驱动
(5) 完善软件各模块的功能
(6) 软件测试
(7) 程序固件整理归档
第二篇 基础篇
2.1 嵌入式硬件基础
电子信息系统组成(图片来自清华 华成英 模电课件):
(1) 数字电路
1、数制与码制
十进制及转换,BCD码、格雷码
2、逻辑代数
定义、描述、规则、定律
3、逻辑函数及化简
代数法、卡洛图法
4、二极管开关
5、三极管开关
6、分离元器件们电路
7、TTL电路和参数
8、静态MOS门
9、数字电路图形符号
10、SSI组合电路的分析和设计
11、编码器、译码器
12、运算电路
比较器、加法器、减法器,数据选择器、分配器
13、奇偶发生/校验器
14、组合电路的竞争险象
15、基本触发器
R-SFF结构特点
16、锁存器及主从触发器
DFF,J-KFF结构特点
17、边沿触发器
18、SSI时序电路分析
19、MSI同步/异步计数器
20、MSI计数器的级联
同步、异步
21、寄存器及移存型计数器
74LS194,环形、扭环
22、序列信号发生器
最长线性序列
23、SSI同步时序电路的设计
序列信号检测器
24、LSI
RAM、ROM结构特点
25、ROM的扩展及应用
实现函数、阵列图
26、D/A转换
T型
27、A/D转换
并联型
28、定时电路
单稳、多谐及施密特电路
29、555器件
电路
30、数字系统
(2) 模拟电路
1、半导体二极管和三极管
半导体基础知识、二极管、三极管
2、基本放大电路
放大的概念与放大电路的性能指标
基本共射放大电路的工作原理
放大电路的分析方法
静态工作点的稳定
晶体管放大电路的三种接法
场效应管及其基本放大电路
基本放大电路的派生电路
3、多级放大电路
多级放大电路的耦合方式
多级放大电路的动态分析
差分放大电路
互补输出级
直接耦合多级放大电路读图
4、集成运算放大电路
概念
集成运放中的电流源
集成运放的电路分析及其性能指标
5、放大电路中的频率响应
频率响应的有关概念
晶体管的高频等效电路
放大电路的频率响应
6、放大电路中的反馈
反馈的概念及判断
负反馈放大电路的方框图及放大倍数的估算
交流负反馈对放大电路性能的影响
负反馈放大电路的稳定性
放大电路中反馈的其他问题
7、信号的运算与处理
集成运放组成的运算电路
模拟乘法器及其在运算电路中的应用
有源滤波电路
8、波形的发生和信号的转换
正弦波振荡电路
电压比较器
非正弦波发生电路
信号的转换
9、功率放大电路
概述
互补输出级的分析计算
10、直流电源
直流电源的组成
单相整流电路
滤波电路
稳压管稳压电路
串联型稳压电路
开关型稳压电路
2.1.1 硬件电路基础
组合逻辑电路
时序逻辑电路
总线电路及信号驱动
电平转换电路
2.1.2 嵌入式微处理器
8bit、16bit,32bit,DSP,多核处理器
2.1.3 嵌入式存储体系
高速缓存 cache
存储管理单元
存储设备分类
外部存储器种类
直接存储器
2.1.4 嵌入式输入输出设备
GPIO,ADC,DAC,键盘,显示接口,触摸屏,音频接口
2.1.5 嵌入式总线接口
串行接口
并行接口
PCI 接口
USB 接口
SPI 接口
IIC 接口
2.1.6 嵌入式网络接口
以太网接口
CAN 接口
无线以太网接口
蓝牙接口
1394 接口
嵌入式系统电源
2.1.7 电子电路设计基础
(1)电路设计
(2)电子设计
(3)电子电路测试
(4) 硬件设计软件
(5) 原理图设计
(6) PCB 设计
2.1.8 投板贴片
2.2 嵌入式软件基础
2.2.1 软件程序设计基础
(1) 嵌入式软件开发原理
(1) 程序设计语言基本概念
汇编、C、C++;
(2) 编译程序基本原理
2.2.2 汇编语言基础
2.2.3 C 语言编程基础
2.2.4 C++语言编程基础
2.2.5 数据结构和算法
2.2.6 软件工程基础
2.2.7 系统分析与设计
2.2.8 系统测试与维护
2.3 网络基础
第三篇 设计篇
3.1、硬件设计(略)
3.2、软件框架
3.2.1 裸机设计框架
3.2.2 MCU+RTOS 框架
3.2.3 MPU+linux 框架
3.3 嵌入式 C 程序设计模式
3.3.1 面向对象编程
【C语言和设计模式】参考链接:https://blog.csdn.net/qq_46211259/article/details/127211065?spm=1001.2014.3001.5502
继承、封装、和多态
访问者模式
状态模式
命令模式
解释器模式
备忘录模式
观察者模式
桥接模式
建造者模式
中介者模式
策略模式
适配器模式
装饰模式
享元模式
代理模式
外观模式
迭代器模式
抽象工厂模式
责任链模式
工厂模式
模板模式
组合模式
原型模式
单间模式
3.3.2 面向接口编程
3.3.3、并发和资源管理设计
3.3.4、状态机设计
3.3.5 安全性和可靠性设计
第四篇 项目篇
项目一:stm32f407 开发板
项目二:阿尔法 linux 开发板
项目三:某物联网网关
项目四:某摄像头
项目五:某 3D 打印设备
项目六:某工控控制设备
项目七:某智慧农业控制设备
第五篇 就业指导篇
5.1、行业剖析
5.2、自我剖析
5.3、方向综合选择
5.4、简历指导
附件资料说明
欢迎行业技术交流: