1,首先确认你使用的STM8有没有自带的bootloader。参考下表
2,STM8空器件可以直接使用自带的bootloader。
3,STM8在使用SWIM烧录后,要想继续使用自带的bootloader,必须设置可选字节为0x55AA。如下图:
设置这两个字节的方法,可以使用ST Visual Programmer修改,如下图:
不过这个软件显示只能修改487Eh为0x55,487Fh没更改。官方提供的软件,很奇怪。所以,我采用下一种方法
在程序中设定,然后用SWIM下载一次,一次就够了。使用库函数如下:
/* Define FLASH programming time */ FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD); /* Unlock EEPROM Data memory */ FLASH_Unlock(FLASH_MEMTYPE_DATA); FLASH_ProgramByte(0x487E,0x55); FLASH_ProgramByte(0x487F,0xAA);
FLASH_Lock(FLASH_MEMTYPE_DATA);
4,最后,必须在器件复位后1S以内点击ST的Flashloader软件。设置如下:
其中echo选项可以先不选,若是显示失败,它提示你选上echo,你再选上。
附上英文原版描述:
详细bootloader流程,请参考UM0560,根据该手册你可以把烧录过程写到自己的上位机软件中,无需借助flashloader了。