说明:该指南将会使你熟悉niosIIIDE和MicroC/OS-II开发流程。niosIIIDE提供设计者一个充足的niosII开发平台。niosIIIDE包含MicroC/OS-II实时操作系统,为设计者提供快速地搭建基于niosII处理器的MicroC/OS-II应用程序的能力。该指南提供了搭建一个基于MicroC/OS-II实时操作系统的简单程序的步骤说明。基于niosII处理器的MicroC/OS-II操作系统的详细叙述请参阅theNiosIISoftwareDeveloper’sHandbook(niosII软件开发手册)的“MicroC/OS-IIReal-TimeOperatingSystem”(MicroC/OS-II实时操作系统)章节。硬件与软件:一下是该指南所需要的硬件与软件:需求:Quartus®II4.1版sp1或更高版本NiosII嵌入式处理器1.01版或更高版本niosII开发板Stratix™II版,Cyclone™版,Stratix版,或Stratix专业版altera的USB-Blaster™或ByteBlaster™下载电缆要完成该指南的全部功能,你必须安装NiosIIIDE并且将你的nios开发板与pc主机相连接,参见theNiosIIDevelopmentKitGettingStartedUserGuide。指南文件niosII开发包包含该设计向导。该硬件设计是标准参考设计,软件设计是一个NiosIIIDE模板。当你安装了niosII开发包后,你能发现设计文件在niosII开发包的目录引索中。硬件标准参考设计文件位于NiosIIkitpath\examples\verilogorvhdl\Niosdevelopmentboard\standarddirectory.MicroC/OS-II软件设计指南文件位于NiosIIkitpath\examples\software\ucosii_tutorialdirectory.你不需移动或复制这些软件文件,因为NiosIIIDE自动复制了它们到你的工作工程目录。HelloMicroC/OS-II设计你使用的该指南的设计示例是一个用于练习熟悉该操作系统一些基本特点的简单的设计。图1—1是一个简化的应用图表。图1-1TutorialExampleDesign在图1-1中展示的设计有五个活动的任务。send_task用增量数据(incrementingdata)填入消息队列(messagequeue)。receive_task1和receive_task2定时把消息从消息队列中取出。getsem_task1和getsem_task2竞争被一个信号机(semaphore)所保护的一个共享资源。这个设计也有两个任务没有被展现在图1-1中:一个初始化任务和一个显示状态信息任务。创建一个基于NIOSII处理器的MicroC/OS-II软件过程包含以下步骤:1.创建一个新的NiosIIIDE工程.2.设定NiosII软件工程库.3.建立并运行NiosII软件工程.这些步骤在接下来的章节中被详细描述.创建一个新的NiosIIIDE工程在这个章节中你将要使用一个软件模板来创建一个新的NiosIIIDE工程。执行以下步骤:1.选择ProgramsAlteraNiosIIDevelopmentKit版本号NiosIIIDE(Windows开始菜单).2.选择NewC/C++Application(Filemenu).ThefirstpageofNewProjectwizardopens.在ProjectTemplate(工程模板)选择中,选择theMicroC/OS-IITutorial.3.工程名与工程路径已为你自动填好,请保留这些默认值。4.ClickBrowseunderSelectTargetHardware(单击浏览选择目标硬件).5.浏览你正在使用的Nios扩展板的标准例程目录,例如:NiosIIkitpath\examples\verilogorvhdl\Niosdevelopmentboard\standarddirectory(标准目录),Niosdevelopmentboard为以下各项中的一个:●NiosII_StratixII_2S60_ESfortheStratixEP2S60ESboard●NiosII_Stratix_1S10fortheStratixEP1S10board●NiosII_Stratix_1S10_ESfortheStratixEP1S10ESboard●NiosII_Cyclone_1C20fortheCycloneEP1C20board●NiosII_Stratix_1S40fortheStratixEP1S40board6.选择std_devicename.ptf文件。7.单击Open。你返回到NewProject.如图1-2所示,SOPCBuilder系统框下SelectTargetHardware栏中包含的指向标准设计例程.ptf文件的路径。另外CPU栏包含在SOPCBuilder示例系统中的CPU的名称。图1–2.NewProjectWizardPage18.单击Next至NewProject第二页。9.开启Selectorcreateasystemlibrary选项。10.单击NewSystemLibraryProject打开系统库页面。见图1-3。图1–3.NewSystemLibraryDialogBox11.在Name栏中输入std_system_lib12.在SelectTypeofsystemlibrary栏中选择MicroC/OS-II。13.单击Finish返回NewProject。见图1-4图1–4.NewProjectWizardPage214.单击Finish完成你的新工程的创建。该范例创建了两个工程在C/C++Projects视图中,如图1-5所示。图1–5.C/C++ProjectsNiosIIdevicedrivers(niosII设备驱动程序)MicroC/OS-IIsystemlibraryforthestandardhardware(用于标准硬件的MicroC/OS-IIsystemlibrary)Applicationproject(应用设计)系统库设定通常,在你创建了一个新的系统库以后你必须设定它,例如定义stdin,stdout,stderr,等。参见NiosIISoftwareDevelopmentTutorial在线支持将有详细叙述。在这个指南中你必须设定MicroC/OS-II。在设置期间NiosIIIDE保存适配参数到os_cfg.h文件中。执行以下步骤设定MicroC/OS-II核。1.在NiosIIIDE的C/C++Projects视图中,右键在系统库上单击std_system_lib。2.在弹出的菜单中选择Properties打开Properties对话框。3.单击SystemLibrary显示systemlibrary选项,如图1-6所示。图1–6.SystemLibraryOptions4.单击在RTOS下面的RTOSOptions。弹出MicroC/OS-IIRTOSOptions对话框,如图1-7所示。图1–7.MicroC/OS-IIRTOSOptions5.单击“+”在在左边的面板中,展开MicroC/OS-II目录。MicroC/OS-II是高度可设定的。你选定的对话框中的选项被保存在os_cfg.h文件中。选定的MicroC/OS-II选项被包含在二进制映射中。通过单击MicroC/OS-II下每一个选项检查你所能选择的选项。关于MicroC/OS-II的各种详细特点,请参见NiosIISoftwareDeveloper’sHandbook的“MicroC/OS-IIRealTimeOperatingSystem”章节。6.选择默认设置单击OK。你将返回系统库选项对话框。7.单击OK完成设置。你已经完成了系统库设定准备构造和运行在以下章节中所描述的示例。关于详细叙述如何构建和运行NiosIIIDE,请参见在线NiosIISoftwareDevelopmentTutorial。构建和运行NiosII软件设计在这一部分,你将要在扩展板上运行一个设计示例。使用NiosIIIDE,你将要创建一个应用程序,为扩展板设定一个合法的目标文件(.sof),并且下载执行与连接文件(.elf)1.在NiosIIIDE的C/C++Projects视图中,选择ucosii_tutorial_0工程。2.打开QuartusII程序选择QuartusIIProgrammer(Toolsmenu中)。见图1-8。图1-8QuartusIIProgrammer3.选择Open(Filemenu中).选择standard.sof如图1–9所示。图1–9.OpenDialogBox5.单击Open你会返回QuartusII程序。6.检查Program/Configure选项。7.单击Start将SOF与扩展板上的FPGA适配。8.选择Exit(Filemenu中)关闭QuartusII程序。你将返回NiosIIIDE。9.如果你被问及是否想保存chain1.cdf文件单击No。10.选择RunAsNiosIIHardware(Runmenu中)创建程序,下载它到扩展板中并运行。关于NiosIIIDE创建和运行设置,参见在NiosIIIDE中的在线帮助NiosIISoftwareDevelopmentTutorial下载完成后,NiosIIIDE通过print_status_task()函数使控制台视图周期性更新,如下所示:****************************************************************HelloFromMicroC/OS-IIRunningonNiosII.Hereisthestatus:Thenumberofmessagessentbythesend_task:39Thenumberofmessagesreceivedbythereceive_task1:10Thenumberofmessagesreceivedbythereceive_task2:3Thesharedresourceisownedby:getsem_task2TheNumberoftimesgetsem_task1acquiredthesemaphore30TheNumberoftimesgetsem_task2acquiredthesemaphore24****************************************************************祝贺你成功地设定,构建和运行了一个MicroC/OS-II程序为了详细了解这个指南,你能查阅ucosii_tutorial.c.文件资源。MicroC/OS-II的完全参考参见“MicroC/OS-IINiosIISoftwareDeveloper’sHandboo.的“RealTimeOperatingSystem”章节。