我现在做了两个工程,一个boot一个app,我的boot已经通了,但是app工程用仿真器直接下载,断电从起无法运行,官方的做法是在code中关闭看门狗,但是我的需求是要从boot程序跳转到app程序,boot只是实现在线升级而已。我的app程序的启动部分该如何处理? 查资料看到有把app程序看成是boot的一个局部函数处理,即boot直接跳转到app的main(),但是我试过了,程序起不来。我想做两个单独的工程,只是可以通过boot下载app而已,那么在boot正确情况下,如何修改app的启动逻辑呢?
Susan Yang:
1 在F2837xD_sci_flash_kernels_cpu01例程中使用的是下面的方式,您可以参考一下 LCR _main 和 _ExitBoot: 2 您也可以使用下面的方式 static void (*APPEntry)(void); APPEntry = (void (*)(void))(EntryAddr); (*APPEntry)(); 网络上也有一些分享,您可以参考一下
https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/111336 blog.csdn.net/…/80755783
Susan Yang:
回复 user6329147:
所以现在在map文件中,APP_CINT00 地址是82000吗?
user6329147:
回复 Susan Yang:
是的。map确实如此,现在_c_int00在map里地址是82000. main()地址根据程序的修改会有所不同
Susan Yang:
回复 user6329147:
您是否可以得到跳转的 illegal ISR的handler?可以通过 NMI flag register来查看到底是什么引起了非法中断
Susan Yang:
回复 user6329147:
我在E2E上发了个帖子,您可以跟踪回复一下,谢谢