欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用STM8S自带BootLoader_1

程序员文章站 2022-07-04 19:23:04
...

本文将详细记载怎么使用STM8S自带BootLoader实现程序更新。

准备工作:
1. ST支持文档 UM0560(说明BootLoader怎么用)
2. ST官方下载软件 STMFlashLoader Demo.exe
3. IAR Embedded Workbench 、ST Visual Programmer
4. 2块STM8S105K6,用来实现更新操作。

实践操作:
1. 使用STVP -> OPTION BYTE -> ROP ->Read Out Protection OFF
STVP -> OPTION BYTE -> BOOTLOADER ENABLE ->BootLoader Enable
本文只记载怎么使用BootLoader,如果读保护使能了,不在本文讨论范围(在UM0560中有提到怎么处理)。为什么这两个字节选项字要处理,在UM0560中有说明,不这样操作,不能进入BootLoader程序,MCU复位后检测到这个这两个选项字节不符,则跳转到用户应用程序区0x8000地址处。

补充说明:
使能BootLoader能够用库函数,写字节选项字。

FLASH_Unlock(FLASH_MEMTYPE_DATA);       //解锁Flash
FLASH_ProgramOptionByte(0x487E, 0x55);  //使能BootLoader
FLASH_Lock(FLASH_MEMTYPE_DATA);         //上锁Flash这里写代码片

读保护不能用库函数写。

  1. 使用UART和PC通讯
    PC端打开STMFlashLoader Demo.exe,连接好串口。
    使用STM8S自带BootLoader_1
    在MCU复位1S之内,点击Next.
    使用STM8S自带BootLoader_1
    如果不能进入上图界面,从3个方面检查:
    1.第1步,两个字节选项字是不是已经配置好。
    2.串口TX,RX是不是连接正确。
    3.MCU供电是不是正常。
    使用STM8S自带BootLoader_1
    选择MCU密度容量,上面对应固件版本号1.3,是上位机从Boot区读出来的。点击Next。

下面进入erase,download,updata界面。擦除不多说,操作一下就明白什么意思。updata是指把MCU的程序读出来保存成文件。重点来说一下下载操作。
使用STM8S自带BootLoader_1
执行下载之前要执行标号1。这里的要点是标号2,不要加载HEX文件,如果加载了HEX文件则标号3不能操作,写入地址不可选。原因是HEX文件本身就包含了写入地址信息,所以不可改,在IAR中可编辑OPTION选择生成Bin文件。生成了Bin文件才可以选择下地址。
使用STM8S自带BootLoader_1
我这里选择的地址是0xA000,这个地址是开发者自己确定的,APP1.bin包含的是要更新的固件信息。也就是要复制到目标板从机的程序。

操作到这里,BootLoader就已经完成一半的任务了,下篇说主机MCU怎么和从机握手,然后主机更新从机的程序。

我自己在操作的时候想怎么把固件程序和应用程序分段放到主机的flash中,各种论坛救助,没有得到满意的回复。偶然加载了一次Bin文件,问题才解决,特意写下来,希望能帮助到有同样困惑的人。

相关标签: STM8S BootLoader