有人在altera论坛提出有关JIC产生的问题,有几个精彩的答复,在此提取以供学习。原始帖子链接在这里:戳我吧
1、jic文件怎么产生,以及什么情况下要用到jic和如何配置有很多文章进行了相关的介绍
网上搜索一大把,这里不介绍。
2、进行NIOSII嵌入式系统开发的时候,用EPCS器件作为软硬件存储的时候
可以把硬件配置以及软件同时烧写到EPCS器件
烧写的方式有两种,一种是在NIOS IDE的flash programmer里实现
另外一种就是通过JIC来实现。具体方法就是将sof和elf文件合成一个jic文件,其步骤是:
1) Convert SOF to Flash
sof2flash --epcs --input=$sof --output=hw.flash --quiet
2) Convert ELF to Flash
elf2flash --epcs --after=hw.flash --input=$elf --output=sw.flash
3) Concatenate
cp hw.flash hw_sw.flash
cat sw.flash >> hw_sw.flash
4) Create HexFile
nios2-elf-objcopy --input-target srec --output-target ihex hw_sw.flash $hex
5) Use Quartus -> File -> Convert Programming File ...
select output: *.jic , select your epsc, outputfilename,
select flash-loader for your device
remove sof-entry
add hex file (merge.hex, absolute)
Generate ...
3、普通FPGA开发的时候需要通过jtag口加载的时候可以通过脚本来实现自动产生jic
下面是其步骤:
1)、设置好jic转换所有设置选项,并保存到转换设置文件如jic_auto_gen.cof;如下图所示:
2)、创建脚本文件generate_jic_programming_file.tcl,脚本内容如下:
set module [lindex $quartus(args) 0]
3)、将脚本文件加入到qsf文件中,具体格式如下
set_global_assignment -name POST_MODULE_SCRIPT_FILE "quartus_sh:generate_jic_programming_file.tcl"
以上步骤完成后,Quartus II软件在Assembler后会自动产生jic文件。
if [string match "quartus_asm" $module] {
# Include commands here that are run after the assember
post_message "Running after assembler"
set cmd "quartus_cpf -c jic_auto_gen.cof"
# If the command can't be run, return an error.
if { [catch {open "|$cmd"} input] } {
return -code error $input
}
}