嵌入式应用层开发应该学习什么?

  从事嵌入式开发,因为嵌入式是软硬件结合的,所以要熟练掌握开发相关内容并不容易,能够参考下面这个学习曲线:
  一、熟练使用Linux操做系统:学习Linux操做系统的概念和安装方法,理解Linux下的基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。linux


  二、精通linux下C语言:经过大量编程实例重点学习C语言的高级编程知识,包括函数与程序结构、指针、数组、经常使用算法、库函数的使用等知识,另外,还要学习数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等内容。
  三、嵌入式Linux应用编程:精通嵌入式Linux下的程序设计,精通嵌入式Linux开发环境,强化对Linux应用开发的理解和编码调试的能力,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库。
  四、嵌入式入门阶段-ARM体系结构:ARM处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程。ARM的经常使用接口开发及硬件电路设计基础(包括IO、串口、看门狗、实时时钟、SPI、IIC、扫描键盘、FLASH操做等),为之后的设备驱动的学习打好基础。
  五、嵌入式高级阶段-Linux内核和驱动开发:深刻内核细节,了解Linux相关运行机理,为后面的驱动开发打好理论基础,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通讯、文件系统和I/O设备管理等方面的内容。
  六、嵌入式硬件开发:内容包括单片机的学习,电路分析和电路的原理,PCB设计,主要包括AltiumDesigned,电子设计基础知识,原理图初步设计,进阶,提升,深刻,pcb库的设计,集成库的做用和制做,pcb设计初步,PCB设计提升,PCB深刻,对FPGA和CPLD系统的相关基础概念等(主攻软件的能够省略)。
  七、嵌入式深刻阶段:内容包括计算机系统结构和汇编,linux内核编程,linux内核的基础知识,汇编及保护模式,linux内核体系结构,linux引导程序分析,linux内核代码分析,linux块设备驱动程序分析等
  八、实践阶段:其实就是按部就班,先学好基础理论知识,而后动手试验,买个开发板本身捣鼓吧,最后总结试验结果,验证所学知识并积累经验。
  做为“软硬兼施”的嵌入式开发,要求你们不只要了解较底层软件的工做过程和工做原理,在软件开发的专业水平上也须要充分考虑软件设计的时间和空间效率,这样才能设计出高性能嵌入式程序。所以在粤嵌学习的过程当中,要知其然,更要知其因此然。算法