原创 LIINUX 应用,驱动技术开发培训进程间通信与字符设备开发嵌入式Linux开发环境搭建

2012-11-8 22:19 579 16 16 分类: 消费电子

 

LIINUX 应用,驱动技术开发培训

 

 

主办单位:中国电子标准协会http://www.ways.org.cn/

 

n 培训名称:LINUX应用与内核开发培训

n 培训周期:4天

n 课程目标:本课程采用理论教学与实验相结合的方式,系统地介绍嵌入式Linux下环境和程序开发技术。通过本课程的学习,学员可以掌握嵌入式Linux的环境搭建过程,具备Linux下进程、网络、GUI、数据库的开发方法,为产品开发打下坚实的基础。课程目标包括:
1)熟悉Linux操作系统具体操作
2)熟悉嵌入式Linux系统开发的整体流程
3)熟悉嵌入式Linux进程及进程间通信
4)熟悉Linux内核的构成原理

5) 理解Linux驱动的基本构成,可以编写不同类型的内核驱动

n 培训内容:

时间

课程大纲

第一天

9:00
|
12:00

1 嵌入式Linux开发环境搭建
目标:通过今天课程的学习,学员能掌握嵌入式Linux的开发流程,掌握诸如tftp、nfs等Linux下服务器的配置方法,为嵌入式Linux的高效开发做铺垫。
1.1 建立嵌入式LINUX开发环境
1.2 熟悉嵌入式开发平台
1.3 嵌入式LINUX开发工具
1.4 Linux系统下的GDB调试

1.5 远程目标板环境调试

1.6 图形化调试,介绍DDD,以Eclipse为例
1.7 MAKE工程管理器
1.8 交叉编译,以及编译结果的烧写

13:00
|
16:00

【实验】
1、学习LINUX系统命令
3、配置NFS服务
4、建立嵌入式开发环境
5、下载内核到嵌入式平台
6、下载根文件系统
7、编写并下载应用程序到嵌入式平台

第二天

学习目标

目标:通过今天课程的学习,学员将了解到Linux系统中的进程的概念,从内核的角度了解进程的原理和实现。同时会掌握Linux下守护进程的编写方法,了解Linux下几种进程间通讯的方法,并具备编写进程间通讯编程的能力。

在了解完Linux上的进程间通讯方式之后,开始学习Linux字符设备的编程技巧。

9:00
|
12:00

2 进程间通信与字符设备开发
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:00
|
16:00

1. LINUX字符设备驱动程序开发
1.1 LINUX字符设备驱动基础
1.2 字符设备驱动程序实现框架与典型驱动分析
1.3 用户空间与内核空间的数据传输 (重点)
1.4 同步、互斥、阻塞、睡眠机制
1.5 Linux-2.6设备模型与sysfs文件系统(重点)
1.6 udev与devfs文件系统(重点)

第三天

学习目标

通过本课学习,学员可以掌握在基本字符设备驱动的基础上增加复杂的内核机制;了解1inux内核中断子系统的实现原理,掌握linux中断处理程序编写方法;掌握内核延时机制及内存管理机制。

9:00
|
12:00

2. 设备驱动中常用的内核机制
2.1 Poll和select操作
2.2 异步通知机制
2.3 1inux内核中断子系统
2.4 中断处理程序编写
2.5 驱动程序上/下半部处理与延缓执行机制
2.6 内核定时器与延迟机制
2.7 内核内存管理机制

13:00
|
16:00

【实验】
1、编写驱动实现包含等待队列、信号量、fifo等功能
2、编写驱动实现包含poll功能
3、编写驱动实现包含异步通知功能
4、编写秒表字符设备,掌握定时器用法
5、编写驱动实现tasklet功能
6、编写驱动实现工作队列功能
7、按键中断实验
8、A/D转换实验

第四天

学习目标

网络设备是嵌入式产品开发,特别是基于网络的产品开发中最重要的内容之一。通过本课学习,学员可以深入理解Linux网络驱动程序中套接字缓冲区(sk_buff)等概念,了解Linux内核里网络协议栈的交互原理。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。了解MMC/SD卡的物理及电气特性,熟悉相关的工作协议,并在此基础上能够移植或编写Linux下的PCI-E网卡驱动

9:00
|
12:00

4. LINUX网络设备驱动程序开发

4.1 Linux里的设备驱动框架
4.2 PCI-E的设备驱动框架整体结构

4.3 PCI-E Constroller驱动与设备的
4.4 PCI-E的设备端驱动
4.5 套接字缓冲区(SK_BUFF)
4.6 NET_DEVICE结构分析
4.7 数据包传送与接收
4.8 网络驱动的中断处理
4.9 网络设备驱动程序的基本实现

4.10 与PCI-E对应的网络设备驱动的注意点

13:00
|
16:00

【实验】

(请集中在基于PCIe的网卡驱动)
1、编写简单的虚拟以太网卡驱动程序
2、在VirtualBox里编写运行简单的Intel E1000驱动将相应的PCI网卡
3、配置网络参数,测试网卡驱动程序行为

 

 

 

LIINUX 应用,驱动技术开发培训

 

点击次数:112  发表时间:2012-9-7 9:13:47  

n 培训名称:LINUX应用与内核开发培训

n 培训周期:4天

n 课程目标:本课程采用理论教学与实验相结合的方式,系统地介绍嵌入式Linux下环境和程序开发技术。通过本课程的学习,学员可以掌握嵌入式Linux的环境搭建过程,具备Linux下进程、网络、GUI、数据库的开发方法,为产品开发打下坚实的基础。课程目标包括:
1)熟悉Linux操作系统具体操作
2)熟悉嵌入式Linux系统开发的整体流程
3)熟悉嵌入式Linux进程及进程间通信
4)熟悉Linux内核的构成原理

5) 理解Linux驱动的基本构成,可以编写不同类型的内核驱动

n 培训内容:

时间

课程大纲

第一天

9:00
|
12:00

1 嵌入式Linux开发环境搭建
目标:通过今天课程的学习,学员能掌握嵌入式Linux的开发流程,掌握诸如tftp、nfs等Linux下服务器的配置方法,为嵌入式Linux的高效开发做铺垫。
1.1 建立嵌入式LINUX开发环境
1.2 熟悉嵌入式开发平台
1.3 嵌入式LINUX开发工具
1.4 Linux系统下的GDB调试

1.5 远程目标板环境调试

1.6 图形化调试,介绍DDD,以Eclipse为例
1.7 MAKE工程管理器
1.8 交叉编译,以及编译结果的烧写

13:00
|
16:00

【实验】
1、学习LINUX系统命令
3、配置NFS服务
4、建立嵌入式开发环境
5、下载内核到嵌入式平台
6、下载根文件系统
7、编写并下载应用程序到嵌入式平台

第二天

学习目标

目标:通过今天课程的学习,学员将了解到Linux系统中的进程的概念,从内核的角度了解进程的原理和实现。同时会掌握Linux下守护进程的编写方法,了解Linux下几种进程间通讯的方法,并具备编写进程间通讯编程的能力。

在了解完Linux上的进程间通讯方式之后,开始学习Linux字符设备的编程技巧。

9:00
|
12:00

2 进程间通信与字符设备开发
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:00
|
16:00

1. LINUX字符设备驱动程序开发
1.1 LINUX字符设备驱动基础
1.2 字符设备驱动程序实现框架与典型驱动分析
1.3 用户空间与内核空间的数据传输 (重点)
1.4 同步、互斥、阻塞、睡眠机制
1.5 Linux-2.6设备模型与sysfs文件系统(重点)
1.6 udev与devfs文件系统(重点)

第三天

学习目标

通过本课学习,学员可以掌握在基本字符设备驱动的基础上增加复杂的内核机制;了解1inux内核中断子系统的实现原理,掌握linux中断处理程序编写方法;掌握内核延时机制及内存管理机制。

9:00
|
12:00

2. 设备驱动中常用的内核机制
2.1 Poll和select操作
2.2 异步通知机制
2.3 1inux内核中断子系统
2.4 中断处理程序编写
2.5 驱动程序上/下半部处理与延缓执行机制
2.6 内核定时器与延迟机制
2.7 内核内存管理机制

13:00
|
16:00

【实验】
1、编写驱动实现包含等待队列、信号量、fifo等功能
2、编写驱动实现包含poll功能
3、编写驱动实现包含异步通知功能
4、编写秒表字符设备,掌握定时器用法
5、编写驱动实现tasklet功能
6、编写驱动实现工作队列功能
7、按键中断实验
8、A/D转换实验

第四天

学习目标

网络设备是嵌入式产品开发,特别是基于网络的产品开发中最重要的内容之一。通过本课学习,学员可以深入理解Linux网络驱动程序中套接字缓冲区(sk_buff)等概念,了解Linux内核里网络协议栈的交互原理。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。了解MMC/SD卡的物理及电气特性,熟悉相关的工作协议,并在此基础上能够移植或编写Linux下的PCI-E网卡驱动

9:00
|
12:00

4. LINUX网络设备驱动程序开发

4.1 Linux里的设备驱动框架
4.2 PCI-E的设备驱动框架整体结构

4.3 PCI-E Constroller驱动与设备的
4.4 PCI-E的设备端驱动
4.5 套接字缓冲区(SK_BUFF)
4.6 NET_DEVICE结构分析
4.7 数据包传送与接收
4.8 网络驱动的中断处理
4.9 网络设备驱动程序的基本实现

4.10 与PCI-E对应的网络设备驱动的注意点

13:00
|
16:00

【实验】

(请集中在基于PCIe的网卡驱动)
1、编写简单的虚拟以太网卡驱动程序
2、在VirtualBox里编写运行简单的Intel E1000驱动将相应的PCI网卡
3、配置网络参数,测试网卡驱动程序行为

 

 

       
 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条