现在我采用的是EMIFA 8-bit ROM boot (BOOTMODE[3:0] = 0100b)这种boot方式。
这种方式默认是从0XB0000000开始地址执行,现在我有两块程序,想把另一块程序写到另一个地方,比如从0xb001 0000开始的地方,我想让设置一个玩意,让程序可以从不同地址引导程序,请问有什么办法?有什么硬办法不?
Shine:
EMIFA boot mode是硬件boot mode, 不能改变,可以写个二次bootloader程序,跳到不同的程序入口地址执行。
autstyh autstyh:
回复 Shine:
你好,谢谢你的回答,我想的是在CE3里面存放两块程序,通过通过地址线实现不同程序的引导。
比如
程序1存放方式:0xb0000000-0xb0000400存 bootloader,0xb0000400以后存放程序一的实际代码段;
程序2存放方式:0xB0080000-0xB0080400存bootloader,0xB008 0400以后存放程序二的实际代码段。
通过fpga控制加载地址开始执行的位置,比如某个控制实现开始指针跳到0xb0000000,实现程序一的加载,
如果是另一种状态,开始指针就会自动跳转到0xb008 0000 这个位置执行,然后实现程序二的加载。
这种方案可行不?如果不可行,有什么别的办法实现我这种可以切换两个程序的方案不?
有这种想法,主要是闲麻烦,比如我现在执行程序一,我想要切换到程序二,就得重新烧写。。
再次感谢你及时的回答。。
Shine:
回复 autstyh autstyh:
可以试试在二次bootloader(放在0xb0000000开始)做判断是跳转到程序1还是程序2, FPGA可以给个信号给DSP,让二次bootloader来判断。