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.

DSP2812串口升级

本人最近在做串口升级,自己写Bootload程序,并固定在FLASH中,启动过程如下:

1)每次上电Bootload程序先运行,接收上位机命令判断是否进行升级;

2)若不升级,则将老版本用户程序拷贝到RAM中,并跳转到用户程序运行用户程序;

3)若升级,则上位机通过串口将新版本程序发送到DSP中,Bootload程序接收新程序并将其存在RAM中,接收完毕后,将其烧写到FLASH中保存,并跳转到新版用户程序运行。

Bootload程序和用户程序是两个不同的工程,也是两个不同的main函数,在Bootload程序执行完之后,用什么指令可以跳转至用户程序的入口开始执行用户程序?是否是直接将程序指针PC指向用户程序入口?

  • 程序和用户程序是两个不同的工程,也是两个不同的main函数,在Bootload程序执行完之后,用什么指令可以跳转至用户程序的入口开始执行用户程序?是否是直接将程序指针PC指向用户程序入口?

    ERIC:用指针直接跳转。

    例如:

    #define C28Update (void   (*)(void))0x0013e000  //0013a000

    // jump to C28 CKFA entry point
    (*C28Update)();

    ERIC