凌阳教育《嵌入式》课程方案
课程简介:
嵌入式系统是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的调查报告嵌入式linux系统工程师标准培训教材,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一硬盘安装linux,一个成熟的高级嵌入式工程师年薪在30万元左右。
职业面向:
1. Linux c应用开发工程师
2. 嵌入式开发工程师
3. C软件工程师
4. Linux驱动开发工程师
5.Android驱动开发工程师
6.Linux网络开发工程师
职业能力目标:
1.熟悉Linux操作系统的安装使用
2.掌握Linux操作系统下的各种命令及服务管理
3.掌握嵌入式C语言核心技术。
4.掌握gtk图形界面开发技术
5.掌握Linux多任务开发
6.掌握Linux下网络socket编程
7.掌握Sqlite数据库及SQL数据库语言
8.熟悉Linux下bootloader、内核、文件系统的开发
9.掌握Linux系统下字符驱动设备开发
10.熟悉Linux系统下块设备驱动开发
嵌入式课程体系:
嵌入式课程体系
课程目标
通过本课程的系统学习,可以使学员由浅入深地对嵌入式Linux系统全面学习,能够独立胜任嵌入式Linux应用开发、系统开发、设备驱动开发以及Linux衍生产品等多方面工作,可以系统了解嵌入式物联网相关知识,胜任物联网相关技术岗位开发工作。课程目标包括:
1、精通嵌入式C语言高级编程
2、精通各常用数据结构与算法相关知识
3、精通GTK图形库应用开发技术
4、精通Linux操作系统使用
5、精通Linux系统编程
6、精通Linux系统网络编程
7、精通Linux网络路由及数据交换技术
8、掌握嵌入式数据库SQLite
9、精通嵌入式C++语言编程
10、熟悉ARM体系结构
11、熟悉Bootloader启动过程
12、熟悉常见Bootloader(Uboot)源码及平台移植
13、通过制作简易Bootloader掌握系统引导启动过程以及原理
14、掌握嵌入式Linux内核裁减以及移植
15、掌握嵌入式Linux平台搭建技术及技巧
16、熟悉嵌入式硬件底层开发
17、掌握嵌入式Linux设备驱动移植以及开发
18、通过七大项目实践,掌握嵌入式Linux实际项目案例开发流程,提高研发技能
第一阶段:嵌入式高级c编程
本期目标:在嵌入式领域中大部分开发都会用到C语言。C语言简洁、紧凑、使用方便灵活加上GNU在实际项目开发中所做的扩展,使得C语言在整个嵌入式开发过程中起着至关重要的作用。更重要的是用C语言开发的程序在嵌入式平台下可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地从事Linux、WinCE、Vxworks、μc/os等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、巩固C编程语法基础,以及深入C语言高级编程和数据结构与算法嵌入式linux系统工程师标准培训教材,为将来的程序设计工作打下坚实的基础。
序号
课程名称
课程内容
掌握要求
1
嵌入式C语言高级编程
C语言是嵌入式领域最重要也是最主要的编程语言,本课程将在学员已有C语言基础知识之上,通过大量编程实例来讲解C语言的基础编程以及高级编程知识。包括:
1、程序结构设计、数组、函数、预处理:《打字游戏》、《个税征收查询系统》
2、字符串操作、指针:《手机短信分析程序》、《条形码生成器》
3、结构体、共用体、宏、枚举、链表: 《GPS信息分析程序》、《学生信息管理系统》
4、文件I/O操作:《文件加密器》
精通
2
项目实战
——《lrc歌词解析器》
本项目在C语言阶段具有非常好代表性。通过本项目对C语言的重点知识灵活运用,能够完成对lrc格式歌词文件的读取、解析、存入链表等功能,并且能够实现与歌曲同步实时显示。通过该项目能熟练掌握C语言各种字符串处理方法、基本数据结构,培养良好的编程规范。
独立完成
第二阶段:Linux基础及图形库(GTK)开发
本期目标:Linux系统是嵌入式领域发展最为迅速以及占有率最高的嵌入式操作系统,对其掌握的熟练程度直接关系到在嵌入式领域的发展。
本阶段主要围绕Linux系统安装、配置、Linux系统常用工具使用、Linux下图形开发技术—GTK等Linux环境下开发必备知识进行学习,为在Linux系统下开发打下坚实基础。
序号
课程名称
课程内容
掌握要求
3
Linux环境配置与开发工具学习
本课程从零起点,讲解Linux操作系统的概念知识和安装方法:
1、详细介绍Linux下的目录结构、基本命令、常用网络服务管理配置——nfs、ssh、samba
2、熟练掌握Linux下编辑器(vi)、编译器GCC、调试器GDB
3、熟练掌握Linux下项目管理工具Make以及Makefile工作原理及其编写
4、熟练掌握Linux下shell脚本相关知识及其编写
5、熟练进行嵌入式开发环境的基本概念及其搭建——bootloader、kernel、roofs。
熟练
4
Linux应用及图形开发技术— GTK
全面学习Linux下经典图形开发技术—GTK图形库的基本知识与编程技巧,熟悉:
1、GTK下常用控件——button、label、text edit等
2、GTK下常用布局方式——水平布局、垂直布局、网格布局、相对布局等
3、GTK下常用事件及信号处理技术——信息回调、鼠标、键盘事件等
4、GTK下时间编程、数据存储、绘图机制、定时器处理、多任务处理等
完成:《GTK版猜数字》
《GTK版电子相册》
《GTK班实时时钟显示系统》
精通
第三阶段:Linux系统编程开发
本期目标:Linux系统提供了许许多多的功能,作为一个软件开发人员我们必需学会如何编程去使用操作系统提供的功能。
本阶段主要围绕Linux系统调用、进程、线程、进程间通信等知识进行学习,全面掌握Linux系统下必备的编程技能,能够编写Linux系统下的应用程序。
5
Linux系统编程高级技术
本课程从零起点,讲解Linux系统编程基本概念及编程方法,通过上课及课后练习让学员与实际应用相联系,提升学员对Linux系统编程的理解和代码调试的能力。
1、熟悉操作系统提供的五大功能
2、精通多任务编程-进程
3、精通进程间通信-信号
4、精通进程间通信-管道
5、精通进程间通信-命名管道
6、精通进程间通信-消息队列
7、精通进程间通信-共享内存
8、精通进程间通信-信号量
9、精通多任务编程-线程
10、精通多任务编程-互斥、同步
完成:《Linux shell命令解释器》
《基于消息队列的QQ聊天系统》
《基于命名管道的命令行版Mplayer播放器》
《经典的生产者与消费者的练习》
精通
6
LinuxIO控制技术
数练掌握linux系统下的io控制技术
1、熟悉linux下设备文件的概念
2、熟悉Linux文件系统/dev目录的作用
完成:《Linux IO输出控制技术—LED》
《Linux IO输入控制技术—GPIO》
精通
7
项目实战
——《Mplayer 音乐播放器》
利用GTK图形库实现Mplayer UI界面的设计linux服务器代维,即图形界面的开发,通过触摸屏和按键进行控制,实现Mplayer播放、暂停、上一首、下一首、静音、音量调节、播放列表、歌曲信息、播放进度、歌词同步等功能。该项目中涉及到多进程、多线程以及进行间通信、重定向等系统编程知识,是对前面所学知识点的强化和提升。
独立完成
第四阶段:Linux网络编程开发
本期目标:信息技术网络化是人们生活以及技术的发展的一个重要方向:手机、电脑、平板网络已成为必备功能,电视、打印机、冰箱等传统家电行业网络化也逐步提上日程,网络已经成为大势所趋。本阶段主要通过网络相关知识学习,让学员从上到下的熟悉整个网络通信过程,熟练掌握网络应用编程、底层编程技术,为进行网络开发打下坚实的基础。
序号
课程名称
课程内容
掌握要求
8
Linux网络基本概念
熟悉网络开发常见基本概念
1、熟悉TCPIP 4层基本协议划分与各层基本功能