嵌入式开发的门槛相对较高,对程序员的要求通常都是对底层感兴趣,学习能力、动手能力要强,对问题才能从全局和细节去掌握,有很强的系统剖析和设计能力。从工程师起步,通常有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻练上去,成为项目主管或是管理型人才;再有就是借助自己的技术及行业经验去创业。
其实说搞嵌入式软件更多时侯是在实际的工作学校习的,但一些重要的基础知识不可或缺。
1.计算机组成/微机原理
主要是为了了解微型计算机的硬件工作原理,明白CPU、总线、I/O、存储器等一些关键结构是如何工作的,即使是很无趣的知识,并且对熟悉外围设备硬件工作方法,及操作系统,软件构架的设计及优化相当关键。
2.操作系统
嵌入式产品应用比较广泛的是Linux和WinCE。但操作系统的内部设计原理都是殊途同归。首先要去学习的是操作系统原理,去了解进程通讯、内存管理、文件系统等几个重要的部份linux下内核与应用程序之间的通信,由于这种在软件开发尤其是内核驱动开发时会用到。接出来可以去熟悉起码一种主流的操作系统,Linux是一个挺好的选择,去了解它的内核构架,设备驱动构架,怎样去编译,剪裁,编撰应用程序,以及怎样使用在具体的嵌入式产品上。
3.CortexA8、Linux平台开发
通过基于ARMCortex-A8处理s55pvpv210了解芯片指南的基本阅读方法,把握s55pvpv210系统资源、时钟控制器、电源管理、异常中断控制器、nandflash控制器等模块,为底层平台搭建做好打算。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理剖析、根文件系统制做以及向内核中添加自己的模块红旗linux操作系统,并在s55pvpv210实验平台上运行自己制做的Linux系统linux下内核与应用程序之间的通信,集成布署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是为联通终端构建的真正开放和完整的联通软件,目前它的应用不再局限于联通终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
4.驱动开发
驱动程序设计是嵌入式Linux开发工作中重要的一部份,也是比较困难的一部份。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的插口,把握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件插口的基础知识,熟悉ARMCortex-A8处理器s55pvpv210各资源、掌握Linux设备驱动原理框架小型linux系统,熟悉工程中常见Linux字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。
嵌入式物联网须要学的东西真的特别多,千万不要学错了路线和内容,引起薪水要不起来!
无偿分享你们一个资料包,差不多150多G。上面学习内容、面经、项目都比较新也比较全!某鱼上买恐怕起码要好几十。加陌陌发放资料