【原创】如何在Nios II 中运行us/os II操作系统 -- FPGA学习历程

来源:百度文库 编辑:神马文学网 时间:2024/07/02 16:47:32


Nios II 嵌入式系统软件设计(二)   


 

使用的软件:

QuartusII 8.0

Nios IDE 8.0

硬件:

自制Nios II 开发板


    

 

        这几天忙于项目测试,没时间来管理自己的博客,今天趁空上来写一篇关于如何在Nios II 中运行us/os II操作系统文章,希望对大家有帮助,大家有什么问题或文章中有什么可以改进的尽管留言啊。


 

一、建立硬件系统

首先在SOPC中建立运行us/osII的硬件系统

为了在console中显示打印的字符串,加入了JTAG UART,尤其需要注意的是,us/osII操作系统的运行需要timer作为系统时钟,如果没有timer,在软件编译时会出现如下错误:

(严重) generate: java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.NumberFormatException: empty String

我曾被这个错误耽搁好长一段时间。

建立好SOPC系统后,在QuartusII中建立顶层原理图:

顶层电路中的PLL设置参数时需要注意SDRAM的时钟的相位,需要根据SDRAM datasheet中的时间参数和QuartusII编译产生的时序参数,板子走线的延时等具体计算得到,通过公式算出我的电路中SDRAM的时钟相位为-20°。


 

二、软件系统设计

打开Nios IDE8.0,新建工程,选择Hello MicroC/OS II模板,点击next。

选中Select or creat a system library,点击New system library project...

在Name中输入系统库的名字(自己随便起),选中下面的MicroC/OS II,点击finish。

点击Finish完成工程的建立。

右击工程,选择system library properities,进行如下设置

编译整个工程,得到如下编译结果

点击run as Nios II hardware,运行程序,结果如下:


 

还有一点需要注意的是很多人将程序在on-chip memoty中运行,不过一般on-chip memoty容量小,编译时会出现容量不够的错误,建议将程序改在SDRAM或SRAM中运行。