先给大家简单介绍一下这一节的重要内容,这一节将详细讲述NIOS II的软件开发的整个流程,并简单介绍NIOS II 9.0 IDE的一些简单的使用方法,会让那些从来没有用过NIOS II IDE软件的人可以很轻松的上手使用。 NIOS II IDE简介 NIOS II IDE是一个基于Eclipse IDE构架的集成开发环境,它包括了很多的功能,学过JAVA的人对其应该非常的熟悉,它的功能是非常之强大,下面我们就简单介绍一下NIOS II IDE的功能和特点:
按顺序来,红圈1处是标准输入(stdin)、标准输出(stdout)、标准错误(stderr)的设置区,我们在软核中构建了JTAG UART,在此出现效果了吧,如果我们没有构建JTAG UART,那么,这个地方就不会出现jtag_uart选项了。在所红圈2处,这个地方也不需要修改,不过有一个地方需要注意,就是Support C++,这个库相对Small C library要大,如果大家手中的板子没有FLASH,SDRAM这样大容量存储设备的话,选择Small C library,用FPGA内部的SRAM,也可以跑些小程序。再说红圈3处,这个是一些有关内存的选项,我们构建了SDRAM模块,这个地方也用到了,默认就可以,不用修改。该说红圈4了,点击红圈4后,出现下面界面,这个是对编译器就行配置的界面,大家可以自己观察一下,大部分都不需要修改,我们来看一下比较重要的地方,点击红圈处。
在这些信息中,对我们有用的是JTAG_UART_BASE,还有JTAG_UART_IRQ,JTAG_UART_BASE是JTAG_UART的基地址,JTAG_UART_IRQ是中断号,其他的是一些配置信息,我们先不关注。同理,SDRAM、FLASH等都有相应的基地址,我们以后就要用到这些地址对NIOS软核进行寄存器操作,达到我们要实现的跟单片机一样的寄存器操作方式,在此我们就不详细讲述了,后面我们会单独讲解这一节。看了这个例子以后,大家在看看其他的,都大同小异,没有中断的就不会出现*_IRQ这一项,不信大家自己看。NIOS强大之处就在于此,根据大家的需求进行对软核的构建,然后产生相应的寄存器,整个构建都由设计者来掌控,缺什么建什么,不行的话还可以自己写底层的模块,你说强不强大。
system.h文件我们以后还会提到,暂时先讲到这,接下来我们要看看我们编译好的程序是不是跟我们想想的一样。对于NIOS IDE提供了几种方法来验证,一种是直接硬件在线仿真,一种是软件仿真。我们先说第一种硬件在线仿真,很显然这种方式需要硬件配合,一块开发板,一个仿真器(仿真器就是大家用的USB-BLASTER或者BYTE-BLASTER)。将仿真器与开发板的JTAG口相连(假设你的仿真器驱动已经装好了,如果有不知道怎么装仿真器驱动的请跟我联系)。安装好以后,我们进行下面的操作,点击红圈处Nios II Hardware。
点击后,可以看观察栏的控制台(Console),如果一切正常,我们将看到下面的结果出现。
看到了么?如果没看到,再好好检查一下,你的操作是否跟我说的一样,如果自己无法解决,请联系我,我将手把手帮你解决。
说完第一种硬件在线仿真以后,我们再说说软件仿真。软件仿真不需要硬件,电脑单独运行即可,按下图所示操作,点击红圈处,Nios II Insruction Set Simulator。
点击后,还是看观察栏的控制台(Console),结果一样吧。我不建议大家用软件仿真,因为软件仿真在不涉及到硬件的情况下还好,如果有相关硬件操作了,效果就没有了。
到此为止,我们的NIOS II软件开发部分就结束了,如果想熟练掌握NIOS II IDE,还要大家自己亲手去试试,光靠我的讲解是不行的,大家没事的时候可以研究一下它的每一个选项,都有什么功能,这样才能加深你对它的熟悉程度,更好的去掌握它,用好它。在此再多说一句,我不建议大家经常更新软件,对于Quartus和NIOS软件的升级,无非就是解决一些BUG,多支持一些器件,编译的速度快了一点。在你还没有遇到非常严重的BUG之前,最好不要去更新它。更新以后带来的后果就是需要重新熟悉它的特性。NIOS II IDE 9.1和9.0之间变化就很大,使用起来就不是那么顺手。建议大家不要轻易去更改。
好了,这一节的内容就到此结束吧,下一节我将给大家讲解“如何让NIOS II的开发像单片机一样简单,看透NIOS II系统的寄存器操作方式”。这一节内容是我教程中的核心部分,希望大家耐心等待,拜拜了!