This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6455程序加载



EMIFA Boot Mode
In EMIFA boot mode, the bootloader simply branches to the base address of EMIFA CE3 (0xB000 0000).
Interrupts are disabled.

现在我采取的是这种Boot模式,请问,有没有什么硬件办法让默认跳到0xB008 0000这样的地址,引导这块的内容,用FPGA控制地址线行不?

  • 硬件办法跳转,会改变EMIF的地址线。一般情况是EMIFA CE3 (0xB000 0000)存放二次bootloader,在二次bootloader中再引导其他地址段的程序,如0xB008 0000这样的地址。

  • 你好,谢谢你的回答,我想的是在CE3里面存放两块程序,通过通过地址线实现不同程序的引导。

    比如

    程序1存放方式:0xb0000000-0xb0000400存 bootloader,0xb0000400以后存放程序一的实际代码段;

    程序2存放方式:0xB0080000-0xB0080400存bootloader,0xB008 0400以后存放程序二的实际代码段。

    通过fpga控制加载地址开始执行的位置,比如某个控制实现开始指针跳到0xb0000000,实现程序一的加载,

    如果是另一种状态,开始指针就会自动跳转到0xb008 0000 这个位置执行,然后实现程序二的加载。

    这种方案可行不?如果不可行,有什么别的办法实现我这种可以切换两个程序的方案不?

    有这种想法,主要是闲麻烦,比如我现在执行程序一,我想要切换到程序二,就得重新烧写。。所以。。

  • 通过fpga控制加载地址开始执行的位置,这样会改变EMIF的寻址地址,这样是不行的。

    因为在0xb0000000的地方是存放二次bootloader,可以将两个程序存放在不同的两个空间内,通过控制二次bootloader,来选择加载需要的应用程序。就是公用一个二次bootloader

  • 这样的话,必须通过外部设备来影响bootloader执行路径,达到拷贝指定代码的目的,必须得有个东西控制FLASH里面代码的执行过程。请问你有什么比较好的办法吗?

    或者有什么别的办法来实现我这想法不?

  • 这个可以在二次bootloader运行时候,来添加一个判断,不过我这边没有这样的例子,你可以试试