打印
[STM8]

stm8 在线升级问题

[复制链接]
3572|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sta|  楼主 | 2015-8-27 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sta 于 2015-8-27 14:04 编辑

在做 stm8s103的在线升级,无内置boot要自己写。若IAP分配空间0x8000开始,APP 0x9000开始。怎么配置才使我IAP里的跳转跳到0X9000地址时进入APP的main函数。

但是我在网上看到到的bootloader程序里,把中断向量表重定向在9000.并且跳转指令也跳到9000,这不是跳进中断向量里去了吗

还有就是怎么设置才能使APP的代码从9000开始存放
沙发
yiyigirl2014| | 2015-8-27 13:40 | 只看该作者
Bootloader应该在末端是个指针,将程序指向该地址,然后进入主函数。

使用特权

评论回复
板凳
sta|  楼主 | 2015-8-27 14:05 | 只看该作者
yiyigirl2014 发表于 2015-8-27 13:40
Bootloader应该在末端是个指针,将程序指向该地址,然后进入主函数。

你的意思是在9000里写个跳转指令,跳到主函数吗

使用特权

评论回复
地板
yiyigirl2014| | 2015-8-27 15:47 | 只看该作者
sta 发表于 2015-8-27 14:05
你的意思是在9000里写个跳转指令,跳到主函数吗

en ,就是这个意思,你试试看啊,我看人家好像是这么做的。

使用特权

评论回复
5
mmuuss586| | 2015-8-27 21:38 | 只看该作者
可以参考楼上意见

使用特权

评论回复
6
734774645| | 2015-8-28 08:22 | 只看该作者
我也来学习一下怎么做,原来是通过指针啊。

使用特权

评论回复
7
734774645| | 2015-8-28 08:22 | 只看该作者
具体指针跳转该怎么呢。

使用特权

评论回复
8
sta|  楼主 | 2015-8-28 08:43 | 只看该作者
yiyigirl2014 发表于 2015-8-27 15:47
en ,就是这个意思,你试试看啊,我看人家好像是这么做的。

昨天实验成功,发现并不需要自己加跳转指令。只要跳到APP存放的开始地址(9000),剩下的IAR帮你解决掉了,它会自动帮你跳到主函数。就像没有加IAP,开机进入8000一样。自己需要做的就是在icf文件里配置一下程序的存储位置。

使用特权

评论回复
9
734774645| | 2015-8-28 09:10 | 只看该作者
sta 发表于 2015-8-28 08:43
昨天实验成功,发现并不需要自己加跳转指令。只要跳到APP存放的开始地址(9000),剩下的IAR帮你解决掉了 ...

噢,不用在程序里写跳转指令吗

使用特权

评论回复
10
liuxiaoyun1210| | 2015-8-28 09:51 | 只看该作者
需要修改icf文件和跳转指令               
               asm("LDW X,  SP ");
                asm("LD  A,  $FF");
                asm("LD  XL, A  ");
                asm("LDW SP, X  ");
                // then jump to user application
                asm("JP 0x9000\n");
同时对应中断地址也需要增加跳转指令

使用特权

评论回复
11
598330983| | 2015-8-28 12:51 | 只看该作者
原来跳转直接用JP指令就行了啊,这么简单,谢谢楼上高人。

使用特权

评论回复
12
yiyigirl2014| | 2015-8-28 18:15 | 只看该作者
楼主终于成功了,我也是很替楼主高兴。

使用特权

评论回复
13
aundry| | 2015-8-28 18:43 | 只看该作者
很久很久之前弄过,量产了

使用特权

评论回复
14
sta|  楼主 | 2015-8-28 19:23 | 只看该作者
734774645 发表于 2015-8-28 09:10
噢,不用在程序里写跳转指令吗

IAP和APP之间的跳转需要跳转指令。内部的不需要。还有一个就是中断向量表的重定向,不过这不是用的跳转指令。

使用特权

评论回复
15
sta|  楼主 | 2015-8-28 19:28 | 只看该作者
liuxiaoyun1210 发表于 2015-8-28 09:51
需要修改icf文件和跳转指令               
               asm("LDW X,  SP ");
                asm("LD  A,  $FF");

你说的中断地址跳转是指中断向量重定向到APP区吧

使用特权

评论回复
16
309030106| | 2015-8-28 19:51 | 只看该作者
IAP和APP之间的跳转需要跳转指令。

使用特权

评论回复
17
734774645| | 2015-8-28 20:59 | 只看该作者
楼主应该已经搞定了,可喜可贺。

使用特权

评论回复
18
liuxiaoyun1210| | 2015-8-29 11:42 | 只看该作者
是的

使用特权

评论回复
19
lib6303c| | 2015-8-30 17:42 | 只看该作者
我之前做过430的在线串口升级固件,为此我一个月试用期转证了。

使用特权

评论回复
20
sta|  楼主 | 2015-8-31 08:47 | 只看该作者
lib6303c 发表于 2015-8-30 17:42
我之前做过430的在线串口升级固件,为此我一个月试用期转证了。

好巧,刚刚试用两周,希望也能一月转正

使用特权

评论回复
评论
lib6303c 2015-8-31 14:40 回复TA
预祝你早日转正! 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

sta

2

主题

13

帖子

0

粉丝