基于ARM平台的嵌入式操作系统设计

基于ARM平台的嵌入式操作系统设计

论文摘要

嵌入式操作系统是操作系统领域里的一个重要分支,其应用遍及工业控制、通信系统、无线系统等各个领域。随着微处理器的发展,限制嵌入式系统发展的瓶颈主要体现在软件方面。本文在Linux的基础上,深入研究了内核原理及嵌入式操作系统的基本功能,设计实现了一个小型的嵌入式实时操作系统内核Migix-Kernel。具体工作包括:内存管理:一般Linux都会用虚拟存储器技术来提供更多的内存空间,在计算机系统中提供的内存空间要比实际使用的物理内存大很多。可以在写程序时能够使工作人员不需要考虑计算机物理内存的实际容量大小。但这需要磁盘I/O操作,导致耗费大量cpu时间。为了减少cpu时间占用,设计Migix时,我们使用了flat模型。也就是说Migix的cpu没有虚拟内存机制、内存地址转换机制和内存保护机制,Migix中所使用的都是直接物理地址。中断系统:在不同的硬件结构中,通常有不同的中断源和不同的中断装置,但它们有一个共性:即当中断事件发生后,中断处理装置能改变处理器内操作执行的顺序,可见中断是现代操作系统实现并发性的基础之一。ARM处理器每个异常中断对应一条跳转指令或者向PC寄存器赋值的数据访问指令。理论上可以通过这两种指令直接使得程序跳转到对应的中断处理程序中去。但实际上由于函数地址值为未知和其它一些问题,这么做并不恰当。在具体实现时,设置一个中断向量表并将其地址固定化,即所有的程序地址是固定的,这样在中断发生后,解析程序能够自动找到向量表。中断向量表的内容是可以修改的,程序员可以向中断向量表中添入正确的目标地址,就可以将上层中断处理程序和底层硬件联系起来。进程调度:对于实现硬实时的进程调度策略,现行的Linux操作系统存在进程转换时间长、不能中断代码的关键部分等不足。为了克服以上所述的不足,进程调度策略采用如下设计方法:将内核分为两个部分,一部分用来完成与实时相关的工作,称为RTLKerne(lReal Time Linux Kernel),另一部分是普通的Linux内核。实时内核RTLKernel和普通内核NLKernel相互结合、缺一不可。实时内核可以设计得很简单,大部分的应用由普通Linux内核来完成。设备驱动:Linux设备驱动程序是内核的一部分,由于设备种类繁多、设备驱动程序也有许多种,为了能协调设备驱动程序和内核的开发,Linux的设备驱动定义了严格的外界接口。按照接口定义,Migix系统分别实现了驱动程序的注册与注销、设备的打开与释放、读写和控制设备、中断和轮询处理。TCP/IP协议栈:随着嵌入式系统的发展,近年来网络化的嵌入式系统逐渐成为嵌入式领域的研究热点。实现嵌入式系统网络化最基本条件或者前提是将TCP/IP协议栈加入到嵌入式系统中。TCP/IP协议栈是由多个协议组合而成的,根据协议栈的功能,在Migix系统中分别设计了ARP模块(实现IP地址与物理地址的关联)、IP模块(实现数据包的正确发送与接收)、ICMP模块(实现差错报告和纠正功能)和TCP模块(用有限状态机来实现TCP协议)来实现协议栈各个部分的功能。本文实现的Migix只是一个具有基本功能的、实验性的嵌入式系统,它还有很多不足和不完善的地方,如文件系统未实现、进程调度不稳定、没有图形界面等。这些不足也是我们今后工作的方向和重点。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 引言
  • 1.2 研究课题的意义
  • 1.3 本文的工作内容与目标
  • 第2章 嵌入式系统简介
  • 2.1 嵌入式系统概述
  • 2.2 ARM 技术简介
  • 2.3 嵌入式操作系统(EOS)介绍
  • 第3章 内存管理
  • 3.1 LINUX 内存管理概述
  • 3.2 MIGIX 的内存管理设计
  • 第4章 中断系统
  • 4.1 ARM 处理器异常中断处理
  • 4.2 MIGIX 中断系统的执行过程
  • 4.2.1 中断初始化的实现
  • 4.2.2 中断的处理过程实现
  • 第5章 进程调度
  • 5.1 几种经典的进程调度策略介绍
  • 5.2 典型的实时调度算法介绍
  • 5.3 LINUX 调度简介
  • 5.4 MIGIX 中硬实时进程调度的设计
  • 第6章 设备驱动
  • 6.1 LINUX 设备管理概述
  • 6.2 LINUX 设备驱动程序
  • 6.3 RTL8019AS 网卡驱动的实现
  • 第7章 TCP/IP 协议栈
  • 7.1 TCP/IP 协议的简介
  • 7.2 TCP/IP 协议的简单实现
  • 7.2.1 TCP/IP 协议栈的设计
  • 7.2.2 IP 层收发函数的实现
  • 第8章 开发环境介绍及编译运行环境
  • 8.1 开发环境介绍
  • 8.2 MIGIX 的组织结构
  • 8.3 编译运行过程
  • 8.3.1 创建交叉编译环境
  • 8.3.2 编译源代码
  • 8.3.3 运行Migix
  • 第9章 结束语
  • 9.1 总结
  • 9.2 展望
  • 参考文献
  • 致谢
  • 导师及作者简介
  • 相关论文文献

    • [1].一种快速开发硬件设备驱动程序的方法[J]. 雷达与对抗 2010(04)
    • [2].EPON系统中ONU设备驱动程序的设计与实现[J]. 数字通信 2010(06)
    • [3].加密存储设备驱动程序的优化设计[J]. 软件导刊 2010(02)
    • [4].新系统装驱动不用费心思[J]. 电脑爱好者 2009(17)
    • [5].基于Linux的设备驱动程序的加载方法[J]. 信息通信 2008(03)
    • [6].基于ARM的ucLinux系统网络设备驱动程序的设计及应用[J]. 科技信息(学术研究) 2008(21)
    • [7].USB设备驱动程序的研究与开发[J]. 电子元器件应用 2010(11)
    • [8].嵌入式Linux下字符型设备驱动程序的开发[J]. 延边教育学院学报 2008(01)
    • [9].嵌入式Linux帧缓冲设备驱动程序[J]. 计算机系统应用 2010(12)
    • [10].嵌入式下Linux系统设备驱动程序的开发[J]. 齐齐哈尔大学学报 2009(01)
    • [11].设备驱动程序在嵌入式Linux系统中的实现分析[J]. 廊坊师范学院学报(自然科学版) 2010(02)
    • [12].嵌入式Linux设备驱动程序框架的研究[J]. 核电子学与探测技术 2011(02)
    • [13].基于WinDriver的ISA设备驱动开发[J]. 科技信息 2010(11)
    • [14].USB设备驱动程序的实现[J]. 网络财富 2008(12)
    • [15].Windows ce驱动程序设计[J]. 电脑开发与应用 2008(07)
    • [16].嵌入式Linux设备驱动程序的开发研究[J]. 计算机与数字工程 2009(02)
    • [17].USB总线数据采集设备驱动程序的设计[J]. 国外电子测量技术 2009(12)
    • [18].嵌入式Linux下USB主设备驱动程序的实现[J]. 网络安全技术与应用 2009(06)
    • [19].基于嵌入式Linux系统的高速设备驱动程序实现[J]. 微计算机信息 2008(08)
    • [20].基于uCLinux的USB设备驱动程序[J]. 常熟理工学院学报 2008(02)
    • [21].Linux系统PCI设备驱动程序的实现方法[J]. 中国高新技术企业 2008(15)
    • [22].基于嵌入式操作系统的USB设备驱动程序的开发研究[J]. 数码世界 2020(07)
    • [23].基于嵌入式Linux的中断驱动程序设计[J]. 电子科技 2009(10)
    • [24].开发WDM型USB设备驱动程序[J]. 微处理机 2008(02)
    • [25].Linux设备驱动程序自动更新及辅助工具[J]. 计算机系统应用 2018(07)
    • [26].Windows CE设备驱动程序开发[J]. 通讯世界 2016(09)
    • [27].基于IRP的Windows设备驱动程序文件操作的实现[J]. 四川理工学院学报(自然科学版) 2010(01)
    • [28].基于WDM的I/O设备驱动程序的设计研究[J]. 电脑知识与技术 2009(33)
    • [29].嵌入式Linux设备驱动程序设计方法[J]. 仪器仪表用户 2008(02)
    • [30].嵌入式linux设备驱动程序的开发与应用[J]. 电子世界 2014(16)

    标签:;  

    基于ARM平台的嵌入式操作系统设计
    下载Doc文档

    猜你喜欢