[STM8] stm8 在线升级问题

[复制链接]
 楼主| 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 ,就是这个意思,你试试看啊,我看人家好像是这么做的。
mmuuss586 发表于 2015-8-27 21:38 | 显示全部楼层
可以参考楼上意见
734774645 发表于 2015-8-28 08:22 | 显示全部楼层
我也来学习一下怎么做,原来是通过指针啊。
734774645 发表于 2015-8-28 08:22 | 显示全部楼层
具体指针跳转该怎么呢。
 楼主| sta 发表于 2015-8-28 08:43 | 显示全部楼层
yiyigirl2014 发表于 2015-8-27 15:47
en ,就是这个意思,你试试看啊,我看人家好像是这么做的。

昨天实验成功,发现并不需要自己加跳转指令。只要跳到APP存放的开始地址(9000),剩下的IAR帮你解决掉了,它会自动帮你跳到主函数。就像没有加IAP,开机进入8000一样。自己需要做的就是在icf文件里配置一下程序的存储位置。
734774645 发表于 2015-8-28 09:10 | 显示全部楼层
sta 发表于 2015-8-28 08:43
昨天实验成功,发现并不需要自己加跳转指令。只要跳到APP存放的开始地址(9000),剩下的IAR帮你解决掉了 ...

噢,不用在程序里写跳转指令吗
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");
同时对应中断地址也需要增加跳转指令
598330983 发表于 2015-8-28 12:51 | 显示全部楼层
原来跳转直接用JP指令就行了啊,这么简单,谢谢楼上高人。
yiyigirl2014 发表于 2015-8-28 18:15 | 显示全部楼层
楼主终于成功了,我也是很替楼主高兴。
aundry 发表于 2015-8-28 18:43 | 显示全部楼层
很久很久之前弄过,量产了
 楼主| sta 发表于 2015-8-28 19:23 | 显示全部楼层
734774645 发表于 2015-8-28 09:10
噢,不用在程序里写跳转指令吗

IAP和APP之间的跳转需要跳转指令。内部的不需要。还有一个就是中断向量表的重定向,不过这不是用的跳转指令。
 楼主| sta 发表于 2015-8-28 19:28 | 显示全部楼层
liuxiaoyun1210 发表于 2015-8-28 09:51
需要修改icf文件和跳转指令               
               asm("LDW X,  SP ");
                asm("LD  A,  $FF");

你说的中断地址跳转是指中断向量重定向到APP区吧
309030106 发表于 2015-8-28 19:51 | 显示全部楼层
IAP和APP之间的跳转需要跳转指令。
734774645 发表于 2015-8-28 20:59 | 显示全部楼层
楼主应该已经搞定了,可喜可贺。
liuxiaoyun1210 发表于 2015-8-29 11:42 | 显示全部楼层
是的
lib6303c 发表于 2015-8-30 17:42 | 显示全部楼层
我之前做过430的在线串口升级固件,为此我一个月试用期转证了。
 楼主| sta 发表于 2015-8-31 08:47 | 显示全部楼层
lib6303c 发表于 2015-8-30 17:42
我之前做过430的在线串口升级固件,为此我一个月试用期转证了。

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

评论

预祝你早日转正!  发表于 2015-8-31 14:40
您需要登录后才可以回帖 登录 | 注册

本版积分规则

sta

2

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
sta

2

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部