查看: 2349|回复: 0

【BeMicor Max10】之四 Quartus 16.1中NiosII 的配置和应用,以及问题解决方法

[复制链接]
  • TA的每日心情
    开心
    2017-2-14 08:56
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2016-12-16 09:08:10 | 显示全部楼层 |阅读模式
    分享到:
    这两天一直测试niosII 的配置和应用,碰到各种问题,还好有伟大的搜索引擎,帮忙解决了两个问题,剩下的问题都是自己一点点试的,还是挺花时间的。在也是使用新的quartus prime 16,又有些配置和原来不太一样了,所以根据自己的需要进行尝试配置就可以了。
    书归正传,接下来我们一步步地来配置第一个NIOSI程序。
    首先还是要新建一个工程,就不细说了,命名为max10niosled,有人说怎么又是LED,简单好玩,不失乐趣。建完工程后,点开Qsys图标,如图1所示。

    就会出现NIOSII配置的界面,你会发现只有时钟。这就需要自己在左面列表中找到系统需要的组件。如图2所示。

    作为一个系统,需要一些常用的组件,比如NISOII内核,JTAG UART,PIO,systemID,还有RAM。
    添加System ID外设。如果熟悉的话,就比较好找这些外设,如果不熟悉呢,上面有个搜索框直接搜索要找的外设就出来了,如图3所示。很方便。

    双击所需要的外设,就会弹出设置窗口,对外设进行设置即可。如图4,图5,图6,图7所示。




    然后将这些外设的时钟,复位,信号与系统部分相连,如图8所示。

    就形成了一套系统,试试吧。
    接下来就是产生系统核文件,配置完后,点击右下角Generate HDL...,弹出对话框,配置如图9所示,
    点击Generate.稍等会吧,得有几分钟时间。完成以后呢,有几个警告是很正常的。
    完成后,回到quartus 界面,在工程中新建一个verilog 文件,然后在项目文件中找到mynios_inst.v文件,将里边的内容拷贝到程序文件中,如图10所示。并修改括号中的内容。

    然后点击分析与综合一下。配置引脚,整体编译一下。
    接下来在Qsys界面中,打开Eclipse(Tools->NiosII Soft Build Tools for Eclipse),就弹出了Eclipse的界面。点击file,新建 NiosII Application and BSP from Template,接下来的配置如图11所示。点击完成即可。

    生成了两个文件夹,一个项目文件,一个是工程文件(BSP)。右击项目文件,新建一个.C的源文件,命名为myniosfile.c。要测试的程序如下面代码所示。
    #include "alt_types.h"#include "altera_avalon_pio_regs.h"#include "sys/alt_irq.h"#include "system.h"#include "stdio.h"#include "unistd.h"void delay(void);int main(){ IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,0x0); while(1) {         IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,0x1);         delay();         IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,0x0);         delay(); } return 0;}void delay(void){ alt_u32 i =0; while(i<100000) {         i++; }}右击工程文件,在NIOSII的二级菜单中选择BSP Editer,配置如图12所示,

    这是要把代码裁剪一下,否则会超过RAM。然后generate一下,就OK了。同时选中工程文件和项目文件,右击选择Build Project。编译没什么错误。
    右击项目文件,在Run as 的二级菜单中选择第四个,NiosII modelsim,进行仿真。为了使仿真快点,修改了下时间。如图13所示。

    返回quartus prime界面,点击programmer,将.sof文件下载到板卡中。
    右击项目文件,在Run As的二级菜单中选择第三个,NiosII Hardware,看看板卡的效果吧。
    遇到的问题及解决方法:
    问题1:16031 Current Internal Configruation mode does not support memory initializtion or Rom.
    方法:Assignment->Device->Device and Pin Options->Configruation->Configuration  Mode:Single uncompressed image with memory Initialization
    问题2:undefined reference to 'main' in eclipse
    方法:如果你用的是C++,把源文件命名为.CPP,如果你用的是C,在Eclipse的project菜单中有个Clean,点击,选中两个文件,但是不能选Build,配置如图14所示。

    重新generate,build project就解决了。
    问题3:更新完NIOSII配置以后,怎么在Eclipse中重新更新.sopcinfo文件
    方法:右击工程文件(BSP),NiosII->BSP Editor,在界面的File->New BSP中重新加载.sopcinfo文件即可。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 02:49 , Processed in 0.119030 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.