1. 编程语言
基本掌握嵌入式必备的编程语言。C语言为主,C++为辅。在资源有限的情况下,大多数嵌入式产品还是使用C语言为主的,特别是底层驱动开发。上层应用开发大多用C,在一些资源比较充足的平台中,也会选择使用C++来进行开发。
补充编程语言的知识时,除了掌握语言本身的知识之外。还需要同时学习:编译、构建、调试等方面的相关知识。这类很重要的知识一般C语言课程都没教:
2. 芯片
基本掌握嵌入式处理器的基础知识。嵌入式处理器种类很多:MCU(微控制器)、MPU(微处理器)、DSP(数字信号处理器)等。MCU,也就是我们常说的单片机。
初学期,重点放在单片机的学习这一块。
理解整体框图、掌握基础外设如:GPIO、UART、TIM、ADC、DAC、I2C、SPI的裸机编程及相关原理、应用。
3. 操作系统
基本掌握操作系统相关知识。
先了解学习RTOS,如RT-Thread等。学习操作系统内核知识:线程调度、时钟管理、线程间同步、线程间通信、内存管理、设备管理等,并掌握基本的使用。
再熟悉Linux操作系统的基本使用。
再学习Linux下的应用开发知识:多线程编程、多进程编程、文件I/O编程、网络编程等。
4. 开发工具
基本掌握必备的开发工具。
VScode、VS、Sourceinsight、Vim的使用。
逻辑分析仪、示波器、调试器地 使用。
gcc、gdb的使用。
git的使用。
对比工具、串口工具、网络工具的使用。
5. 解决问题的能力
上面几点都可以通过一些技术资料进行学习。这一点则需要需要在实战中锻炼,比如自己找一些小项目来做,一来可以把上面列出的几点内容给完整地串起来,二是在做项目的过程中会遇到很多问题,通过不断解决这些实际问题可以积累一些解决问题的经验。
工作之后,知识储备该有的都有了,大家最后拼的也都是解决问题的经验、能力。
我觉得牢牢地掌握这些99.99999%的概率都会用得上的嵌入式软件基础对找工作才比较有利。其它一些技术可以再用的时候再去了解、学习。
特别是一些行业相关知识,可以入行之后再进行学习。如果你一开始的目标就很明确,要在某一行、某一个方向进行深耕,也可以提早学习相关知识,早些积累一些优势。
|