如果从应用层的应用开发出发,建议先熟悉api函数,,如果从应用层的界面开发出发,则建议学习qt,wince或android等。但真实的嵌入式开发,熟悉以上还是远远不够的,建议如下学习曲线 :
第 一节段 熟练使用linux操作系统
学习linux操作系统的概念和安装方法,理解linux下的基本命令、管理配置和编辑器,包括vi编辑器,gcc编译器,gdb调试器和 make 项目管理工具等知识。
第二阶段 精通linux下c语言
通过大量编程实例重点学习c语言的编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识,另外,还要学习数据结构的基础内容,包括链表、队列、栈、树、哈希表、图等内容。
第三阶段 嵌入式linux应用编程
精通嵌入式linux下的程序设计,精通嵌入式linux开发环境,强化对linux应用开发的理解和编码调试的能力,包括系统编程、文件i/o、多进程和多线程、网络编程、gui图形界面编程、数据库。
第四阶段 嵌入式入门阶段-arm体系结构
arm处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程。arm的常用接口开发及硬件电路设计基础(包括io、串口、看门狗、实时时钟、spi、iic、扫描键盘、flash操作等),为以后的设备驱动的学习打好基础。
第五阶段 嵌入式阶段-linux内核和驱动开发
深入内核细节,了解linux相关运行机理,为后面的驱动开发打好理论基础,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通信、文件系统和i/o设备管理等方面的内容。
第六阶段 嵌入式硬件开发(学软件的可以不学,但了解硬件对学嵌入式软件有更深入的了解,尤其对系统的理解更深入。)
内容包括单片机的学习,电路分析和电路的原理,pcb设计,主要包括altium designed,电子设计基础知识,原理图初步设计,进阶,提高,深入,pcb库的设计,集成库的作用和制作,pcb设计初步,pcb设计提高,pcb深入,对fpga和cpld系统的相关基础概念等
第七阶段 嵌入式深入阶段
变成高手,你还要进一步学习内核和系统,内容包括计算机系统结构和汇编,linux内核编程,linux内核的基础知识,汇编及保护模式,linux内核体系结构,linux引导程序分析,linux内核代码分析,linux块设备驱动程序分析等
第八阶段 实践阶段
其实就是循序渐进,先学好基础理论知识,然后动手试验,个开发板自己捣鼓吧, 后总结试验结果,验证所学知识并积累经验。