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了。
