欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    基于STM32的IAP升级程序分享.doc

    • 资源ID:3412174       资源大小:18.50KB        全文页数:3页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于STM32的IAP升级程序分享.doc

    基于STM32的IAP升级程序分享因为之前写个STM32的IAP升级程序,所以我总结了做IAP升级的三个主要的难点:1、如何设置中断向量,也就是说中断向量的重定向2、如何配置程序的起始地址3、如何从IAP跳转到APP程序4、使用库函数要注意的地方(防止被坑)说文章的时候我已经完成了一个最简单的IAP升级程序,可以通过串口接收bin文件写入到flash里面,然后再运行。1、如何设置中断向量,也就是说中断向量的重定向STM8不像STM32那样有个一寄存器管理着中断向量的地址,所以STM32的中断可以任意设置(符合要求的情况之下),但是STM8的中断向量表是固定的在0X8000地址,不能修改,所以BOOT区不能开中断,否则会和APP区的中断打架,但是APP区的一但开启中断后就会跳转到0x8000地址,这样就跳到了BOOT区,因此需要使用跳转指令将中断跳回到APP区,通过下面的方式就可以重定向APP的中断向量,但是bootloader就不可以使用中断了,但是网上有人说可以把中断定向到arm里面,通过arm的属性在bootloader和APP分别重定向,就可以实现bootloader和APP都使用中断,但是我还不会 ,如果你们会可以留言告诉我 谢谢_root const long reintvec“.intvec”=0x82008080,0x8200A804,0x8200A808,0x8200A80c,0x8200A810,0x8200A814,0x8200A818,0x8200A81c,0x8200A820,0x8200A824,0x8200A828,0x8200A82c,0x8200A830,0x8200A834,0x8200A838,0x8200A83c,0x8200A840,0x8200A844,0x8200A848,0x8200A84c,0x8200A850,0x8200A854,0x8200A858,0x8200A85c,0x8200A860,0x8200A864,0x8200A868,0x8200A86c,0x8200A870,0x8200A874,0x8200A878,0x8200A87c,; 这就是我的重定向中断 ,因为STM8的flash从0x8000开始到0xA800 正好是0x2800字节 ,这个数正好是10K,也就是说我给bootloader预留了10K的空间,而我用的stm8s207R8t6是64k2、如何配置程序的起始地址配置bootloader程序空间的大小是在一个后缀为icf的文件里面设置,这个文件在iar的安装目录里面的有我安装的目录如下C:Program Files (x86)IAR SystemsEmbedded Workbench 7.0stm8config在这里面可以看到好多.icf后缀的文件,然后选择一个和芯片一致的,我就选择lnkstm8s207r8.icf,复制到我们的工程里面,再在IAR里面如下设置r然后打开icf文件修改如下define region NearFuncCode = from 0x8000 to 0xA7FF;define region FarFuncCode = from 0x8000 to 0xA7FF;/ “ from 0x10000 to 0x17FFF;define region HugeFuncCode = from 0x8000 to 0xA7FF;这面都是说修改的是bootloader的程序下面是修改app的icf文件define region NearFuncCode = from 0xA800 to 0x17FFF;define region FarFuncCode = from 0xA800 to 0xFFFF| from 0x10000 to 0x17FFF;define region HugeFuncCode = from 0xA800 to 0x17FFF;到这里地址的修改也就完成了,下面开始说下跳转3、如何从IAP跳转到APP程序STM8的跳转很容易,利用如下汇编就可以实现跳转asm(”LDW X, SP “);asm(”LD A, $FF“);asm(”LD XL, A “);asm(”LDW SP, X “);asm(”JPF $A800“);这个就是实现跳转到app的程序4、使用库函数要注意的地方(防止被坑)使用库函数读写flash的时候一定要注意,因为STM8的flash的库函数有点问题,他把地址都强制转换成16位的了,16位的寻址范围是0至0xFFFF的64K空间,但是STM8的flash使用0x8000开始,64kflash的大小空间到了0x17FFF,所以如果不修改库函数的读写就会出错。这就是库函数的,我们要把它改成uint32_t这样才可以读写超过0xFFFF的地址

    注意事项

    本文(基于STM32的IAP升级程序分享.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开