Embedded Operating System

Spring 2009


  • Teaching assistant: ??
  • email:
  • phone number: 
  • project homepage:
  • project time(暂定为):
  • 理论课用幻灯片
  • 上机作业
  • 参考书

  • 考试安排:4月25日上午9点半~11点半,考试教室安排将会在25日早9点将在软件学院楼下贴出

    Introduction

    详细介绍嵌入式开发流程、搭建交叉开发环境、GNU tools的使用、BootLoader的原理、嵌入式操作系统的编译配置等并通过大量实例演示使学生迅速掌握嵌入式操作系统及其应用相关的编程方法。
    结合实际的嵌入式操作系统,详细分析嵌入式操作系统的内核关键模块,使同学了解嵌入式操作系统的内部构造、掌握嵌入式操作系统关键技术。

    Prerequisites

    1. Principles of Operating System
    2. Principles of Computer Organization
    3. Principles of Compilation

    Text & Reference Books & webpages

    1. Buliding Embedded Linux Systems, by Karim Yaghmour (O'reilly), April 3003.
    2. 嵌入式系统设计与实例开发——基于ARM微处理器与μC/OS-Ⅱ实时操作系统(超星),王田苗主编,清华大学出版社,2002年9月第一版,2003年第二版
    3. 源码开放的嵌入式系统软件分析与实践——基于SkyEye和ARM开发平台,陈渝等编著,北航出版社,2004.9。
    4. 网络监控系统原理与应用
    5. 嵌入式系统设计,骆丽译,北航出版社,2004.9
    6. Understanding the Linux Kernel (O'reilly)
    7. The Linux Development Platform
    8. Linux From Scratch
    9. HOWTO for setting up a Cross Development Environment on Debian GNU/Linux
    10. GNU ARM
    11. Linux VOODOO

    软件及其安装


    Project


    Project1:嵌入式操作系统调研

    • 通过各种网络资源,了解目前在嵌入式各个领域中占据主要市场的嵌入式操作系统有哪些(要给出出处,参考文献等)
    • 选择你感兴趣的某个领域,举例说明这个领域(或某项产品)对嵌入式操作系统的需求有哪些?举例说明某个嵌入式操作系统是如何满足这些需求的。
    • 了解目前,嵌入式专业相关的工作有哪些?需要哪些技术积累?

    • 给出调研报告

    Project2:基于Arm的linux的启动分析

    • 首先进行Makefile的分析
      • 获知不同的启动方案
      • 获知典型启动方案的代码结构
    • 选择一种启动方案,进行基于arm的Linux的启动分析
    • 分析直到调用start_kernel为止

    • 给出分析报告

    Project3:在skyeye中运行u-boot

    • 安装交叉编译器
    • 安装skyeye
    • 编译u-boot
    • 在skyeye中运行u-boot
    • 提交实验报告
      • 在实验报告中给出步骤
      • 安装软件的版本
      • 编译u-boot的命令
      • 运行u-boot的界面

    Project4: rtems-4.0.0源代码分析

    在RTEMS-4.0.0中,选择下列任一模块加以分析:
    1. 内存管理模块,包括:
      • Heap内存管理算法
      • Partition管理器
      • 理清楚workspace、region、malloc之间的关系
    2. 任务管理模块,包括:
      • Score中的thread管理、thread队列、优先级管理
      • Rtems中的rtems task
      • 以及它们各自对外的接口
    3. 任务间同步机制,包括
      • Score和rtems中的信号量、互斥信号量以及它们之间的关系
      • 掌握防止优先级翻转的优先级继承、优先级置顶协议
    4. 系统初始化
      • 基于x86的rtems的初始化
      • 了解hello任务是如何得到执行的

    Project5: 基于ARM的Linux 2.6中断、异常、系统调用处理分析

    1. arm的硬件中断机制
    2. linux对arm中断向量表的初始化
    3. linux对arm中断、异常的处理(提示:从汇编-->C语言函数;asm_do_IRQ)
    4. 以上可以以一个中断或一个异常或一个系统调用来进行举例说明

    Project6: Linux2.6下的虚拟字符驱动

    1. 模拟一个字符设备,提供字符设备驱动
    2. 在Linux 2.6环境中,动态加载虚拟字符驱动模块
    3. 编写一个应用程序,对虚拟字符设备驱动进行读写
    4. 课堂举例的参考

    理论课用的幻灯片


    考试部分参考资料


    各类资源

  • 参见链接

  • Edited by xlanchen@ustc.edu.cn
    Embedded Operating Systems Spring 2007