打印
[ARM入门]

STM32 从APP跳到IAP怎么串口能发不能收!!急!!!

[复制链接]
3546|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianlianyihao|  楼主 | 2014-8-1 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lr2131| | 2014-8-2 11:40 | 只看该作者
你是怎么跳转的?建议用硬复位方式,感觉是中断向量表那块有问题,接收你是用的中断吧,发生接收中断的时候,跳转到APP的ISR中了,没有到IAP的ISR中。

使用特权

评论回复
板凳
tianlianyihao|  楼主 | 2014-8-3 23:20 | 只看该作者
lr2131 发表于 2014-8-2 11:40
你是怎么跳转的?建议用硬复位方式,感觉是中断向量表那块有问题,接收你是用的中断吧,发生接收中断的时候 ...

大神我是这样的,我首先是使用串口1把IAP下载到0X800000这个起始地址运行,然后使用循环等待串口1收到命令进入IAP引导APP到0x8003000这个地址并运行,再在APP中使用循环等待串口1收到命令后跳转到IAP中;跳到IAP之后它应该像之前一样继续等待接受我的命令(即接受串口1的数据)跳到下载菜单下载(即串口1 下载2进制文件);问题就在这了它收不到我发的命令了??如果像你说的那这个怎么改?我在APP的中断向量表重映射是0x800000+4,在IAP主函数有SCB->VOTAL=0X800000|0X0(我是直接拿官网给的例程改的就只是改了接受跳转这部分)。非常感谢你回答哦亲!这个弄了好久就是找不到问题

使用特权

评论回复
地板
tianlianyihao|  楼主 | 2014-8-3 23:33 | 只看该作者
lr2131 发表于 2014-8-2 11:40
你是怎么跳转的?建议用硬复位方式,感觉是中断向量表那块有问题,接收你是用的中断吧,发生接收中断的时候 ...

接收是这样的函数  if ( USART_GetFlagStatus(EVAL_COM1, USART_FLAG_RXNE) != RESET)
  {
    *key = (uint8_t)EVAL_COM1->DR;
    return 1;
  }

使用特权

评论回复
5
tianlianyihao|  楼主 | 2014-8-3 23:34 | 只看该作者
lr2131 发表于 2014-8-2 11:40
你是怎么跳转的?建议用硬复位方式,感觉是中断向量表那块有问题,接收你是用的中断吧,发生接收中断的时候 ...

还有我是想做在线升级所以没有操作到硬件,如果复位只能软件复位了;但不知道行不行,我的那些命令是LINUX小主机发过来的。

使用特权

评论回复
6
lr2131| | 2014-8-4 16:05 | 只看该作者
tianlianyihao 发表于 2014-8-3 23:20
大神我是这样的,我首先是使用串口1把IAP下载到0X800000这个起始地址运行,然后使用循环等待串口1收到命 ...

亲,请不要叫我大神,我也只是个小小的程序猿。

看你的描述,我有些晕了,感觉跳来跳去的,不知道具体是怎么回事。

你用的是什么MCU?开发环境?用的什么仿真器和烧录方法?

首先,你说用串口把IAP下载到0x80000000,那这个时候MCU上跑的程序是你自己写的程序吗,我不知道你是不是用的官方的串口烧写工具烧写或下载到MCU的。

使用特权

评论回复
7
tianlianyihao|  楼主 | 2014-8-4 21:47 | 只看该作者
lr2131 发表于 2014-8-4 16:05
亲,请不要叫我大神,我也只是个小小的程序猿。

看你的描述,我有些晕了,感觉跳来跳去的,不知道具体是 ...

阿鲁瓜多,我现在用软件复位方式已经可以了;只是想知道我这样设置为什么不行?具体问题跟这个链接是一样的只是他好像也没又给出具体原因:https://bbs.21ic.com/forum.php?mod=viewthread&tid=127354

使用特权

评论回复
8
lr2131| | 2014-8-5 10:59 | 只看该作者
看样子,应该是在跳转的时候,可能是没有关中断引起的问题,或者说在进中断前,有些准备工作没做好,中断出问题了。照说,中断向量表没问题,ISR也都是好的,中断那些配置也行,组件的设置也对,初始化和设置顺序,正常跳转就不会出问题

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝