zoukankan      html  css  js  c++  java
  • 嵌入式linux驱动开发班

    From:http://www.akaedu.org/pages/center11_qudong.html

     基 于Linux的嵌入式系统目前获得了广泛应用,在嵌入式Linux核心层的开发中,设备驱动的编写占据了大部分的工作量,能编写出真正可用的驱动程序存在 着很多技术要点,本课程的开设兼顾初学者和有一定开发经验人员的需要,通过对嵌入式Linux系统理论知识和实际代码分析相结合的方式,了解和学习目前在 嵌入式Linux驱动开发中比较重要的几项驱动和其框架结构,如块设备驱动程序框架,LCD Frambuffer,网络设备驱动,USB驱动等。通过大量精心设计的驱动实验,使学员真正掌握嵌入式系统驱动开发的关键技术。


    [培养对象]

      对Linux驱动设计及嵌入式系统开发有一定经验和兴趣的电子、通信、计算机、自动化等相关专业专科生、本科生及研究生,相关专业的技术工程师,开发人员。

    [基础要求]

      基本掌握C语言编程
      基本的Linux使用和应用程序编写基础
      具有数字电路、模拟电路的基础

    [推荐教材]

      《linux设备驱动(第三版)》


    [教学环境]

      ARM6410 (人手一块)
     






    [开课情况]




    [课程大纲]


    驱动开发课程大纲

    课程安排 课程内容
    理论课 1. Linux操作系统核心基础
        ◆ 调度,互斥量和锁等的实现原理
        ◆ 中断的上下部,定时器,内核线程
        ◆ 等待队列和工作队列,tasklet等
        ◆ Linux核心的内存管理(页面分配,slab,kmalloc,DMA内存)
        ◆ Linux设备管理模型和sysfs文件系统
    理论课 2. 驱动程序与模块概念
        ◆ Linux设备驱动的概念
        ◆ Platform device模型介绍
        ◆ 模块的概念
        ◆ 模块的构建、编译和加载
    理论课 3. 字符设备驱动程序
        ◆ 字符设备驱动程序概念
        ◆ 主设备号和次设备号
        ◆ fs_operation结构分析
        ◆ 驱动程序调试技术简单介绍
    实验课 第一部分 驱动基础实验
        实验一:模块的构建、编译和装载,hello world模块的实现
        实验二:Platform device模型实验
        实验三:GPIO按键实验——使用中断机制访问
    理论课 4. Linux块设备驱动程序开发
        ◆ Linux块设备驱动程序概要
        ◆ 块设备驱动程序的特点和工作原理
        ◆ 块设备驱动的设备文件接口概念
        ◆ 块设备驱动的文件系统接口概念
    5. Linux块设备驱动程序实现要素分析
        ◆ 块设备驱动的注册接口(register_blkdev等)
        ◆ 块设备驱动操作接口(open,release,ioctl等)
        ◆ 块设备驱动的request队列和request操作
    6. 块设备代码分析(vdisk.c)
        ◆ vdisk.c的注册接口
        ◆ vdisk.c的open,release,ioctl
        ◆ vdisk.c的request队列和request操作
    实验课 第二部分 块设备驱动实验
        实验一: 修改vdisk.c支持多个设备
        实验二: 在实验一基础上为vdisk.c添加字符设备接口实现
        (实现open,close,ioctl,read,write,lseek方法)
    理论课 7. 网络设备驱动程序开发
        网卡设备介绍
        ◆ 常见网卡
        ◆ 网卡芯片所实现的协议层功能
        ◆ cs8900网卡芯片手册导读
        ◆ cs8900网卡硬件电路分析
    8. Linux网络驱动结构
        ◆ Linux TCPIP网络结构概述
        ◆ Linux网络设备结构
    实验课 第三部分 字符设备驱动实验
        实验一:ifconfig等命令实验
        实验二:字符设备的网卡驱动实现(上)
        实验三:字符设备的网卡驱动实现(下)
        实验四:驱动的测试程序编写

    驱动高级研修大纲

    课程安排 课程内容
    理论课 1. Linux的input驱动
        * 嵌入式系统中的键盘和触摸笔硬件结构原理
        * Input子系统介绍
        * Input的事件和设备驱动框架结构
        * button代码分析
    实验课 第一部分 实验
        * 实验1:编写开发板下的button驱动
        * 实验2:利用开发板的蜂鸣器实现按键音
    理论课 2. Linux下的MTD驱动
        * Nor和NAND Flash硬件结构
        * Linux的MTD子系统
        * Yaffs文件系统和MTD子系统的结合
        * Nandsim驱动代码分析
    实验课 第二部分 实验
        * 实验1:配置和调试Nandsim驱动代码
        * 实验2:mtdutils工具的学习和使用
        * 实验3:Yaffs文件系统的烧写和配置
    理论课 3. LCD Framebuffer设备驱动程序开发
        * Framebuffer驱动程序原理,结构分析、及数据结构
        * Framebuffer驱动程序设计
    实验课 第三部分 实验
        *实验1:LCD Framebuffer——通过mmap操作fb设备
        *实验2:LCD Framebufferr——通过mmap显示图片
    理论课 4. Linux下的USB驱动
        * USB工作原理介绍
        * Linux的Host端驱动代码结构
        * Linux的device端驱动代码结构
        * usb 地址端点的使用
        * usb 四种传输类型及其作用
        * usb 协议实现及其详解
        * usb 设备即插即用过程
        * 驱动代码分析
    实验课 第四部分 实验
        * 实验1:学习使用Linux下的usb分析工具
        * 实验2:配置和实现Linux的cdc-acm驱动,
                 实现PC和开发板间的USB通信
        * 实验3:配置和实现Linux的mass_storage驱动,
                 实现将开发板配置为一个U盘
  • 相关阅读:
    MySQL优化点
    MySQL中lock tables和unlock tables浅析
    在深度计算框架MindSpore中如何对不持续的计算进行处理——对数据集进行一定epoch数量的训练后,进行其他工作处理,再返回来接着进行一定epoch数量的训练——单步计算
    Attributes should be specified via @SpringBootApplication
    base-package的路径不对,导致@Autowire提示trainingRepository错误。
    测试框架之-断言与预期结果 AssertJ
    无效的目标版本8 和 Unsupported major.minor version 52
    UML类图中箭头和线条的含义和用法
    苏宁乔新亮:世界上最好的研发管理十条经验
    4-8 路由实战
  • 原文地址:https://www.cnblogs.com/shenlian/p/2049447.html
Copyright © 2011-2022 走看看