打印

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

[复制链接]
10481|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32用IAP升级带操作系统的程序,下载成功,但运行失败?而升级不带操作系统的程序,都能成功运行,不知道为什么?操作系统用的是mdk自带的rtx,这个app直接跑是没有问题的,就是用iap起动不来,伤透脑了,那个大哥知道啊
沙发
skymlj2000|  楼主 | 2010-1-18 20:40 | 只看该作者
怎么一个人也没有回复啊,是问题太简单了,还是太难了?

使用特权

评论回复
板凳
again_gyf| | 2010-1-18 20:42 | 只看该作者
把最后跳转到应用程序的代码贴上来看看

使用特权

评论回复
地板
skymlj2000|  楼主 | 2010-1-18 21:01 | 只看该作者
#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程序。

使用特权

评论回复
5
skymlj2000|  楼主 | 2010-1-18 21:03 | 只看该作者
不知道带操作系统的程序与不带操作系统的程序,是不是有那里不同啊,比如初始化堆栈等?那位兄弟玩过啊?

使用特权

评论回复
6
mohanwei| | 2010-1-18 21:06 | 只看该作者
直接更换成人家的例程,需要注意向量表位置……
要和你的bootloader约定的“0x08008000”一致

使用特权

评论回复
7
LIU_XF| | 2010-1-18 21:48 | 只看该作者
你开中断了吗,跳转前把中断关掉试试。

使用特权

评论回复
8
tyz114499| | 2010-1-19 08:17 | 只看该作者
需要进行中断向量的重映射,你查一下以前STR710的帖子,里面有关于这方面的

使用特权

评论回复
9
ecomputer| | 2010-1-19 08:25 | 只看该作者
和普通的没有os的单线程iap一样的,我试过,没什么问题

使用特权

评论回复
10
skymlj2000|  楼主 | 2010-1-19 08:40 | 只看该作者
"LIU_XF",你好,我把所有中断都关了,还是不行。

使用特权

评论回复
11
skymlj2000|  楼主 | 2010-1-19 08:41 | 只看该作者
tyz114499,你好,请问怎么进行中断向量的重映射啊,我查了STR710的,没有啊?

使用特权

评论回复
12
skymlj2000|  楼主 | 2010-1-19 08:42 | 只看该作者
ecomputer,你好,我不是说iap带os,是app带os 的,起动不起来,但是用不带os 的app是可以的,用的同一个iap

使用特权

评论回复
13
skymlj2000|  楼主 | 2010-1-19 08:53 | 只看该作者
带os 的与不带os 的,跳转到的位置也不一样,很奇怪啊,

使用特权

评论回复
14
skymlj2000|  楼主 | 2010-1-19 08:54 | 只看该作者
本帖最后由 skymlj2000 于 2010-1-19 08:57 编辑

使用特权

评论回复
15
skymlj2000|  楼主 | 2010-1-19 21:26 | 只看该作者
都没有人回复嘛,自已顶一下!

使用特权

评论回复
16
成成| | 2010-1-23 14:59 | 只看该作者
在进行硬件初始化之后,必须要采用这个函数重新定位一下你的中断向量表
NVIC_SetVectorTable(Flash_Base,  App_Offset);
否则你的应用程序中断处理都会跑到IAP的中断向量表运行了

使用特权

评论回复
17
lshlin| | 2011-12-22 11:22 | 只看该作者
楼主的问题解决了吗?我也遇到一样的问题,升级MDK自带的RTX运行不正常,
很奇怪,用J-link直接下载又可以。

使用特权

评论回复
18
ningzb| | 2013-1-22 10:57 | 只看该作者
楼主和楼上的问题解决了么?我也遇到同样的问题了

使用特权

评论回复
19
goldsun_| | 2013-1-22 14:13 | 只看该作者
BOOT线电平选择对,用stm32-stm8_flash_loader2.6下载非常方便,2个串口都能用,下载成功后,恢复BOOT电平,即可正常运行。

使用特权

评论回复
20
yyql008| | 2013-1-22 18:05 | 只看该作者
NVIC_SetVectorTable(Flash_Base,  App_Offset);重新定义中断向量表.
注意,这个一定要放在main函数的第一句.
你放在第一句试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

0

粉丝