当前位置:首页>> >>


Contiki微操作系统的跨平台编译运行与调度系统研发.rar

收藏

资源目录
    文档预览:
    编号:20181016172933687    类型:共享资源    大小:65.61MB    格式:RAR    上传时间:2018-10-16
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    50
    金币
    关 键 词:
    Contiki 操作系统 平台 编译 运行 调度 系统 研发
    资源描述:
    本 科 毕 业 设 计 ( 论 文 )题目:Contiki 微操作系统的跨平台编译运行与调度系统研发学 院 电子与信息学院 专 业 信息工程 学生姓名 夏 俊 学生学号 201030274458 指导教师 陆以勤 提交日期 2014 年 6 月 1 日 - 摘 要Contiki 微操作系统作为一种小型的,开源的,极易移植的微操作系统,在物联网日益发展的今天,因为它多平台特定设备工作实现 6LoWPAN 功能,它的 RFC 兼容TCP/IP 堆栈功能,提供支持给 6LoWPAN 和很多关联标准,因此被广泛地用于无线网络传感器。本文主要详细地介绍了 Contiki 微操作系统移植到 stm32/arm 平台及安卓虚拟机的原理及过程,并且开发出来简单的 Contiki 系统调度程序,这对于 Contiki 系统的多平台运行有重要的意义。本文先简单地介绍了 Contiki 操作系统的特点,并对 Contiki 系统架构及源代码做了研究分析,而后介绍了 Contiki 的移植原理,移植涉及的源文件以及交叉编译工具链的建立与使用,并把 Contiki 系统移植到 stm32 及 arm 安卓模拟器上,最后进行了对Contiki 系统在 Linux 上的简单调度。从实验结果以及截图可知实现了 Contiki 系统在 stm32 和安卓虚拟机的跨平台运行,验证了移植方法的可行性,并且实现了 Contiki 系统的简单系统调度,一定程度上解决了题目的要求。关键词:Contiki 微操作系统;stm32;安卓虚拟机;移植;跨平台运行;系统调度- IAbstractMicro Contiki operating system as a small, open source, easy to transplant micro operating system, in growing things today, because it is more work to achieve a specific device platform 6LoWPAN functionality , its RFC -compliant TCP / IP stack functions provide support for 6LoWPAN and many related standards, which is widely used in wireless sensor networks . This paper describes in detail the micro Contiki operating system to the principle and process stm32/arm platform , which for multi-platform systems running Contiki has important significance.This paper first briefly introduces the Contiki operating system features , and Contiki system architecture and source code analysis done , and then introduces the principle of Contiki transplant , and the Contiki system and arm stm32 transplanted to Andorid simulator , and finally the Contiki on Linux system on a simple scheduling.From the experimental results and the screenshot shows the system to achieve a Contiki Android in stm32 and run cross-platform virtual machine to verify the feasibility of transplantation , and to achieve a simple system Contiki scheduling system , to a certain extent to solve the requirements of the subject .Keyword: MicroContiki operating system; stm32; Android virtual machine; transplantation; cross-platform operation; system scheduler- II目 录 摘 要........................................................................................................................................ I Abstract .....................................................................................................................................II第一章 绪 论 .............................................................................................................................11.1 Contiki 微操作系统的介绍 ........................................................................................11.2 课题的国内外发展现状 .............................................................................................11.3 课题研究主要目标及工作 .........................................................................................21.4 论文内容安排 .............................................................................................................2第二章 Contiki 移植技术的研究 .............................................................................................32.1 Contiki 微操作系统架构及源码架构的分析 ............................................................32.2 Contiki 移植平台的介绍 ............................................................................................42.3 Contiki 内部运作机制及移植原理的研究 ................................................................42.3.1 Contiki 主要数据结构 etimer 介绍 ...............................................................42.3.2 Contiki 移植的原理 ........................................................................................52.4 Contiki 在 Linux 平台试运行 ....................................................................................52.5 Contiki 移植方法的研究 ............................................................................................72.5.1 Stm32f103 子目录研究 ..................................................................................72.5.2 Stm32test 子目录研究 ....................................................................................82.6 本章小结 .....................................................................................................................8第三章 Contiki 在 stm32 平台的移植 .....................................................................................93.1 Contiki 移植所用硬件平台介绍 ................................................................................93.2 Contiki 移植涉及的源文件配置 ................................................................................93.3 Contiki 移植涉及的源文件分析 ..............................................................................103.3.1 关于移植的启动文件和链接文件的分析 ...................................................103.3.2 关于系统时钟的分析 ...................................................................................103.4 关于串口配置的分析 ...............................................................................................113.5 建立移植 stm32 用户任务 .......................................................................................123.6 本章小结 ...................................................................................................................13第四章 Contiki 跨平台运行技术的研究 ...............................................................................144.1 关于交叉编译的介绍 ...............................................................................................144.2 交叉编译工具链的建立 ...........................................................................................144.2.1 交叉编译器的介绍 .......................................................................................14- III4.2.2 交叉编译工具链的建立 ...............................................................................154.3 Makefile 的编写 .......................................................................................................164.4 编译及调试 ...............................................................................................................184.4.1 编译过程及问题 ...........................................................................................184.4.2 调试 ...............................................................................................................204.5 本章小结 ...................................................................................................................22第五章 Contiki 在安卓虚拟机的移植 ...................................................................................235.1 移植环境的搭建 .......................................................................................................235.2 移植 Contiki 到安卓模拟器 .....................................................................................245.3 本章小结 ...................................................................................................................26第六章 调度 Contiki 系统的研究 ..........................................................................................276.1 生成复制 Contiki 的 c 程序 .....................................................................................276.2 Contiki 的启动终止程序 ..........................................................................................286.3 本章小结 ...................................................................................................................29结 论 .........................................................................................................................................30致 谢.........................................................................................................................................31参考文献...................................................................................................................................32- 0第 1 章 绪 论1.1 Contiki 微操作系统的介绍 Contiki 微操作系统是一个小型的,开源的,极易移植的多任务电脑操作系统。它专门设计以适用于一系列的内存有限的网络系统,包括从 8 位电脑到微型控制器的嵌入系统,适用于联网嵌入式系统和无线传感器网络。Contiki 只需几 KB 的代码和几百字节的内存就能提供多任务环境和内建 TCP/IP 支持。Contiki 完全基于 C 语言开发、易于移植、支持大量的硬件平台和开发工具、事件驱动机制占用内存小、集成了多种无线传感器网络协议、无专利和版权费、集成仿真工具等特点和优势。Contiki 操作系统是基于事件驱动(Event - driven)内核的操作系统,在此内核上,应用程序可以在运行时动态加载,非常灵活。在事件驱动内核基础上,Contiki 实现了一种轻量级的名为 protothread 的线程模型,来实现线性的、类似于线程的编程风格。该模型类似于 Linux 和 windows 中线程的概念,多个线程共享同一个任务栈,从而减少 RAM 占用。Contiki 还提供一种可选的任务抢占机制、基于事件和消息传递的进程间通信机制。Contiki 中还包括一个可选的 GUI 子系统,可以提供对本地串口终端、基于 VNC 的网络化虚拟显示或者 Telnet 的图形化支持。Contiki 系统内部集成了两种类型的无线传感器网络协议栈:uIP 和 Rime。uIP 是一个小型的符合 RFC 规范的 TCP/IP 协议栈,使得 contiki 可以直接和 Internet 通信。uIP 包含了 IPv4 和 IPv6 两种协议栈版本,支持 TCP、UDP 、ICMP 等协议,但是编译时只能二选一,不可以同时使用。Rime 是一个轻量级为低功耗无线传感器网络设计的协议栈,该协议栈提供了大量的通信原语,能够实现从简单的一跳广播通信,到复杂的可靠多跳数据传输等通信功能。 1.2 课题的国内外发展现状目前,随着物联网的发展,基于 IPv6 的无线传感器网络的可行得到了一系列的标准,比如 6LoWPAN,是一种基于 IPv6 的低耗无线个人区域网络规格。Contiki 嵌入式操作系统是一个重要的开源系统,多平台特定设备工作实现 6LoWPAN 功能[1]。它的RFC 兼容 TCP/IP 堆栈功能,提供支持 6LoWPAN 和很多关联标准。同时,uIP 堆栈被整合进 Contiki 移植操作系统,也增强支持 IPv6(uIPv6)。另外,Contiki 操作系统包含了一个 RPL 路由协议的实现,相当于成熟的 6LoWPAN 支持(IPv6 数据包解压和压缩)。Contiki 已经被设计的以轻便为主,成功地用于多种硬件平台。Contiki 成为无线传感- 1器网络学术研究和产品开发的理想平台,在欧洲已经得到广泛应用,并逐渐得到其它地区开发人员的支持。随着物联网、无线传感器网络的发展,IP 地址将耗尽,骨干网络必将升级到 IPv6,因此 6LoWPAN 标准被越来越多的标准化组织所采纳,研发6LoWPAN 的人员将越来越多,这将使得 Contiki 很可能成为嵌入系统中的 Linux,在物联网领域得到广泛应用,发挥重要作用。1.3 课题研究主要目标及工作本文研究的主要目标是实现 Contiki 微操作系统在 STM32/ARM 的跨平台运行,使编译出来的代码能够传到 STM32/ARM 平台直接运行,并开发出能够复制、启动、中止 Contiki 微系统的 C/C++程序。要实现以上目标,需要搭建 ARM 平台 Android 虚拟机,搭建 x86 平台的 Ubuntu 虚拟机,建立起交叉编译工具链,编译 Contiki 微操作系统的移植程序,使在 Linux 编译的程序能够在 STM32/ARM 平台上直接运行,并且开发出能够复制、启动、中止 Contiki 微系统的 C/C++程序。1.4 论文内容安排本文主要研究了 Contiki 微操作系统在 stm32/arm 的跨平台运行,第一章绪论主要对 Contiki 微操作系统以及关于 Contiki 微操作系统的发展现状做简单的介绍,第二章介绍了 Contiki 移植的虚拟机平台,Contiki 移植技术的研究,关于 Contiki 微操作系统的系统结构及源码架构,了解 Contiki 系统的运行机制及主要数据结构 etimer,通过在Linux 平台运行任务来验证通过启动 etimer 进程来启动 Contiki 系统,第三章介绍了Contiki 移植的硬件开发平台,研究了 Contiki 移植涉及的源文件,对他们进行了配置和修改,以方便后面的编译,第四章主要研究了 Contiki 系统的跨平台技术,介绍了交叉编译工具链,makefile 的编写以及目标文件的编译调试,在 stm32 上运行的结果,第五章主要研究了 Contiki 系统在安卓虚拟机上的移植,第六章主要研究复制、启动、中止Contiki 微系统的 C 程序的开发,最后为总结结论,对课题的展望等。- 2第 2 章 Contiki 移植技术的研究2.1 Contiki 微操作系统架构及源码架构的分析Contiki 微操作系统架构为模块化架构,内核基于事件驱动模型,对每个单独的进程都提供可选的线程设施,每个应用程序都可以调用服务程序[2],Contiki 的系统模块化架构如图 2 - 1 所示。图 2 - 1 Contiki 系统模块化架构接下来对 Contiki 源代码进行分析,本文研究的 Contiki - 2.6 以例,打开 Contiki 源文件目录,可以看到主要有 apps、core、cpu、doc、examples、platform、tools 等目录。下面将分别对各个目录进行介绍[3]。Core:core 目录下是 Contiki 的核心源代码,包括网络(net) 、文件系统(cfs) 、外部设备(dev ) 、链接库( lib)等等,并且包含了时钟、 I/O、ELF 装载器、网络驱动等的抽象。- 3Cpu:cpu 目录下是 Contiki 目前支持的微处理器,例如 arm、avr 、msp430 等等。如果需要支持新的微处理器,可以在这里添加相应的源代码。Platform:platform 目录下是 Contiki 支持的硬件平台,例如mx231cc、micaz、sky、win32 等等。Contiki 的平台移植主要在这个目录下完成。这一部分的代码与相应的硬件平台相关。Apps:apps 目录下是一些应用程序,例如 ftp、shell、webserver 等等,在项目程序开发过程中可以直接使用。使用这些应用程序的方式为,在项目的 Makefile 中,定义APPS = [应用程序名称]。在以后的示例中会具体看到如何使用 apps。Examples:examples 目录下是针对不同平台的示例程序。Smeshlink 的示例程序也在其中。Doc:doc 目录是 Contiki 帮助文档目录,对 Contiki 应用程序开发很有参考价值。使用前需要先用 Doxygen 进行编译。Tools:tools 目录下是开发过程中常用的一些工具,例如 CFS 相关的 makefsdata、网络相关的 tunslip、模拟器 cooja 和 mspsim 等等。2.2 Contiki 移植平台的介绍本文移植选用的平台是在 virtualbox 里建立的 Linux 虚拟机,virtualbox 是一款虚拟机软件,可安装运行多种操作系统,在虚拟机下安装操作系统方便适用,运行虚拟机里的操作系统就相当于在电脑上安装了一款软件,而不必在电脑上安装需要的操作系统。Virtualbox 选用的版本为最新的 4.3.10.0,按照网上的教程安装,接着新建移植所需用到的 Linux 系统,Linux 系统选用的版本为 ubuntu-13.10-desktop-i386,ubuntu 是一个以桌面应用为主的 Linux 操作系统,基于 Debian GNU/Linux,支持 x86、amd64 (即x64)和 ppc 架构,下载镜像后按照网上教程安装 Linux 虚拟机,需要注意的是在分配内存和硬盘大小的时候最好分配大一点,内存大小会影响虚拟机运行速度,而硬盘大小如果在后面使用中发现过小的话会很难处理,所以尽量分配大一些。2.3 Contiki 内部运作机制及移植原理的研究2.3.1 Contiki 主要数据结构 etimer 介绍Contiki 采用事件驱动机制,要使 Contiki 系统运作起来,就需要产生事件,那怎么才能产生事件呢,答案只有两种,第一,通过时钟定时,定时事件到就产生一个事件;第二,通过某种中断,某个中断发生,就产生某个事件例如外部中断。- 4Etimer 是 Contiki 微操作系统 5 个定时器模型之一,etimer 提供一种 timer 机制产生 timer events,可以理解成 etimer 是 Contiki 特殊的一种事件[4]。当 etimer 到期时,会给相应的进程传递事件 PROCESS _ EVENT _ TIMER,从而使该进程启动,Contiki的 etimer 链表 timerlist 如图 2 - 2 所示。图 2 - 2 etimer 链表 timerlist2.3.2 Contiki 移植的原理所以移植的关键就是启动系统时钟,对应到 Contiki 进程就是启动 etimer 进程,但只启动一个 etimer 进程没有意思,所以加上一个 LED 闪烁进程,使用 etimer 来定时亮灭。所以综上,最原始的 Contiki 系统包含一个系统进程(只是比喻, Contiki 中进程不分系统与用户)etimer _ process,与一个用户进程 blink _ process。而 etimer _ process由 Contiki 系统提供,这里只需对系统时钟进行初始化并定时更新系统时钟(用户自定义 current _ clock) ,并判断 etimer 的下一个定时时刻是否已到(通过比较 current _ clock 与 etimer 的定时时刻来判定)如果时钟等待序列中有等待时钟的进程那么就调度etimer 进程执行,通过其来唤醒相关进程。2.4 Contiki 在 Linux 平台试运行先通过编译 Contiki 系统在 Linux 平台可运行程序,为移植做准备,验证通过启动etimer 进程来启动 Contiki 系统是否可行。新建文件夹 src 放置 Contiki 在 Linux 平台运行所需依赖文件,再通过编写 Makefile 链接编译所需头文件,各目录所含文件如表 2 - 1 所示。
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:Contiki微操作系统的跨平台编译运行与调度系统研发.rar
    链接地址:http://www.gold-doc.com/p-228702.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开