当前位置:   article > 正文

生成jic文件,固化代码_quarter生成jic文件

quarter生成jic文件

生成jic文件,固化代码

方法 一:

确保quartus中能正常下载sof文件

1)将下面两个选项选上,选上之后重新generating BSP,然后再重新编译工程

image-20240312110505720

image-20240312110651165

2)烧写完之后点击nios ii–>flash programmer

image-20240312110809422

新建:

image-20240312110906540

选择setings.bsp文件

image-20240312111004985

image-20240312111219307

添加sof和elf文件

image-20240312111427789

如果报错:

image-20240312153746409

image-20240312153710214

原因:使用的不是altera的原厂flash芯片。不同的公司的SPIFlash有不同的ID,并且flash的sector大小都不一样,所以需要构建一个文档去说明这些情况
  • 1

解决方法:

1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;
2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;
        [EPCS-202011]  # EPCS1N (lead-free)
        sector_size = 32768
        sector_count = 4
        [EPCS-202013]  # EPCS4N (lead-free)
        sector_size = 65536
        sector_count = 8
        [EPCS-202015]  # EPCS16N (lead-free)
        sector_size = 65536
        sector_count = 32
        [EPCS-202017]  # EPCS64N (lead-free)
        sector_size = 65536
        sector_count = 128
 3、在上述代码中添加自己选择的通用SPIFlash,例如:
        [EPCS-EF4015]  # EPCS64N (Eon-lead-free)
        sector_size = 65536
        sector_count = 128
        
        
参考:https://blog.csdn.net/subkiller/article/details/6394306
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
修改后的nios2-flash-override.txt:

[EPCS-202011]  # EPCS1N (lead-free)
sector_size = 32768
sector_count = 4
[EPCS-202013]  # EPCS4N (lead-free)
sector_size = 65536
sector_count = 8
[EPCS-202015]  # EPCS16N (lead-free)
sector_size = 65536
sector_count = 32
[EPCS-202017]  # EPCS64N (lead-free)
sector_size = 65536
sector_count = 128

[EPCS-EF4015]  # EPCS64N (Eon-lead-free)
sector_size = 65536
sector_count = 128


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

解释一下:[EPCS-EF4015] # EPCS64N (Eon-lead-free)中,EPCS-EF4015是使用的SPIFlash的id号,上面报错的信息中可以看到这个信息:

No EPCS layout data - iooiang for section [EPCS-EF40151]
  • 1

找不到EPCS-EF40151这个器件,这个是器件的ID号。也可以通过阅读数据手册查找。

sector_size = 65536
sector_count = 128
这是flash的大小信息,可以通过手册获取。
  • 1
  • 2
  • 3

成功的现象:

方法二:

1、复制文件到工程目录下

image-20240312112428725

2、打开脚本命令窗口,输入

./generate_jic.sh
  • 1

image-20240312112537573

image-20240312112616801

image-20240312112804111

再通过“ls”命令查看生成的文件,我们要用的是.hex文件

image-20240312112849933

然后切换到quartus ii软件中

image-20240312113142327

运行generate_jic.tcl脚本:

image-20240312113214181

按照上面的操作完毕之后,再生成的文件夹myoutput_files中找到jic文件:
image-20240312113347062

然后在quartus ii中打开烧写代码的窗口,选择jic文件:

image-20240312113513885

generate_jic.cof

<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<cof>
	<eprom_name>EPCS16</eprom_name>
	<flash_loader_device>EP4CE10</flash_loader_device>
	<output_filename>./myoutput_files/hs_combined.jic</output_filename>
	<n_pages>1</n_pages>
	<width>1</width>
	<mode>7</mode>
	<hex_block>
		<hex_filename>./myoutput_files/swimage.hex</hex_filename>
		<hex_addressing>relative</hex_addressing>
		<hex_offset>0</hex_offset>
	</hex_block>
	<sof_data>
		<user_name>Page_0</user_name>
		<page_flags>1</page_flags>
		<bit0>
			<sof_filename>myoutput_files/hwimage.sof</sof_filename>
		</bit0>
	</sof_data>
	<version>5</version>
	<create_cvp_file>0</create_cvp_file>
	<options>
		<map_file>1</map_file>
	</options>
</cof>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

注意如果使用的flash器件不是epcs16的需要更改上面代码的第3代码;如果使用的fpga型号不是epc4ce10的需要修改第4行:

	<eprom_name>EPCS16</eprom_name>:把EPCS16改为对应的flash器件名称,如EPCS64
	<flash_loader_device>EP4CE10</flash_loader_device>:如果FPGA型号不是EP4CE10,改一下,如:EP4CE75
	
	
  • 1
  • 2
  • 3
  • 4

generate_jic.sh

#/bin/sh
rm -rf flashconv
mkdir flashconv
chmod 777 ../../output_files/*.sof
cp ../../output_files/*.sof ./flashconv/hwimage.sof
cp *.elf ./flashconv/swimage.elf
cd flashconv
chmod 777 swimage.elf
sof2flash --input=hwimage.sof  --output=hwimage.flash --epcs -verbose
elf2flash --input=swimage.elf --output=swimage.flash --epcs --after=hwimage.flash  --verbose
nios2-elf-objcopy --input-target srec --output-target ihex swimage.flash  swimage.hex
rm -rf ../../../myoutput_files
mkdir ../../../myoutput_files
cp swimage.hex ../../../myoutput_files/swimage.hex
cp hwimage.sof ../../../myoutput_files/hwimage.sof
cp ../generate_jic.cof ../../../generate_jic.cof
cp ../generate_jic.tcl ../../../generate_jic.tcl
cd ../

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

generate_jic.tcl

exec quartus_cpf -c generate_jic.cof

  • 1
  • 2

注意:路径需要根据自己的情况调整。

---晓凡 202432日于武汉书
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/647085
推荐阅读
相关标签
  

闽ICP备14008679号