第一阶段:嵌入式Linux C 开发工程师 |
课程名称 | 课程内容 | 掌握要求 | 课时安排 |
Linux系统基础 | Linux系统基本操作、常用的系统服务搭建配置及基本的shell脚本编写。 | 掌握 | 5天 |
嵌入式工程C语言强化 | C语言的基本语法、核心部分讲解。详细讨论C语言的各种特性、内存分配管理、链接、限定词、模块化编译链接处理。强化C语言中的指针、结构体、递归等。Linux下的GCC、GDB的使用,Makefile编写。介绍实际项目开发团队中常用的合作工具与方式。传授开发经验与技巧。以大量的实际案例迅速提高编码能力。 | 精通 | 10天 |
数据结构与算法分析-C语言描述 | 链表的基本处理操作及内存调用分配。常用的排序和查找。手工编写代码实现模拟内存堆、栈。抽象数据类型(ADT)介绍及树的编写。内核常用算法解析。 | 掌握 | 7天 |
C++ | 主要讲解C++基础、特性、泛型技术、C++与C的相同与差异。能够利用C++的特性编写各种数据结构算法。 | 了解 | 3天 |
项目实践 | 用VT控制码结合数据结构的知识来实现一款俄罗斯方块游戏。目的在于强化C语言及数据结构的编写技能,为后期课程学习打下夯实的基础,实现通过C语言来完成人机交流。 | 掌握 | 5天 |
第二阶段:进阶为嵌入式应用开发工程师 |
Linux应用程序设计、网络协议及Socket网络程序开发 | 本阶段主要学习库函数的调用及网络协议。包括文件I/0、管道、消息队列、进程、线程、信号、并发、I/0、进程间通信等。本阶段实际案例有:串口程序、图片浏览器、MP3播放器、聊天程序、ftp程序、音频广播程序、ping的实现、DDos攻击程序、ARP攻击程序。 | 精通 | 10天 |
项目实践 | 网络视频播放系统:利用所学的网络、图形、声频知识构建一个完整的网络点播系统,核心解码部分可用MPlayer的相关部分 | 掌握 | 5天 |
第三阶段:嵌入式ARM开发工程师 |
ARM嵌入式开发 | 搭建Linux嵌入式开发环境、包括基本概念和开发流程、内核剪裁配置和交叉编译、根文件系统制作、网络编程、利用Datasheet手册控制外围设备,掌握ARM汇编指令。 | 精通 | 15天 |
项目实践 | 完全自主开发一个能够引导Linux的Bootloader需具备tftp、nand烧写等功能。 | 精通 | 5天 |
第四阶段:嵌入式linux 底层驱动开发工程师 |
Linux内核及设备驱动程序 | Linux内核一些基本常识:从何处获取源码、编译、安装。内核配置与模块、内核下半部和退后执行的工作,以及内核的中断、内存管理等。熟悉内核剪裁、移植。讲解Linux的驱动开发规范。从0开始手写至少5款驱动,绝非驱动的普通移植,真正的嵌入式核心培训,触摸屏驱动、LCD驱动、音频驱动、网卡驱动、Watch Dog(看门狗)驱动及相应的DMA驱动的编写。 | 精通 | 15天 |
Android 底层驱动开发项目部分 |
Android底层驱动开发大型项目 1. ARM11智能手机项目 2.双核Cortex A9智能平板电脑项目 二选一 | 熟悉Android底层驱动架构、移植及开发。 教学案例: 1.AndroidLED驱动 2.Android图形驱动 3. Android 音频驱动 4. Android 触摸屏驱动 5. Android G驱动 | 掌握 | 10天 |
1. 针对基础较薄弱的学员,在ARM11智能平台实现一款Google Android操作系统的智能手机,此项目后续可以通过整合GPS变成车载导航,可以整合红外遥控变成智能机顶盒。学员完成的是系统基础部分。 2. 针对学习能力强,基础较好的学员,将Google的Android系统运行到双核ARM Cortex A9开发板上,编写更改新内核及整合相关驱动,实现一款智能平板电脑。本设备今后可以整合广电系统成为智能电视或者高清播放机,完成操作系统核心部分。 | 掌握 |