作为一个嵌入式er,需要了解整个嵌入式系统的架构,构建属于自己的技术体系:
1.理论基础
计算机原理
计算机网络基础
编译原理
操作系统
了解一部分的理论基础,奠定嵌入式的基础知识。
2.硬件基础
ARM理论基础
芯片:NXP、ZYNQ、DDR、Flash等芯片了解
了解arm的基本知识,主要包括arm的AMBA总线、GIC中断、MMU、Cache指令集等内容。
学习基于arm内核的芯片常用外设iic spi uart pcie gpio sgmii/gmii watchdog can phy等
3.软件基础
3.1系统基础
Linux内核 uboot、busybox等原理
了解uboot启动,如何启动内核,uboot移植等;
kernel内核启动,需要学习内核的进程调度、文件系统、内存管理、驱动管理、协议栈、设备树等内容;
根文件系统,嵌入式一般使用busybox制作根文件系统,以及最终启动用户的应用程序(一般通过根文件系统目录etc中的inittab指定的shell脚本启动应用程序)。
3.2语言基础
C/C++语言;
Makefile Cmake shell脚本
编译以及汇编的知识,了解编译基本原理、汇编、链接的基本原理,binutils库学习等;
ELF文件标准。
3.3工具基础
gcc、gdb使用
git、svn
MobaXterm、Xshell等远程软件
tcpdump、Wireshark抓包软件
4.业务基础
这个就和从事的行业有关了,通信需要了解通信业务;汽车需要了解汽车业务;机器人需要了解机器人相关业务。