Chinaunix首页 | 论坛 | 博客
  • 博客访问: 268218
  • 博文数量: 62
  • 博客积分: 1912
  • 博客等级: 上尉
  • 技术积分: 747
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-13 12:56
文章分类
文章存档

2014年(2)

2013年(1)

2012年(5)

2011年(27)

2010年(27)

分类: 嵌入式

2010-05-26 21:47:38

嵌入式Linux应用开发:
1 嵌入式Linux开发环境搭建
1.1 嵌入式LINUX简介与发展
      1.2 LINUX快速入门
      1.3 建立嵌入式LINUX开发环境
      1.4 熟悉嵌入式开发平台
      1.5 嵌入式LINUX开发工具
      1.6 LINUX下的调试技巧
      1.7 MAKE工程管理器
      1.8 交叉编译
1、学习LINUX系统命令
      2、配置TFTP服务
      3、配置NFS服务
      4、建立嵌入式开发环境
      5、下载内核到嵌入式平台
      6、下载根文件系统
      7、编写并下载应用程序到嵌入式平台
2 嵌入式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) 2.1 进程的属性和状态
      MEMORY)
3 嵌入式Linux下的网络开发
 3.1 ISO/OSI七层协议模型与IP网络四层模式
      3.2 TCP/IP协议簇
      3.3 基于嵌入式LINUX的TCP/IP网络结构
      3.4 基于嵌入式LINUX的SOCKET编程
      3.5 UDP与TCP的区别
      3.6 UDP SERVER-CLIENT关系程
1、SOCKET套接字编程
      2、分析并加强PING程序
      3、TFTP服务器设计
4 嵌入式GUI与数据库开发
4.1 嵌入式LINUX GUI介绍及QT/MINIGUI之间比较
      4.2 QT介绍及其信号插槽机制
      4.3 QT图形界面编程技术
      4.4 QVFB虚拟帧缓存的建立和模拟开发调试
      4.5 QT程序移植技术
      4.6 QT在实际项目中具体应用
      4.7 嵌入式数据库的概念
      4.8 嵌入式数据库的移植与编程
1、基于QT实现HELLO WORLD对话框程序
      2、建立主机虚拟帧缓存实验
      3、基于QT图形界面的温度计的实现
嵌入式Linux系统开发
1 嵌入式Linux开发环境构建
(1) 安装开发工具和文件
      (2) 配置超级终端/minicom
      (3) 配置TFTP网络服务
      (4) 配置NFS网络服务
      (5) 引导目标板启动Linux内核
      (6) 制作crosstool交叉工具链
      (7) 交叉调试应用程序
2 开发系统引导程序
2.1 Bootloader介绍
      2.2 u-boot工程介绍
      2.3 u-boot的编译使用
      2.4 u-boot源码分析
      2.5 u-boot资源分配
      2.6 u-boot移植过程
(1) u-boot常用命令
      (2) 添加u-boot新命令
      (3) 设置u-boot环境变量
      (4) 配置编译u-boot
      (5) 移植FS2410的u-boot-1.3.4
            ● 支持网卡、串口功能
            ● 支持从nor、nandflash启动
            ● 支持nor、nandflash烧写
            ● 支持yaffs2、jffs2文件系统烧写
            ● 支持u盘文件读取
3 配置编译Linux内核
3.1 Linux内核介绍
      3.2 Linux内核特点
      3.3 Linux内核源代码结构
      3.4 Linux内核选项解析
      3.5 Linux内核编译链接
      3.6 内核模块编译、使用方法
1) 配置交叉开发环境
      (2) 熟悉菜单配置文件的组织结构
      (3) 熟悉内核配置过程选项
      (4) 加入Kconfig新选项
      (5) 编译交叉开发环境所需要的内核
      (6) 在内核中加入自己的字符设备程序
4 移植Linux内核源码
4.1 Linux内核移植介绍
      4.2 Linux内核移植平台相关代码分析
      4.3 动手修改Linux内核源代码
      4.4 分析编译过程错误和宏定义的关系
      4.5 Linux启动过程源代码分析
      4.6 2.6内核平台设备结构介绍
(1) 配置编译高版本的Linux内核
      (2) 移植高版本(linux-2.6.26)内核支持FS2410板
            ● 网卡驱动移植
            ● mtd支持及flash分区方法
            ● yaffs2文件系统移植
            ● sd卡驱动
            ● 液晶支持
            ● u盘功能
      (3) 分析解决编译过程中的错误

5 集成部署Linux系统

      5.1 Linux文件系统制作
      5.2 Linux系统集成测试
      5.3 文件系统和存储设备的选择
      5.4 部署Ramdisk文件系统的过程
      5.5 部署JFFS2文件系统的过程
      5.6 部署Yaffs2文件系统的过程
(1) 制作最小的文件系统
      (2) 添加udev支持
      (3) 部署ramdisk文件系统
      (4) 部署cramfs文件系统
      (5) 部署jffs2文件系统
      (6) 部署yaffs2文件系统
      (7) 配置u-boot使系统独立运行
6 调试Linux内核及优化linux内核

6.1 Linux内核调试概述
      6.2 Linux内核的打印函数
      6.3 Linux内核启动过程错误分析
      6.4 解析oops信息
      6.5 常用调试方法和工具
      6.6 基本的驱动程序分析
      6.7 系统启动时间优化
      6.8 电源管理方法
            ● 动态、静态功耗介绍
            ● 嵌入式处理器对电源管理的支持
            ● 嵌入式linux电源管理结构
            ● 用户层电源管理策略
            ● 设备驱动层电源管理策略
(1) 通过基本调试手段解决内核启动过程错误
      (2) 分析、处理oops错误
      (3) 优化系统,加快系统启动速度
      (4) 优化系统,降低系统功耗

嵌入式Linux驱动开发

 

   ◆ 熟练使用Linux操作系统,如学员具有一定的Linux内核阅读经验,效果会更好;
        ◆ 熟悉C语言,熟悉指针、结构体等概念;
        ◆ 了解接口电路和数字电路的知识,最好具有电路设计经验。

1. LINUX字符设备驱动程序开发

1.1 LINUX字符设备驱动基础
    1.2 字符设备驱动程序实现框架与典型驱动分析
    1.3 用户空间与内核空间的数据传输
    1.4 同步、互斥、阻塞、睡眠机制
    1.5 Linux-2.6设备模型与sysfs文件系统
    1.6 udev与devfs文件系统
1、驱动开发编程环境与内核配置、编译
    2、编写模块化字符设备驱动程序与测试
    3、如何为内核程序传递参数
    4、在驱动代码中加入创建proc结点方法
    5、蜂鸣器驱动程序编写与测试
    6、编写驱动实现包含等待队列、信号量、fifo等功能
    7、学会利用udev和sysfs文件系统动态创建设备结点

2. 设备驱动中常用的内核机制
    2.1 Poll和select操作
    2.2 异步通知机制
    2.3 1inux内核中断子系统
    2.4 中断处理程序编写
    2.5 驱动程序上/下半部处理与延缓执行机制
    2.6 内核定时器与延迟机制
    2.7 内核内存管理机制
1、编写驱动实现包含等待队列、信号量、fifo等功能
    2、编写驱动实现包含poll功能
    3、编写驱动实现包含异步通知功能
    4、编写秒表字符设备,掌握定时器用法
    5、编写驱动实现tasklet功能
    6、编写驱动实现工作队列功能
    7、按键中断实验
    8、A/D转换实验

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、移植嵌入式文件系统

4. LINUX网络设备驱动程序开发
    4.1 OSI网络参考模型
    4.2 套接字(SOCKET)简介
    4.3 套接字缓冲区(SK_BUFF)
    4.4 NET_DEVICE结构分析
    4.5 数据包传送与接收
    4.6 网络驱动的中断处理
    4.7 网络设备驱动程序的基本实现
5. LINUX下MMC/SD卡驱动开发
    5.1 嵌入式系统中几种常见存储介质的比较(NOR/NAND FLASH、CF、MMC/SD)
    5.2 MMC/SD卡物理及电气规范简介
    5.3 MMC/SD卡工作中的关键命令及关键结构信息
    5.4 S3C2410(S3C2440)中MMC/SDHOST控制器分析
    5.5 LINUX中MMC/SD存储卡驱动程序结构分析
    5.6 S3C2410(S3C2440)中MMC/SD HOST控制器的驱动实现

 1、编写简单的虚拟以太网卡驱动程序
    2、移植并编写CS8900A网卡驱动程序
    3、移植并编写DM9000网卡驱动程序
    4、配置网络参数,测试网卡驱动程序行为
    5、MMC/SD协议分析
    6、在LINUX源码中加入针对ARM平台的MMC/SD主控制器驱动的支持
 

6. LINUX帧缓冲驱动程序开发
    6.1 帧缓冲显示技术
    6.2 帧缓冲驱动程序显示原理
    6.3 帧缓冲驱动程序的数据结构
    6.4 帧缓冲驱动程序的API
    6.5 帧缓冲驱动程序的基本实现
    6.6 使用高级图形库
7. 触摸屏驱动开发
    7.1 触摸屏工作原理
    7.2 S3C2410触摸屏控制器工作原理
    7.3 触摸屏驱动程序编写

1、熟悉FRAMEBUFFER驱动的结构
    2、熟悉FRAMEBUFFER中的重要数据结构
    3、编写S3C2410彩色LCD控制器驱动程序
    4、编写测试程序控制屏幕显示
    5、编译高级图形库例子,显示图形
    6、熟悉触屏驱动程序
    7、写触屏测试代码
 

8. LINUX下USB驱动开发基础
    8.1 USB规范介绍
    8.2 USB主机控制器
    8.3 USB HUB
    8.4 USB设备状态
    8.5 USB描述符
    8.6 USB请求
    8.7 USB通讯数据格式
    8.8 S3C2410 USB device控制器
    8.9 编写usbtransfer固件程序
9. LINUX下USB驱动高级开发
    9.1 Linux USB驱动层次
    9.2 Linux USB主机控制器驱动介绍
    9.3 Linux USB HUB驱动介绍
    9.4 Linux USB 设备驱动程序
    9.5 编写usbtransfer设备驱动程序
    9.6 编写usbtransfer设备应用程序

 1、在开发板上烧写并测试USB固件程序
    2、usbtransfer固件程序分析与编写
    3、使用usbview工具观察USB设备
    4、使用sysfs分析USB层次结构
    5、LINUX下编写usbtransfer设备驱动实现USB下载

阅读(1067) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~