时间 | 课程大纲 |
第几天 |
9:00 | 12:00 | 1 嵌入式Linux开发环境搭建 目标:通过今天课程的学习,学员能掌握嵌入式Linux的开发流程,掌握诸如tftp、nfs等Linux下服务器的配置方法,为嵌入式Linux的高效开发做铺垫。 1.1 嵌入式LINUX简介与发展 1.2 LINUX快速入门 1.3 建立嵌入式LINUX开发环境 1.4 熟悉嵌入式开发平台 1.5 嵌入式LINUX开发工具 1.6 LINUX下的调试技巧 1.7 MAKE工程管理器 1.8 交叉编译 |
13:30 | 17:30 | 【实验】 1、学习LINUX系统命令 2、配置TFTP服务 3、配置NFS服务 4、建立嵌入式开发环境 5、下载内核到嵌入式平台 6、下载根文件系统 7、编写并下载应用程序到嵌入式平台 |
第二天 |
9:00 | 12:00 | 2 嵌入式LINUX进程及进程间通讯开发 目标:通过今天课程的学习,学员将了解到Linux系统中的进程的概念,从内核的角度了解进程的原理和实现。同时会掌握Linux下守护进程的编写方法,了解Linux下几种进程间通讯的方法,并具备编写进程间通讯编程的能力。 2.1 进程的属性和状态 2.2 进程的控制和调度 2.3 进程的创建、执行、消亡 2.4 进程的相关系统调用 2.5 守护进程 2.6 进程间通信基本概念 2.7 管道(PIPE) 2.8 信号(SIGNAL) 2.9 内存映射(MAPPED MEMORY) 2.10 消息队列(MESSAGE QUEUE) 2.11 信号量(SEMAPHORE) 2.12 共享内存(SHARE MEMORY) |
13:30 | 17:30 | 【实验】 1、使用PS命令查看进程信息 2、使用PROC文件系统查看进程信息 3、使用SYSTEM()系统调用运行和等待 4、EXIT和EXEC系统调用实例 5、编写一个守护进程 6、编写基于串口通信的多进程程序 |
第三天 |
9:00 | 12:00 | 3 嵌入式LINUX多线程开发与线程间的同步 目标:通过今天课程的学习,学员将了解到Linux系统中的线程的概念,从内核的角度了解线程的原理和实现。同时会掌握Linux下多线程程序的编写方法,同步互斥方法,并具备编写多线程间通讯编程的能力。 3.1 线程程的属性和状态 3.2 线程的控制和调度 3.3 线程的创建、执行、消亡 3.4 线程的相关系统调用 3.5 线程间同步基本概念 3.6 P、V操作原理 3.7 信号量 3.8 互斥锁 3.9 条件变量 |
13:30 | 17:30 | 【实验】 1、多线程实例分析 2、多线程API的使用方法 3、用信号量进行同步 4、用互斥锁进行互斥 5、用条件变量进行同步 |
第四天 |
9:00 | 12:00 | 4 嵌入式Linux下的网络开发 目标:通过今天课程的学习,学员能了解网络的基础知识,了解Linux下的网络结构和套接字编程,具备Linux下网络程序设计的能力。 4.1 ISO/OSI七层协议模型与IP网络四层模式 4.2 TCP/IP协议簇 4.3 基于嵌入式LINUX的TCP/IP网络结构 4.4 基于嵌入式LINUX的SOCKET编程 4.5 UDP与TCP的区别 4.6 UDP SERVER-CLIENT关系程 |
13:30 | 17:30 | 【实验】 1、SOCKET套接字编程 2、分析并加强PING程序 3、FTP服务器设计 |
第五天 |
9:00 | 12:00 | 5 嵌入式GUI与数据库开发 目标:通过今天课程的学习,学员能够了解嵌入式Linux下的几种常见GUI及其特点,重点能掌握QT的有关内容,具备QT程序设计能力。了解嵌入式数据库的配置与开发。 5.1 嵌入式LINUX GUI介绍及QT/MINIGUI之间比较 5.2 QT介绍及其信号插槽机制 5.3 QT图形界面编程技术 5.4 QVFB虚拟帧缓存的建立和模拟开发调试 5.5 QT程序移植技术 5.6 QT在实际项目中具体应用 5.7 嵌入式数据库的概念 5.8 嵌入式数据库的移植与编程 |
13:30 | 17:30 | 【实验】 1、基于QT实现HELLO WORLD对话框程序 2、建立主机虚拟帧缓存实验 3、基于QT图形界面的温度计的实现 |
第六天 |
9:00 | 17:00 | 6 综合项目实践“基于QT的网络通信系统” 目标:经过前几天的学习,学员基本上掌握了嵌入式linux常用的应用编程方法,今天通过一个综合项目案例巩固、加深前面的知识,并使学员了解嵌入式Linux项目开发流程。 6.1 项目实现的功能 6.1.1 QT界面设计 6.1.2 网络消息传输功能 6.1.3 网络文件传输功能 6.1.4 系统管理功能 6.2 项目涉及到的技术 6.2.1 项目流程及项目管理方法 6.2.2 QT界面开发 6.2.3 QT多线程 6.2.4 QT网络编程 6.2.5 Linux文件操作 6.2.6 Qt移植(软件移植到S3C2440开发平台) 6.2.7 程序优化、测试(包括:内存泄漏、系统调用跟踪、函数执行时间及频率检测、core dump处理等) |