分类:
2010-11-01 17:05:02
全文:嵌入式ARM-Linux整体培训大纲(一)
(1)Linux概述;
(2)Linux安装、内核定制、使用及初始化流程分析。
(3)linux的管理和网络应用
(4)shell程序设计;
(5)实验:(a)安装与定制Red hat Linux系统、定制Linux内核;
(b)实验:编写shell程序。
(c)实验:linux命令实践和网络应用。
(1)Linux进程管理,包括进程的PCB管理、进程状态及迁移、进程的创建与消亡、进程间通信;系统调用基础知识。
(2)Linux存储管理,包括Linux下进程的虚地址空间的概念、进程的虚存段VMA、内存映射、共享存储等;
(3)实验:编写应用程序,实现进程之间通过共享存储进行通信。
(4)Linux文件系统,介绍VFS技术、EXT2、EXT3文件系统;
(1) 设备驱动程序结构介绍,内核模块技术及内核模块编程知识;
(2) Linux下的应用程序结构介绍;Make file讲解。
(3) 实验:学习编写一个Linux TCP/IP 通讯程序。
(1)嵌入式的基本概念
(2)嵌入式微处理器分类
(3)ARM嵌入式系统的硬件结构
(1)基于ARM的GUI技术的介绍
(2)MINIGUI的GUI实验
(3)QTE的GUI实验
(1)ARM嵌入式系统硬件开发相关技术
(2)ARM7体系结构(ARM7 S3C44B0X)和ARM9体系结构(ARM9 atm9200)
(1)ARM嵌入式系统的指令及编程
(2)ARM汇编指令实验
上午:
(1)嵌入式linux系统简介
(2)嵌入式linux开发环境的介绍
(3)嵌入式linux内核分析
下午:
(1)嵌入式linux设备驱动程序开发
(2)嵌入式多线程开发
(3)实时嵌入式linux系统介绍
上午:
(1)嵌入式系统开发的组网结构实验;
(2)嵌入式linux内核编译实验;
(3)嵌入式linux文件格式改变实验;
下午:
(1)嵌入式文件系统实验;
(2)嵌入式应用程序实验;
(3)嵌入式驱动程序实验;
(4)嵌入式系统稳定性测试实验
LINUX调试技术培训大纲(二)
Linux初步调试
1.1 使用printk/printascii打印调试信息
1.2 使用KGDB/GDB
1.2.1 GDB原理简介
1.2.2 使用GDB调试应用程序
1.2.3 使用KGDB调试内核程序
1.3 使用PROC接口调试驱动
1.4 使用BDI2000调试器
1.5 综述
试验1:printk/printkascii调试内核启动
试验2:使用kgdb调试内核
Linux系统性能分析与优化
2.1 用内核函数跟踪工具(KFT)跟踪内核启动/关闭时间
2.1.1 内核函数跟踪工具(KFT)简介
2.1.2 KFT的使用
2.2 用Linux跟踪工具(LTT)分析执行流
2.2.1 Linux跟踪工具(LTT)简介
2.2.2 LTT的使用
2.3 用基准测试工具分析Linux特定模块性能
2.3.1 基准测试原理简介
2.3.2 LMbench/Unixbench基准测试工具介绍及使用
2.3.3 Netperf基准测试工具介绍及使用
2.3.4 LTP基准测试工具介绍及使用
2.4 解决Linux系统实时性指标
2.5 综述
实验1:使用KFT分析启动和关闭时间
实验2:使用LTT工具跟踪Linux执行流
实验3:使用LMBench分析内核各模块性能
LINUX驱动开发培训大纲(三)
1. LINUX字符设备驱动程序开发
1.1 LINUX内核结构
1.2 LINUX内核配置与编译
1.3 LINUX内核模块编程与加载
1.4 LINUX-2.6设备驱动模型与SYSFS文件系统
1.5 LINUX设备驱动程序基础与设备I/O
1.6 LINUX字符设备驱动基础
1.7 字符设备驱动程序实现框架与典型驱动分析
1.8 用户空间与内核空间的数据传输
1.9 阻塞与非阻塞I/O设计
【实验】
1、驱动开发编程环境与内核配置、编译
2、编写模块化字符设备驱动程序与测试
3、如何为内核程序传递参数
4、蜂鸣器驱动程序编写与测试
5、阻塞型字符设备驱动编写与测试
学习目标 通过字符设备驱动程序开发高级篇的学习,学员能够进行复杂的字符设备驱动程序开发,包括掌握设备硬件中断服务程序编写、操作延迟与中断上下部的编程以及掌握内核空间内存的使用等。
2. LINUX字符设备驱动程序高级开发
2.1 LINUX内核中断子系统
2.2 中断处理程序编写
2.3 驱动程序上/下半部处理与延缓执行机制
2.4 内核定时器与延迟机制
2.5 内核地址空间与内存使用
2.6 内核与驱动程序调试
【实验】
1、编写一个简单的驱动程序,使用3种内存分配机制
2、扫描键盘的驱动原理
3、内核定时器的使用
4、编写带中断支持的扫描键盘驱动
5、上下部支持的键盘驱动编写
学习目标 块设备常用于存储,如闪存等。通过这一天块设备驱动程序开发的学习,学员能够明白Linux中块设备驱动的特点及框架,独立分析Linux中大部分块设备的驱动方法,并熟悉MTD设备驱动的特点与框架,具备MTD Nand Flash驱动程序开发的能力。通过实验,学员还可以掌握IDE、Ramdisk驱动移植方法。
3. LINUX块设备驱动程序开发
3.1 块设备及其驱动的特点
3.2 块设备驱动程序中两个关键结构体GEN_DISK与REQUEST
3.3 块设备驱动程序的注册与请求处理
3.4 MTD设备的特点以及与块设备的关系
3.5 MTD设备驱动的框架及关键结构体分析
3.6 S3C2410(S3C2440)中的NAND FLASH控制器分析
3.7 S3C2410(S3C2440) NAND FLASH MTD驱动分析
【实验】
1、编写简单的块设备驱动程序
2、实现RAMDISK驱动
3、IDE硬盘的驱动移植
4、移植S3C2410 闪存控制器驱动
5、配置MTD内核选项
6、移植嵌入式文件系统
学习目标 网络设备是嵌入式产品开发,特别是基于网络的产品开发中必须掌握的一种设备。通过Linux网络设备驱动程序开发的学习,学员将深入理解Linux网络驱动程序中有关套接字(socket)、套接字缓冲区(sk_buff)等概念,了解网络驱动程序的数据交换过程。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。
4. LINUX网络设备驱动程序开发
4.1 OSI网络参考模型
4.2 套接字(SOCKET)简介
4.3 套接字缓冲区(SK_BUFF)
4.4 NET_DEVICE结构分析
4.5 数据包传送与接收
4.6 网络驱动的中断处理
4.7 网络设备驱动程序的基本实现
【实验】
1、了解网络设备驱动中常用的数据结构
2、分析网络驱动程序结构
3、编写简单的虚拟以太网卡驱动程序
4、移植并编写CS8900A网卡驱动程序
5、移植并编写DM9000网卡驱动程序
6、配置网络参数,测试网卡驱动程序行为