你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Adam Taylor玩转MicroZed系列42:MicroZed操作系统第4部分

发布者:jackzhang 时间:2014-09-27 20:13:26

作者:Adam Taylor

最近的几篇关于MicroZed系列的博客中我们介绍并了解了RTOS(实时操作系统)的概念,既然已经介绍了基本知识,是时候在MicroZed开发板 上实现运行我们的第一个操作系统。我们将使用Micrium公司的uC/OS-III RTOS(实时操作系统)。(注:Micrium公司的uC/OS-II实时操作系统被应用到好奇号火星车上,运行在火星车上的一个分析实验室中)。这篇 博客将会告诉你怎么获得工程模块并运行起来。

显然我们要做的第一步是从Micrium的网站下载uC/OS-III操作系统,你可以使用这个链接。一旦你下载好了安装文件,你只需要做的就是解压几个ZIP格式的压缩文件到正确的目录。目录选择为你的计算机中Xilinx工具集安装的目录。

将名字为Zynq-7000-ucosiii-bsp.zip的压缩包解压到\14.X\ISE_DS\EDK\sw\lib\bsp\. 这个目录下,你会发现一些别的类型的操作系统也在这个目录下,例如:standalone和 xilkernel。

下一步,解压Zynq-7000-ucosiii-demo.zip压缩文件到\14.X\ISE_DS\EDK\sw\lib\sw_apps\.这个目录下,同样你会看到一些其他的应用模块也存在于这个目录下。

安装完上面两个文件,我们将使用SDK创建一个工程,为了能这样做,我将使用前面几篇博客中使用到的同样的硬件工程文件。然而我们还需要为操作系统创建一个应用程序和一个BSP(板级支持包)文件 。

在SDK软件环境下,关闭所有工程文件出了你将要使用到了硬件工程设计文件,然后在菜单栏选择file -> new -> application project。给新建的工程命名然后选择操作系统,这里我们当然选择uC/Os-III操作系统。

点击选择next选择uC/OS-III demo应用,这一步将会导入操作系统所需的所有文件。

点击Finish然后上一步选择过得应用程序和BSP就会出现在SDK界面中,如果你设置了自动编译,你会看到编译的报告中出现一些错误,这些错误告诉你 不是所有的参考文件都是正确的,为了修改这些错误,我们需要导入参考模块的一些设置,点击菜单栏的Project选项选择setting。

右键选择XML文件,查看此文件的属性。按照下图所示复制XML文件的路径信息。

当你拷贝好文件的路径信息,右键选择所建立工程,选择properties选项,在C/C++ General扩展菜单下选择paths and symbol选项。然后选择导入设置信息,粘贴前面复制的文件的路径信息。

确保库文件的路径信息正确同样很重要,可以通过选择菜单栏的Tools-> Repositories检查库文件的路径信息,这个应该显示我们前面安装过的uC/Os-III BSP文件的路径信息。

我们需要借助UART串口输出这个演示模块的运行状态信息,显示何时完成初始化,显示正在运行的任务,因此我们需要在BSP的设置选项中设置下UART串口的stdin和stdout(标准输入和标准输出)。

当你完成了上面所有的操作,你应该可以编译你的工程。然而仍然会有些warning(警告)信息,如果这样你就尝试在Microzed开发板上运行这个工程,它的运行状态可能不是很正常,主要原因是我们没有声明一个函数
#include "xil_cache.h

在bsp.c文件中加入上面这句程序,重新编译就不会有警告信息了。

当我在程序中增加了上面的头文件,编译工程,就可在Microzed开发板上如我们所期望的那样运行了。

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了