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.

请问Starterware编译出来的.bin文件必须下载到固定地址的吗?



我在StartWare下面的uartEcho.c下实现xmodem协议进行文件传输,当然我是参考StarterWare里面的源码写的,但是当我用串口下载boot.bin,之后下载我自己改写编译好的uartEcho.bin,用来传输文件,比如我这里传输gpioLedBlink.bin,传输地址为0x81000000,程序已经实现跳转到该地址(参考源码),但是没有效果出来。请问Starterware编译出来的.bin文件必须下载到固定地址的吗?

  • 我们的boot程序是支持串口下载程序,您可以参考boot里面的代码,看看跳转后是怎么执行的。

  • 你好,谢谢回复。

            我的源程序是参考StarterWare源码通过UART下载的 ,源程序我是这样实现的:

    if( 0 > xmodemReceive((unsigned char *)DDR_START_ADDR,
                                                                                       BL_UART_MAX_IMAGE_SIZE))
    {
    UARTPuts("\nXmodem receive error\n", -1);

    }

    UARTPuts("\nNow jumping to the address!\n", -1);

    entryPoint = DDR_START_ADDR;
    appEntry = (void (*)(void)) entryPoint;

    (*appEntry)();         //跳转到文件下载的地址。

    这里我的DDR_START_ADDR = 0x8100 0000,我下载的文件是gpioLedBlink.bin,但是没有效果出现,所以我猜会不会StarterWare里面编译的.bin文件需要下载到固定地址。举个例子,y源码通过UART下载程序可以看出,通过UART下载的.bin文件下载到0x80000000.

  • 在编译的目录下有个map文件,你先看看里面的入口地址定义在哪里了