打印

有没有人知道stm32从用户代码直接跳转到ISP代码的方法

[复制链接]
4907|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
byeyear|  楼主 | 2011-10-19 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
记得以前坛子里有人提到过 搜不到了
求解答
沙发
香水城| | 2011-10-19 21:54 | 只看该作者
跳到哪里?什么地址?

使用特权

评论回复
板凳
mcuisp| | 2011-10-20 00:54 | 只看该作者
有人知道:
从ISP代码所在的区域的第一个DWORD 取MSP值,第二个DWORD取值赋给Rn, B Rn,搞定

使用特权

评论回复
地板
hotpower| | 2011-10-20 03:34 | 只看该作者
谢谢~~~

使用特权

评论回复
5
byeyear|  楼主 | 2011-10-20 10:53 | 只看该作者
额,这年头说谢谢也有人抢。。。。。。

使用特权

评论回复
6
suse-lj| | 2011-10-20 12:56 | 只看该作者
我们都学习了嘛  我也说声xiexie

使用特权

评论回复
7
mcuisp| | 2011-10-20 19:23 | 只看该作者
额,这么多人谢谢,不好意思不上个代码了:
汇编版:
#define BootLoaderAddress 0x1ffff800  ;//根据IspBootLoader地址不同,需修改此处地址
    MOVW    R1,#BootLoaderAddress
   MOVT    R1,#BootLoaderAddress >>16;
    LDR     R0,[R1,#0];
    MSR     MSP,R0;
    MSR     PSP,R0;
    MOVW    R1,#(BootLoaderAddress+4);//
   MOVT    R1,#(BootLoaderAddress+4)>>16;
    LDR     R0,[R1,#0];
    BX      R0;
C版待补

注:
1、本人未实际干过这事,以上代码敬请验证后使用
2、预先反初始化一下各种外设,特别是DMA,会更理想。调用库函数的DeInit();

使用特权

评论回复
8
baidudz| | 2011-10-20 19:31 | 只看该作者
都很客气嘛,大叔带头

使用特权

评论回复
9
it_yrj| | 2014-7-12 12:51 | 只看该作者
多谢分享

使用特权

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

本版积分规则

37

主题

296

帖子

0

粉丝