MAX10调试NIOS笔记

之前没怎么用ALTERA的器件,最近用MAX10做嵌入式NIOS,MAX10是ALTERA推出的低价FPGA,且内置FLASH,比较适合成本敏感,且要求功能又复杂的应用。

1、生成SOF文件和elf文件。

我用的是Quartus Prime 17.1,在Quartus软件中启动Platform designer软件,搭建NIOS系统。系统主要有时钟、NIOS CPU、RAM、FLASH等外设。


搭建完成之后,点击System菜单,分配地址和中断号。之后点击Generate菜单,生成HDL文件。


将生成的xx_bb.v和xx_inst.v的部分代码复制到你自己设计的例化CPU的HDL代码中,然后在Quartus左侧的文件列表中添加synthesis目录下的xxx.qip文件。此处xxx是你自己命名保持的platform工程名。


然后综合、分配管脚和编译。

完成之后,打开NIOS软件。


设置工作目录。


选择新建NIOS 应用和BSP,选择生成的xx.sopcinfo文件。

由于我的程序是运行在ram中,所以选择hello_world_small应用,点击finish完成应用程序创建。

用USB连接MAX10到电脑,并点击programmer,选择JTAG方式下载Quartus生成的.sof文件。


下载完成后,修改hello_world_small.c代码,并编译。如果增加或者删除C文件,需要右键工程,清一下工程。


选择,Run->Run Configurations ,在Nios II Hardware下添加一个new ***并自己起个名字,在Project的name下选择eclipse的工程名,同时会出现相关.elf文件的位置,再选择Target Connection,正常这里已经连接上了。

选择RUN,就可以在串口看到打印信息了。

2、NIOS中FLASH相关配置

我用的方式是程序从FLASH启动,在RAM运行,所以在NIOS配置了FLASH和RAM。配置界面如下。

NIOS配置


RAM配置


FLASH配置,我是程序和数据放在一起不压缩烧写,如果有其它要求,需要改变这里的配置。


需要注意的是NIOS的data master要连接到FLASH的CSR上面。



3、将HDL代码和软件C代码合并并烧写

3.1  生成C代码的HEX文件

首先需要更改C代码编译的Linker选项。


右键单击,选择NIOS II->BSP Editor,把几个linker全部打上勾。


右键应用工程,选择Make Targets生成目标文件,选择Build。选择 mem_init_generate。

在对应目录下就会生成onchip_flash_0.hex文件。


3.2 合并SOF文件和HEX文件

打开Quartus软件,找到文件转换器(Convert  Programming Files)


打开文件转换器,选择internal Configuration


然后再选择左侧的Options/Boot Info,

把Configure  device from  CFM0  only前面打上对勾,

UFM  source选择Load momory file,然后再指定上一章节中生成的hex文件,点OK关闭此页面。


在Input files to convert里面添加SOF文件。


在File Name栏中指定输出的文件位置,并设置输出文件名称。


在最下方点Generate生成POF文件。


最后将POF文件烧写到MAX10中,此次不再赘述如何烧写。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值