基本功:C语言(包括数据结构),汇编语言,微机原理,操作系统(熟悉操作系统的基本原理)
嵌入式系统开发流程:
启动代码(用汇编,不同体系结构对应不同的汇编,arm汇编)
bootloader(uboot)
Linux Kernel(用汇编,熟悉框架,熟悉修改和裁剪)
FileSystem(实现简单的一些库以及系统调用。)
Application
内核代码里面普遍使用单向链表,双向链表,以及hash等。要熟悉C语言里面的数据结构。要熟悉基本的算法,查找,排序等。(大数据查找处理等,熟悉基本算法)
驱动工程师开发的程序提供调用硬件的接口,应用工程师在实际的开发过程中,它实际调用的是底层驱动工程师提供的接口,进而实现对硬件的访问。