嵌入式软件工程师须要学哪些?
对嵌入式LINUX操作系统及其上应用软件开发目标:
1、掌握主流嵌入式微处理器的结构与原理(ARM9相对比较容易)。
2、必须把握一个嵌入式操作系统,如LINUX系统,这是一个开源的系统。
3、必须熟悉嵌入式软件开发流程并做一些嵌入式软件项目。
学习路线:
1、硬件知识
对于硬件部份要求并不高,只要能读懂原理图,读懂通讯合同嵌入式linux系统工程师标准培训教材2,读懂芯片指南就可以。不求能设计原理图嵌入式linux系统工程师标准培训教材2,更不求能设计电路板。倘若能有一些《数字电路》的基础就更好,没有也没关系。我们主要把握硬件工作原理。要把握常见硬件,如ADC,PWM,UART、I2C、SPI等。
2、编程语言学习
学习C语言,推荐C语言的设计者DennisM.Ritchie和知名计算机科学家BrianW.Kernighan编撰的一部介绍标准C语言及其程序设计方式的专著,《C程序设计语言》。
3、学习LINUX系统编程
首先学会使用了解LINUX,学习LINUX命令,软件安装,工具使用。
学习文件IO,多进程多线程,进程间通讯,套接字等。推荐《UNIX环境中级编程》,《TCP/IP解读卷一》
4、学习LINUX设备驱动
首先须要学习LINUX内核基础部份,包括内核配置编译,内核模块,并发控制,字符设备,设备模型linux 电子书,平台设备等。
在学习常用驱动框架,如INPUT系统,帧缓冲驱动,网路设备驱动,块设备驱动,音频设备驱动等马哥linux,把握这种驱动框架,了解原理,总结什么部份须要我们实现。基础部份可以参考《Linux设备驱动第三版》,该书其实老,而且原理讲的比较透彻,还可以参考。驱动框架可以到网上搜素资料,网上有好多关于驱动框架的介绍,这儿就不推荐具体的文章,你们可以自己找一下。