嵌入式学习小组
直播中

甘满盛

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》《数据结构与算法分析》
学习网站:


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芯片架构,这三点掌握的比较深入了,再工作中换其他硬件平台都可以较快的上手。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分