嵌入式软件学习路线和方向,看看你想学什么或者喜欢什么吧,因为嵌入式的知识面比较多,前期可以根据自己擅长的方向选一个深入学习,后续有了经验以后再横向扩展。祝你成为超人。方向按照工作当中的岗位来区分,一个人不可能负责好几个部分,有可能还几个人负责几个驱动,如果是刚入职的新员工,可能会一个人负责一个驱动,招聘也是按照岗位的需求来招聘,所以再学习的时候,选中一个方向学习,要擅长一个方向,公司需要新员工入职后要尽快上手干活,如果所有的方面只懂一点点,那就不太好了。下面介绍一下嵌入式学习的几个方向,有些方向如果有说错的地方,希望大家批评指正。 嵌入式学习的几个方向 硬件层 电路+PCB+汇编+C+单片机系统设计 是整个嵌入式系统的根本,硬件层比较适合于,电子,通信,自动化,机电一体,信息工程类专业的从事,需要掌握的专业基础知识有,单片机原理以及接口技术,微机原理及接口技术,C语言等,从事的工作内容如下: 1. 计算机产品硬件设计 2. 了解计算机的结构及其发展趋势 3. 对计算机硬件的销售及市场有较深刻的认识 4. 区域市场管理 5. 按照计划完成符合功能性能要求和质量标准的硬件产品; 6. 根据产品详细设计报告,完成符合功能和性能要求的逻辑设计; 7. 根据逻辑设计说明书,设计详细的原理图和PCB 图; 8. 编写调试程序,测试或协助测试开发的硬件设备,确保其按设计要求正常运行; 9. 编写项目文档、质量记录以及其他有关文档; 10. 维护管理或协助管理所开发的硬件。 驱动层 C+裸机驱动(芯片内一个或多个模块的驱动) C+裸机应用(基于通讯模块之上的编程) C+RTOS驱动 C+汇编+Maltlab+算法 C+Linux字符驱动 C+FPGA+执行器驱动 C+Linux块驱动 是为计算机硬件设备(比如网卡、声卡du、鼠标zhi、键盘、网卡等等)编写的底层接口程序,使操作系统更好的对硬件设备使用和管理,驱动硬件工作。这些人的职称达到工程师的级别。就叫驱动工程师。驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内从事的工作内容如下: 1、电子通信,计算机类专业本科及以上学历; 2、熟练掌握C语言,熟悉linux内核; 3、有MTK或者展讯高通平台2年以上驱动工作经验; 4、熟悉安卓操作系统架构,了解JAVA编程及相关集成开发环境 5、熟悉 I2C、SPI、UART、USB等常见的硬件接口 操作系统层 C+汇编+RTOS移植+文件系统 C+汇编+Linux移植+U-Boot+文件系统+Makefile 对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,这部分工作大都由驱动工程师来完成,操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。操作系统有智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。功能有:1、进程管理(Processing management)2、内存管理(Memory management) 3、文件系统(File system)4、网络通讯(Networking)5、安全机制(Security)6、用户界面(User interface)7、驱动程序(Device drivers)按应用领域划分主要有三种:桌面操作系统、服务器操作系统和嵌入式操作系统。 应用层 C+RTOS应用+进程同步与互斥+文件操作 C+RTOS网络编程 C+Linux socket网络编程 C+Linux应用编程+进程同步与互斥+文件操作 C++ + QT界面编程 C++ + Linux应用编程+进程同步与互斥+文件操作 C+Linux+HTML+CSS+Javascript网页服务器 如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。