嵌入式学习小组
登录
直播中
甘满盛
7年用户
1228经验值
擅长:386660
私信
关注
零基础怎样才能入门成为一名嵌入式软件工程师呢
开启该帖子的消息推送
嵌入式
嵌入式软件
软件
零基础怎样才能入门成为一名嵌入式软件工程师呢?有哪些学习步骤?
回帖
(1)
章应苞
2021-12-24 14:29:17
嵌入式软件工程师学习规划
学习总周期:210天【49(入门)+77(进阶)+84(后续)】,1天学习时间5小时左右。
1、入门阶段:
学习周期:49天(14+21+14)
(不要只看书,要多动手,但千万不是直接动手,不去看书)
1.1、C语言入门:
学习周期:14天
嵌入式编程大多用
C语言
、少量汇编,先学习C语言,汇编用到的时候再上网查询。教材:随便一本C语言大学教材(
网上电子书即可,有需要也可以购买纸质版
),快速入门,
电脑上照着教材敲代码
,有问题网上搜索解决。知识点有:
C编译及开发环境搭建
C数据类型、控制语句
C程序结构设计、数组、函数、预处理:
指针及字符串操作
结构体、共用体、宏、枚举
工具软件:采用
Cloin
+
Cygwin****或Visual Studio或WSL环境
,此环节仅用于C语言学习,后续单片机学习需要根据单片机种类选用开发工具。
1.2、51单片机入门
学习周期:21天
看书了解单片机是个什么东西,单片机的基本原理,**然后买开发板(建议普中开发板及配套学习资料)**学习,照着视频学习一遍开发板上的基本模块操作。知识点有:
掌握51开发环境搭建、软件调试
掌握51单片机IO操作、AD和DA操作
掌握UART通信、模拟IIC、SPI通信、RS485等协议
掌握中断的原理、定时器计数器。
学习方式:书+开发板(普中51单片机系列)
简单模块:数码管、蜂鸣器、电机、按键、流水灯等;【不一定要学习开发板上的所有模块,学习一些常用的,感兴趣的即可,很多模块操作相似,快速入门】
1.3、电路绘制
学习周期:14天
掌握基本的电路知识,能够看懂开发板的电路原理图。能够照着开发板的原理图焊接电路。
工具软件:
Keil软件
和**Altium Designer(AD)**软件,其中Keil主要用于51单片机程序开发,AD用于电路学习。
附加:掌握51单片机的内部结构,UART、IIC的协议详情,
学会看数据手册
自我测试:使用AD软件设计一个电路,并购买电子器件焊接电路板。编写程序,实现单片机读取温度传感器和湿度触感器的数据,通过uart发送到电脑上位机,同时上位机发送命令给单片机,控制蜂鸣器响+灯亮。可以自行发挥,电路设计照抄开发板。上位机可以使用串口调试助手。
2、进阶阶段:
学习周期:77天(28+14+14+21)
2.1、STM32单片机
学习周期:28天
在基本掌握51单片机的基础上,进一步学习STM32单片机,可以购买对应开发板(建议正点原子的战舰系列开发板及配套学习资料),知识点有:
掌握STM32开发环境
掌握STM32的库函数编程以及寄存器操作,STM32寄存器开发较为复杂,可以先基于库函数实现基本功能,之后通过寄存器版本了解其原理。
学习复杂外设:DMA、ADC、DAC、PWM、IIC、SPI、JTAG调试、中断、时钟系统
高级模块:蓝牙、WiFi、摄像头、键盘鼠标、USB。
学习方式:书+开发板(正点原子推荐,资料齐全,视频配套,入门速度快)+博客+自己做笔记
附加:cortex M3内部结构,掌握STM32的内部结构和cortex M3内核结构,书籍,
《cortex M3/M4权威指南》
。
2.2、C语言进阶
学习周期:14天
进一步学习C指针(数组和指针的区别、数组指针和指针数组区别等)
掌握基本数据结构(数组、堆、队列、二叉树等)。
掌握几种基本算法(插入排序、希尔排序、归并排序、随机化快速排序、双路快速排序、三路快速排序等)
书籍:《C和指针》《C primer》《数据结构与算法分析》
学习网站:
菜鸟教程-数据结构与算法(
https://www.runoob.com/data-structures/data-structures-tutorial.html
)
菜鸟教程-C语言教程(
https://www.runoob.com/cprogramming/c-tutorial.html
)
2.3、嵌入式实时操作系统
学习周期:14天
嵌入式实时操作系统(RTOS)一般用于任务多且复杂的场景,根据实际需求学习,RTOS学习资料可以直接使用
正点原子的相关资料
。
正点原子提供的RTOS资料主要为FreeRTOS和UCOS操作系统,根据提供的资料学习即可。商用建议学习FreeRTOS,其商用开源免费。知识点有:
下载源码,学会移植。
学习操作系统任务、信号量等基本结构。
深入掌握操作系统调度和内存管理。
学习方式:源码+手册+大佬博客
2.4、应用层
学习周期:21天
学习一点C#或C++,尝试写上位机程序,Windows的应用程序。
建议学习C#,C#编写winform窗体应用入门简单,开发工具软件可以采用Visual Studio。
自我测试:STM32+摄像头+蓝牙+上位机。STM32读取摄像头的数据,通过蓝牙传输给PC电脑上位机,并且上位机显示出来。
工具软件:keil或者IAR、Visual Studio编写上位机、其他工具软件
3、后续规划
学习周期:84天
熟悉公司产品开发,然后根据公司需求,进一步掌握相关知识。如:
按照顺序:先学会使用Linux,再学习Linux内核。Linux十分庞大,弄懂一个组件或者一项就能找个不错的工作。
Linux应用层编程、Linux系统编程、ARM体系结构(嵌入式一般先学ARM架构,其他架构工作中再学)
Linux驱动、Linux内核基本模块:内存管理,任务调度,文件系统。弄懂一个需要很多时间。
书籍:《Unix环境高级编程》《Linux内核设计与实现》《Linux系统编程》《深入理解Linux内核》《Linux设备驱动开发详解》《Linux设备驱动程序内核机制》《Linux内核情景分析》《ARM体系结构与编程》《ARM嵌入式系统开发:软件设计与优化》
多做学习总结,写博客。【博客,写之前是写给自己的,写完了就是给别人的】
嵌入式的应用十分广泛,实际工作中用到的知识肯定不止这些,也有些完全用不上,但是这些都是基础的,掌握好基础,掌握学习新知识的方法,工作中,找到数据手册就可以开发了。
有做芯片的、手机的、安防、无人机、通信、家电,各行各业都离不开嵌入式。前景还是可以的,但是一定要坚持深入学习,浅层的皮毛都可以做,含金量低。
C语言、实时操作系统或者Linux操作系统、ARM芯片架构,这三点掌握的比较深入了,再工作中换其他硬件平台都可以较快的上手。
嵌入式软件工程师学习规划
学习总周期:210天【49(入门)+77(进阶)+84(后续)】,1天学习时间5小时左右。
1、入门阶段:
学习周期:49天(14+21+14)
(不要只看书,要多动手,但千万不是直接动手,不去看书)
1.1、C语言入门:
学习周期:14天
嵌入式编程大多用
C语言
、少量汇编,先学习C语言,汇编用到的时候再上网查询。教材:随便一本C语言大学教材(
网上电子书即可,有需要也可以购买纸质版
),快速入门,
电脑上照着教材敲代码
,有问题网上搜索解决。知识点有:
C编译及开发环境搭建
C数据类型、控制语句
C程序结构设计、数组、函数、预处理:
指针及字符串操作
结构体、共用体、宏、枚举
工具软件:采用
Cloin
+
Cygwin****或Visual Studio或WSL环境
,此环节仅用于C语言学习,后续单片机学习需要根据单片机种类选用开发工具。
1.2、51单片机入门
学习周期:21天
看书了解单片机是个什么东西,单片机的基本原理,**然后买开发板(建议普中开发板及配套学习资料)**学习,照着视频学习一遍开发板上的基本模块操作。知识点有:
掌握51开发环境搭建、软件调试
掌握51单片机IO操作、AD和DA操作
掌握UART通信、模拟IIC、SPI通信、RS485等协议
掌握中断的原理、定时器计数器。
学习方式:书+开发板(普中51单片机系列)
简单模块:数码管、蜂鸣器、电机、按键、流水灯等;【不一定要学习开发板上的所有模块,学习一些常用的,感兴趣的即可,很多模块操作相似,快速入门】
1.3、电路绘制
学习周期:14天
掌握基本的电路知识,能够看懂开发板的电路原理图。能够照着开发板的原理图焊接电路。
工具软件:
Keil软件
和**Altium Designer(AD)**软件,其中Keil主要用于51单片机程序开发,AD用于电路学习。
附加:掌握51单片机的内部结构,UART、IIC的协议详情,
学会看数据手册
自我测试:使用AD软件设计一个电路,并购买电子器件焊接电路板。编写程序,实现单片机读取温度传感器和湿度触感器的数据,通过uart发送到电脑上位机,同时上位机发送命令给单片机,控制蜂鸣器响+灯亮。可以自行发挥,电路设计照抄开发板。上位机可以使用串口调试助手。
2、进阶阶段:
学习周期:77天(28+14+14+21)
2.1、STM32单片机
学习周期:28天
在基本掌握51单片机的基础上,进一步学习STM32单片机,可以购买对应开发板(建议正点原子的战舰系列开发板及配套学习资料),知识点有:
掌握STM32开发环境
掌握STM32的库函数编程以及寄存器操作,STM32寄存器开发较为复杂,可以先基于库函数实现基本功能,之后通过寄存器版本了解其原理。
学习复杂外设:DMA、ADC、DAC、PWM、IIC、SPI、JTAG调试、中断、时钟系统
高级模块:蓝牙、WiFi、摄像头、键盘鼠标、USB。
学习方式:书+开发板(正点原子推荐,资料齐全,视频配套,入门速度快)+博客+自己做笔记
附加:cortex M3内部结构,掌握STM32的内部结构和cortex M3内核结构,书籍,
《cortex M3/M4权威指南》
。
2.2、C语言进阶
学习周期:14天
进一步学习C指针(数组和指针的区别、数组指针和指针数组区别等)
掌握基本数据结构(数组、堆、队列、二叉树等)。
掌握几种基本算法(插入排序、希尔排序、归并排序、随机化快速排序、双路快速排序、三路快速排序等)
书籍:《C和指针》《C primer》《数据结构与算法分析》
学习网站:
菜鸟教程-数据结构与算法(
https://www.runoob.com/data-structures/data-structures-tutorial.html
)
菜鸟教程-C语言教程(
https://www.runoob.com/cprogramming/c-tutorial.html
)
2.3、嵌入式实时操作系统
学习周期:14天
嵌入式实时操作系统(RTOS)一般用于任务多且复杂的场景,根据实际需求学习,RTOS学习资料可以直接使用
正点原子的相关资料
。
正点原子提供的RTOS资料主要为FreeRTOS和UCOS操作系统,根据提供的资料学习即可。商用建议学习FreeRTOS,其商用开源免费。知识点有:
下载源码,学会移植。
学习操作系统任务、信号量等基本结构。
深入掌握操作系统调度和内存管理。
学习方式:源码+手册+大佬博客
2.4、应用层
学习周期:21天
学习一点C#或C++,尝试写上位机程序,Windows的应用程序。
建议学习C#,C#编写winform窗体应用入门简单,开发工具软件可以采用Visual Studio。
自我测试:STM32+摄像头+蓝牙+上位机。STM32读取摄像头的数据,通过蓝牙传输给PC电脑上位机,并且上位机显示出来。
工具软件:keil或者IAR、Visual Studio编写上位机、其他工具软件
3、后续规划
学习周期:84天
熟悉公司产品开发,然后根据公司需求,进一步掌握相关知识。如:
按照顺序:先学会使用Linux,再学习Linux内核。Linux十分庞大,弄懂一个组件或者一项就能找个不错的工作。
Linux应用层编程、Linux系统编程、ARM体系结构(嵌入式一般先学ARM架构,其他架构工作中再学)
Linux驱动、Linux内核基本模块:内存管理,任务调度,文件系统。弄懂一个需要很多时间。
书籍:《Unix环境高级编程》《Linux内核设计与实现》《Linux系统编程》《深入理解Linux内核》《Linux设备驱动开发详解》《Linux设备驱动程序内核机制》《Linux内核情景分析》《ARM体系结构与编程》《ARM嵌入式系统开发:软件设计与优化》
多做学习总结,写博客。【博客,写之前是写给自己的,写完了就是给别人的】
嵌入式的应用十分广泛,实际工作中用到的知识肯定不止这些,也有些完全用不上,但是这些都是基础的,掌握好基础,掌握学习新知识的方法,工作中,找到数据手册就可以开发了。
有做芯片的、手机的、安防、无人机、通信、家电,各行各业都离不开嵌入式。前景还是可以的,但是一定要坚持深入学习,浅层的皮毛都可以做,含金量低。
C语言、实时操作系统或者Linux操作系统、ARM芯片架构,这三点掌握的比较深入了,再工作中换其他硬件平台都可以较快的上手。
举报
更多回帖
rotate(-90deg);
回复
相关问答
嵌入式
嵌入式软件
软件
想去粤嵌教育
成为
一名
优秀的
嵌入式
工程师
应该具备什么样的技能
呢
?
2017-06-05
2995
什么是
嵌入式
硬件
工程师
?什么是
嵌入式
软件工程师
2021-12-24
18967
怎样才能成为
一
个合格的
嵌入式
软件工程师
呢
2021-12-24
1093
如何
成为
一
个
嵌入式
软件工程师
?
2021-11-12
2433
如何
才能成为
一名
嵌入式
大牛
呢
?
2021-01-18
1391
嵌入式
软件工程师
一
般需要会哪些技能
呢
2021-12-24
2656
谁分享
一
份
嵌入式
软件工程师
/单片机
软件工程师
面试试题&答案,THX!
2021-10-25
3490
嵌入式
软件
开发
工程师
与FPGA开发
工程师
的区别是什么?
2021-11-22
9392
做非
嵌入式
的
软件工程师
特点
2021-01-22
1283
请问
嵌入式
硬件和
软件工程师
的职责是什么?
2019-09-10
2433
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分