stm32用IAP升级带操作系统的程序,下载成功,但运行失败

100mdppp   2010-1-18 15:50 楼主
stm32用IAP升级带操作系统的程序,下载成功,但运行失败?而升级不带操作系统的程序,都能成功运行,不知道为什么?操作系统用的是mdk自带的rtx,这个app直接跑是没有问题的,就是用iap起动不来,伤透脑了,那个大哥知道啊

回复评论 (14)

                                 怎么一个人也没有回复啊,是问题太简单了,还是太难了?
点赞  2010-1-18 20:40
                                 把最后跳转到应用程序的代码贴上来看看
点赞  2010-1-18 20:42
#define ApplicationAddress 0x08008000   //应用程序区

/* Jump to user application */
      JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
      Jump_To_Application = (pFunction) JumpAddress;
      /* Initialize user application's Stack Pointer */
      __set_MSP(*(__IO uint32_t*) ApplicationAddress);
      Jump_To_Application();


跳转代码应该是不会错的,因为我用别的不带操作系统的程序试过,是可以的,同一个iap程序。
点赞  2010-1-18 21:01
                                 不知道带操作系统的程序与不带操作系统的程序,是不是有那里不同啊,比如初始化堆栈等?那位兄弟玩过啊?
点赞  2010-1-18 21:03
直接更换成人家的例程,需要注意向量表位置……
要和你的bootloader约定的“0x08008000”一致
点赞  2010-1-18 21:06
                                 你开中断了吗,跳转前把中断关掉试试。
点赞  2010-1-18 21:48
                                 需要进行中断向量的重映射,你查一下以前STR710的帖子,里面有关于这方面的
点赞  2010-1-19 08:17
                                 和普通的没有os的单线程iap一样的,我试过,没什么问题
点赞  2010-1-19 08:25
                                 "LIU_XF",你好,我把所有中断都关了,还是不行。
点赞  2010-1-19 08:40
                                 tyz114499,你好,请问怎么进行中断向量的重映射啊,我查了STR710的,没有啊?
点赞  2010-1-19 08:41
                                 ecomputer,你好,我不是说iap带os,是app带os 的,起动不起来,但是用不带os 的app是可以的,用的同一个iap
点赞  2010-1-19 08:42
                                 带os 的与不带os 的,跳转到的位置也不一样,很奇怪啊,
点赞  2010-1-19 08:53


点赞  2010-1-19 08:54
                                 都没有人回复嘛,自已顶一下!
点赞  2010-1-19 21:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复