jianguo 发表于 2015-3-26 21:27:51

Stm8单片机bootloader中iap和app都要用中断

    stm8的bootloader是这样设计的,第一区自然是bootloader即iap地址0x8000---0x9000,第二区程序运行区即app1地址0x9000---0xC800,第三区程序运行2区,(用于在升级断电情况下恢复)例如:老版本固件程序在app1区运行,需要升级即进入bootloader接受数据进行升级,擦写的是zone2区,这时如果断电就继续跳转运行zone1,如果升级成功跳转zone2.地址0xC800---0xFFFF

    现在问题来了,zone1和zone2都是正常程序,都需要中断向量表,之前的实现方式是bootloader不要中断向量,做个中断向量映射直接到zone1区。可是zone2区就没法用了,好纠结。
   也做过另一种尝试zone1中的程序有中断时跳到bootloader的中断向量中执行bootloader的中断处理函数,然后在中断处理函数中做分支跳转,检测EEPROM中的标志,看是跳转到ZONE1还是ZONE2,这个方法能正常跳转,但是每次跳转都会执行一遍bootloader的程序,不知道怎么回事。
    请大牛们帮帮忙。互相进步,希望有同样困然的童鞋能得到帮助。分享是种美德,谢谢。

拼命三郎 发表于 2015-3-26 22:06:47

拼命三郎 发表于 2015-3-26 22:07:11

zfz0122 发表于 2015-3-27 00:06:53

不懂帮顶了

wu1169668869 发表于 2015-3-27 00:16:46

略高深的样子…没弄过

木木鱼 发表于 2015-3-27 08:18:39

帮忙顶一下

dwwzl 发表于 2015-3-27 08:33:36

stm8内部资源太少,没有必要吧

zhangdaijin 发表于 2015-3-27 13:24:11

:D:D:D:D:D

幻梦 发表于 2015-8-9 17:24:37

楼主找到解决方案没

爱哭的热带鱼 发表于 2015-8-28 19:59:51

最近也得弄这个还在婴儿阶段=========
页: [1] 2
查看完整版本: Stm8单片机bootloader中iap和app都要用中断