Nios程序固化到片上RAM操作

2025-04-19 04:45:45

1、选择BSP Editor->Settings ->Advanced->hal->linker,然后勾选a造婷用痃llow_code_at_reset。当然如果勾选enable_alt_load和enable_alt_load_copy_rwdata。也是没有问题的。具体参数意思还没看。该选项就是设置片上RAM作为Nios的程序存储器,这样在启动FPGA之后Nios从片内存储器开始执行代码。

Nios程序固化到片上RAM操作

2、运行Nios工程中的Make targets ->build.双击mem_init_generate

Nios程序固化到片上RAM操作

3、在Nios工程文件夹下会生成一个mem_init文件夹,内部的cpu_mem.hex其命令规则是以Nios和Ram的两个name连接起来。

Nios程序固化到片上RAM操作

4、打开片上RAM,勾选Initialize memory content和Enable non-default initialization file。这样User created initialization file框就可以添加文件,把上面的cpu_ram.hex文件添加进来。这样生成的SOF就能执行Nios中的程序。当然转成JIC也是没有问题的

Nios程序固化到片上RAM操作

5、其实现在经过学习得出的结论是并不需要一定在RAM中指定初始化文件。从下图中可以看到如果不指定初始化文件,在界面底部会有一句:Memory will be initialized from xxx.hex。这个HEX的文件名由Qsys的名称和CPU_RAM的名称组合成的。那怎么操作才能为工程指定相应的HEX文件呢?

Nios程序固化到片上RAM操作

6、我们再来看Nois工程的mem_init文件夹。文件夹下有一个meminit.qip文件。

Nios程序固化到片上RAM操作

7、把上面的.qip文件添加到相应的Quartus工程中。就像添加文件一样的。

Nios程序固化到片上RAM操作

8、添加完之后直接编译运行,即可查看效果。那么直接指定HEX初始化文件和添加meminit.qip有什么区别呢?笔者在运行中有所体会,那就是如果工程的位置改变了之后直接指定的方式要随之相应的修改,而后者则不必,因为它是相对路径,会随之自动改变。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢