Altera MAX 10 CPLD的最大特点就是它的单芯片解决方案。芯片内部的Flash和片上RAM,再加上NIOS软核,使得单个MAX 10就可以跑起一个小应用。鉴于MAX 10的特点,NIOS APP的下载方法也有所不同。
首先,系统要跑起来的必不可少器件就是ROM和RAM,而在MAX 10中对应的就是片上Flash和片上的RAM。所以要在Qsys中添加On-Chip Flash和On-Chip Memory。
On-Chip Flash中根据需求,要配置好Configuration Mode选项,这个一定要和Quartus中的选项一样,不然后面会报错。
Quartus中Assignment->Device->Device and Pin Options->Configuration。
On-Chip Memory的配置中要去掉Initialize memory content前面的勾。
在NIOS软核中,把两个向量分别指向On-Chip Flash和On-Chip Memory。
以上就是在Qsys中要注意的地方。至于怎样配置其它模块和怎样在Quartus中综合Qsys就不说了,这个和其他的例化NIOS的方法一样。
再转到NIOS IDE中,当把所有的BSP和APP在线调试完成之后,就要把代码下载到Flash中了,这里我们要生成Hex文件,而不是直接下载elf。
在APP工程上右键->Mark Targets->Build ...或者直接Shift+F9。在弹出的窗口中选择mem_ini_generate,然后Build。这个会生成onchip_flash.hex,这个hex就是要下载到Flash中的APP。
在生成完成了Hex之后,就要回到Quartus中,打开Files->Converts Programming Files...。
1. 选择下载Mode为Internal Configuration。
2. 点击Options/Boot info...,在弹出的对话框中,UFM source,选择为Load memory file,然后找到前面生成的onchip_flash.hex文件,点OK。
3. 在Input files to convert中添加综合生成的sof文件,然后点击Generate,生成pof文件。
4. 有了pof就可以下载了。
在此之后就再也不怕断电了。更具体的可以参考Altera的官方文档AN730,《NIOS II Processor Booting Methods In MAX 10 Devices》。我也只是依此画瓢。
用户1510863 2015-4-9 17:40