并行NOR Flash在SOPC開發(fā)中的應(yīng)用設(shè)計
3 存儲可直接執(zhí)行的軟處理器代碼
這里仍然使用上面創(chuàng)建的EDK工程,由于J3D具有類似SRAM的接口,上電后可以直接像SRAM一樣進行讀操作,但卻不能直接進行寫操作。因此,應(yīng)將只讀段.code、.rodata、.sdata2、.sbss2指定到J3D中,其余段指定到BRAM中,這可以在Generate Linker Script對話框中完成。重新編譯后生成新的Bootable.elf文件。此時,Bootable.elf仍是一個整體,需要將其在物理上分為2個文件: 一個存放只讀段,另一個存放其余段。具體可以通過下面的操作實現(xiàn)。
?、?創(chuàng)建存儲在BRAM中的鏡像volatile.elf。在XPS中,選擇Project → Launch EDK Shell,并執(zhí)行下列命令:
$ 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
② 創(chuàng)建存儲在Flash中的鏡像J3D.bin。在XPS中,選擇Project → Launch EDK Shell,并執(zhí)行下列命令:
$ 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合并到系統(tǒng)配置比特流system.bit,生成dowload.bit,再經(jīng)iMPCT轉(zhuǎn)為MCS格式后下載到配置PROM中。再將J3D.bin通過Program Flash Memory對話框下載到J3D中。這樣系統(tǒng)上電并完成配置后,J3D中的代碼無需引導(dǎo)便可以直接執(zhí)行。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論