时间
|
课程大纲
|
第一天
|
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条评论)
登录后参与讨论