当前位置:文档之家› STM8S做IAP

STM8S做IAP

STM8S做IAP
STM8S做IAP

STM8S做IAP

一:环境与平台

MCU:STM8S005K6

集成开发环境:STVD

开发方式:库开发

芯片内部存储”偷窥”软件Smart PRO 2008

二:在RAM中运行代码

0.在STM8s.h中将#define RAM_EXECUTION (1)的注释去掉,以使用RAM功能.

1. 利用编译器函数#pragma section (FLASH_CODE) , #pragma section () 对函数void FLASH_ProgramBlock(Num,PROG, FAST ,Buffer);进行声明.FLASH_CODE是声明的这段代码的名字,可以自己随便取.

同时函数用IN_RAM包括.

举例代码如下:

#pragma section (FLASH_CODE)

IN_RAM(void FLASH_ProgramBlock(Num,PROG, FAST ,Buffer))

{

Num=PROG+ FAST +Buffer;

}

#pragma section ()

2.声明编译器函数int _fctcpy(char name);

3.在函数FLASH_ProgramBlock运行前时,利用编译器函数int _fctcpy(char name)将函数FLASH_ProgramBlock复制到RAM中.形参char name是指要复制的代码段名字的首字母.此例中要复制的代码段名为FLASH_CODE.所以应该写成: _fctcpy('F');

4.在STVD软件, project工程, seting设置, linker链接器, Gategory , Input , RAM 栏中添加要在RAM中运行的代码" . FLASH_CODE"名, 并在option中输入"-ic".具体见图片.

如果出现没有" . FLASH_CODE"的默认位置这样的错误,说明这步没有处理好.

三:STM8S的中断特性

1 把APP的中断向量表地址改成0xa300 , Flash地址改成oxa380 , 之后程序不能执行.

把APP的中断向量表地址改成0x8000 , Flash地址改成oxa380 , 之后程序就能执行.是因为一上电STM8S就读取0x8000-0x8003的复位地址,以实现复位,但找不到. 这异常与复位中断有关,STM8S读取中断向量表的地址只能是0x8000到0x8080.谁的复位函数地址处在0x8000,就复谁的位.复位就是跳转主函数开始地址的意思.STM8S单片机主函数地址/复位地址是0x8000-0x8003.

地址0x8004-0x8080为其它中断函数地址

2.局部的变量,全局的变量,都在主函数运行后被赋初值或运行中改变值,这些变量都存储在RAM中.只有code/const指定了的才会在ROM中.

3.可以利用软件复位实现软件间跳转(跳转前修改地址0x8000-0x8003中复位函数的地址); 也可直接利用跳转指令实现跳转.

四:操作流程

1 :APP软件,在STVD软件中,工程->设置->Linker->Caneral->Input中,设置中断地址0xa300 , Flash地址0xa380 .设置是否完成会在.lkf文件中看到,这是地址分配文件

2 :Boot软件,在软件中利用汇编指令跳转到APP代码Flash的开始地址.

_asm("LDW X, SP ");

_asm("LD A, $FF");

_asm("LD XL, A ");

_asm("LDW SP, X ");

_asm("JPF $A380"); //跳转到APP Flash地址0xA380

嵌入app.bin的地址为偏移地址,包含中断向量表地址/Flash 地址.

Boot代码的地址分配默认.

3.利用smart Pro软件将APP.hex文件转化成APP.bin

4.利用二进制软件,修剪无用数据

5.先在smart pro 2008中导入Boot.hex ,再导入修剪过的app.bin , 最后保存为Down.hex即可. 注意,导入app.bin时,不要清除之前导入的Boot代码.同时注意导入的app.bin 文件的Flash地址,导入到缓冲区的地址(器件地址)要对应跳转地址.

五:Smart PRO 2008的应用.

1.该软件可作一般二进制处理软件使用.但其特别之处在于,它的显示区/缓冲区/器件存储区都是基于具体真实的芯片存储架构,所以比一般的二进制软件好操作芯片的存储.具体操作在此不说明,可单独联系我.

六:声明/其它

1:以上内容为个人观点,没有经过严格测试,如有使用,请使用者自行评估风险,出现问题本人一概不负责!

2:技术交流:3228504429

相关主题
相关文档 最新文档