本人最近在做串口升级,自己写Bootload程序,并固定在FLASH中,启动过程如下:
1)每次上电Bootload程序先运行,接收上位机命令判断是否进行升级;
2)若不升级,则将老版本用户程序拷贝到RAM中,并跳转到用户程序运行用户程序;
3)若升级,则上位机通过串口将新版本程序发送到DSP中,Bootload程序接收新程序并将其存在RAM中,接收完毕后,将其烧写到FLASH中保存,并跳转到新版用户程序运行。
Bootload程序和用户程序是两个不同的工程,也是两个不同的main函数,在Bootload程序执行完之后,用什么指令可以跳转至用户程序的入口开始执行用户程序?是否是直接将程序指针PC指向用户程序入口?
Eric Ma:
程序和用户程序是两个不同的工程,也是两个不同的main函数,在Bootload程序执行完之后,用什么指令可以跳转至用户程序的入口开始执行用户程序?是否是直接将程序指针PC指向用户程序入口?
ERIC:用指针直接跳转。
例如:
#define C28Update (void (*)(void))0x0013e000 //0013a000
// jump to C28 CKFA entry point (*C28Update)();
ERIC