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.
采用F28027开发一个项目,要求后续产品能在线升级,参考了相资料及ARM上的做法的思路
将工程分为两部分(boot与app),分别烧录在DSP片上FLASH的前后两个不同区域。
boot包括底层通讯驱与FLASH读写,app是真正最后执行的部分
即用“程序”烧写“程序”有一个问题请教?
即前一程序(boot)完成Flash烧写或自检完成后,如何跳转到后一程序(APP)?
1、程序跳转有什么指令实现?
2、APP程序开发调试中除了对CMD文件中对FLASH进行地址分配外,还需要什么特殊处理?
Hi Eric,
感谢您的回复,思路基本明白了,问题还是具体操作上:
例如在TI例程,的F28027.CMD文件里:
FLASHD : origin = 0x3F0000, length = 0x002000 /* on-chip FLASH */
FLASHC : origin = 0x3F2000, length = 0x002000 /* on-chip FLASH */
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH */
我想把boot程序放在FLASHA中,将用户程序放在FLASHC中。
1.在boot程序的project里,执行跳转判断后,如何跳到FLASHC中用户程序的main开始执行?
2.在APP程序的prject里,除将cmd文件中SECTIONS中 Allocate 的FLASHA改成FLASHC外,还要哪些操作?
能否帮忙分别给出boot与app两个简单的demo例程,只需实现上电后,从boot程序(FLASHA)运行一定时间后跳转到APP程序(FLASHC)执行?
感谢答复!但还是不明白?
1、0x3F7FF6地址,我看TI 例程里的CMD文件是
BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
在Boot程序跳转时,跳到那个地址会跳到APP程序的main么?为什么?能否具体说明?
2、FLASH划为两块分别给boot与app能理解,但RAM如何分配?
希望高手专家能给出例程,万分感谢!
是的,只能跳到一个的main(),确切地说就是boot的main,然后需要在里面判断是进行程序升级还是到app的主程序运行。
只能有一个工程的cmd里有BEGIN,就是boot.