并行NOR Flash在SOPC开发中的应用设计
来源:电子工程世界 作者:—— 时间:2010-07-30 11:17
3 存储可直接执行的软处理器代码
这里仍然使用上面创建的EDK工程,由于J3D具有类似SRAM的接口,上电后可以直接像SRAM一样进行读操作,但却不能直接进行写操作。因此,应将只读段.code、.rodata、.sdata2、.sbss2指定到J3D中,其余段指定到BRAM中,这可以在Generate Linker Script对话框中完成。重新编译后生成新的Bootable.elf文件。此时,Bootable.elf仍是一个整体,需要将其在物理上分为2个文件: 一个存放只读段,另一个存放其余段。具体可以通过下面的操作实现。
① 创建存储在BRAM中的镜像volatile.elf。在XPS中,选择Project → Launch EDK Shell,并执行下列命令:
$ mbobjcopy
--set-section-flags .text=alloc,readonly,code
--set-section-flags .init=alloc,readonly,code
--set-section-flags .fini=alloc,readonly,code
--set-section-flags .rodata=alloc
--set-section-flags .sdata2=contents
--set-section-flags .sbss2=contents
./TestApp_Memory/Bootable.elf
./TestApp_Memory/volatile.elf
② 创建存储在Flash中的镜像J3D.bin。在XPS中,选择Project → Launch EDK Shell,并执行下列命令:
$ mbobjcopy O binary
-j .text
-j .init
-j .fini
-j .rodata
-j .sdata2
-j .sbss2
./TestApp_Memory/Bootable.elf
./TestApp_Memory/J3D.bin
将volatile.elf合并到系统配置比特流system.bit,生成dowload.bit,再经iMPCT转为MCS格式后下载到配置PROM中。再将J3D.bin通过Program Flash Memory对话框下载到J3D中。这样系统上电并完成配置后,J3D中的代码无需引导便可以直接执行。