
关于这个问题,网上关于这个问题的答案,可以划分为三种,一种是在bootloader程序中,在跳转之前没有将使用过的的中断关闭,导致在跳转的时候,中断被响应,导致打断了跳转,另一种就是将在地址设定后,中断向量表的地址没有进行迁移,还有就是堆栈的问题,但是我试了相关的方法,我使用的时候都不生效
问题
一种是从bootloader程序进行跳转,裸机的时候,可以完美的跳转到APP程序,但是一旦这个APP程序带上了FreeRTOS就直接跳飞了,具体表现在,将bootloader程序刷好之后,刷上带有FreeRTOS的APP,连bootloader程序都不行了,正常情况下,只刷APP程序,是影响不到bootloader程序的,可结果是两个程序都有问题了,直接卡死

这样调试,也不知道错在哪里,所以最终直接重新用一个移植一个FreeRTOS,然后,果然,问题就少了一半,bootloader程序可以保存,但是在跳转APP的时候,依然是跳飞,
第二个问题,也就是重新移植之后,出现了一个问题,bootloader程序可以保留,可以正常的运行,然后进行跳转,但是跳转到APP程序的时候,在启动任务调度器,也就是 vTaskStartScheduler() 这个方法的时候,在初始化启动第一个任务的时候,直接进入了硬件错误,也就是图中用红线框住的。

利用debug的时候的call stack window 窗口查看,这个问题网上也有比较多的说法,一种是移植的时候,FreeRTOS重定义的三个中断,没有添加的启动文件中

但是,其实只要在FreeRTOSConfig.h的这个文件中,添加上对应的定义,就可以了,就不需要前面的设定

2.解决方法(不具有普适)
这个方法失败了,结果我看到了一篇帖子,是关于优先级的问题,优先级设置错误,就会导致在创建任务的跳转到硬件错误

然后就能正常跳转了