嵌入式软件工程师也需要掌握很多知识,并且相对门槛较高,下面我们来说一说
1 了解处理器的相关知识,比如了解x86, arm, mips中的其中一种
相关图书 《编码的奥秘》《深入理解计算机系统》《see mips run》
2 操作系统相关知识,一般是了解嵌入式操作系统,比如linux, ecos, ucos,一般来说,能的话,尽量熟悉理解linux,linux内核熟悉了的话,ecos,ucos等其它的也没有什么难度了
3 编程语言,主要是C语音,并且是要求精通,不应该在语言方面的理解步深导致软件bug
其它也需要的:汇编,C++, shell, python
4 开发工具
必须熟悉gcc, gdb, makefile, git
5 bootloader相关
一般来说,需要了解uboot,对uboot有初步的分析或者深入了解
6 linux内核,linux驱动,linux移植
这个需要平常下苦工,多多学习linux内核知识,也有很多这个方面的好书
7 文件系统
了解文件系统基本原来,熟悉制作文件系统,比如busybox
8 TCPIP协议
现在的嵌入式,高端点,基本都需要连接网络,需要在上面移植协助栈或者开发网络应用,还是需要深入了解TCPIP协议的
9 设计模式
任何软件达到一定的代码量的话,这个技能是必备的
如果是需要设计一个嵌入式软件的整体软件架构,也需要这个思想
10 自测试,自动化测试,单元测试
有开源的单元测试工具,需要熟悉和会使用
并且要求自己在工作中经常使用,自测试
11 开发的代码使用pclint或者lint进行静态检测
12 看自己在哪个行业了,做dvb的需要了解dvb协议,做安防的要研究相关的知识,路由器的需要了解路由器原理等
能基本了解到1-11条的,我认为,在工作中一定游刃有余了,工作上的任务可以比较轻松的完成,也许之余,可以抽出时间做自己喜欢的事情了