打印
[STM8]

如何让STM8S208MB IAP变的容易?

[复制链接]
2240|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nienianhong|  楼主 | 2013-11-22 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要使用STM8S208MB IAP功能,应该具备哪些知识?
沙发
香水城主| | 2013-11-22 18:55 | 只看该作者
应该具备哪些知识?

首先会自己找资料、看资料。

使用特权

评论回复
板凳
huangfeng33| | 2013-11-26 10:16 | 只看该作者
使用IAP时有几点要注意:
1. IAP-BOOT程序:
   A. 修改LNK文件(lnkstm8s105s4.ICF),定义块编程放在ROM区
    initialize by copy { rw, ro section .tiny.rodata, section FLASH_CODE};
   
    代码中定位块写程序的位置
    #pragma location = "FLASH_CODE"
    unsigned char IAP_bWrBlock(void){...}
   B. 修改向量表文件(stm8s_interrupt.S),使中断指向用户程序的向量地址(0X8800开始);
   C. 编译选项Linker重定向到已修改的文件lnkstm8s105s4.ICF;
   D. 项目文件中添加stm8s_interrupt.S文件;
   E. 编译生成的文件即为用户代码引导区;   F. 设置OPTION选项,ROP=0xAA, UBC=0x02(BOOT区大小,0x8000--0x87FF, IAP不能修改该段代码)
2. IAP-USER程序
   A. 修改LNK文件(lnkstm8s105s4.ICF),定义用户代码区间,避开BOOT区(起始:0x8800)
   B. 编译生成的文件即为用户程序区;
3. 烧录步骤:
    A. BOOT程序和OPTION先烧录进芯片
    B. BOOT引导过程中主机发同步码,进入IAP升级。

使用特权

评论回复
地板
aundry| | 2014-9-2 14:46 | 只看该作者
huangfeng33 发表于 2013-11-26 10:16
使用IAP时有几点要注意:
1. IAP-BOOT程序:
   A. 修改LNK文件(lnkstm8s105s4.ICF),定义块编程放在ROM区

:)请问一下,现在发现使用STM8块标准编程,0x8000到0xFFFF这一段可以正常在线刷写数据
但是从0x10000开始之后,就出现问题,感觉是__far操作让块的操作挂掉了
最终跟踪汇编发现把函数Mem_ProgramBlock定义在RAM区,但是里面关于Flash的赋值会编译成的汇编地址在Flash中,难道还要自己用汇编写Flash的赋值函数?

使用特权

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

本版积分规则

17

主题

395

帖子

1

粉丝