历史上的今天
返回首页

历史上的今天

今天是:2024年12月24日(星期二)

正在发生

2019年12月24日 | STM8L自带bootloader使用教程

2019-12-24 来源:eefocus

笔者使用的单片机型号是:STM8L151C8T6,有64kFlash


本教程可能使用的文件下载地址:


官方固件及指导手册:https://www.stmcu.com.cn/Index/search?search_keywords=UM0560


百度网盘链接:https://pan.baidu.com/s/1XyBWJIhHsuwWgwGNuHaULA  提取码:9rgk 


CSDN下载链接(提供官方源地址,可免费下载):https://download.csdn.net/download/aaricyang/11199903


有读者问软件复位可不可以,答案是不行,软件复位地址是0x8000,NRST引脚复位地址是0x6000。所以只能而且必须使用NRST引脚复位。


一、Boot ROM使用流程

1、确认芯片供电稳定(尤其重要,特别是通过NRST引脚复位瞬间);


2、修改Option Byte的“ROP”位为0xAA,BLCHECK1为0x55,[BLCHECK2为0xAA](根据单片机型号可选);


3、硬件复位(给NRST引脚一个下降沿);


4、通过Flash Loader Demo下载烧写文件,即hex文件;


5、硬件复位。


二、 工具准备

1、ST Visual Programmer(软件 )


下载地址:https://www.st.com/zh/development-tools/stvp-stm32.html


作用:修改Option Byte的BLCHECK位


2、Flash loader demonstrator(软件)


下载地址:


https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html


作用:二进制文件烧写


3、ST Link(硬件设备,需安装驱动)


驱动下载地址:https://www.st.com/en/development-tools/stsw-link009.html


作用:配合STVP,修改Option Byte的BLCHECK位


4、UART--USB转接板(硬件设备,需安装驱动)


驱动下载地址:http://www.wch.cn/download/CH341SER_EXE.html


作用:配合Flash loader demonstrator,下载二进制文件


三、操作步骤

1、修改Option Byte


需了解,ROP位只能通过SWIM修改,且其默认值就是0xAA,正是我们所需要的值。


而BLCHECK位也可以通过代码修改,代码如下,笔者使用的STM8L151C8T6,BLCHECK位的地址是0x480B,读者应根据自己的芯片类型修改。


FLASH_Unlock(FLASH_MemType_Data); //解锁Flash

FLASH_ProgramOptionByte(0x480B, 0x55); //使能BootLoader,根据芯片类型修改地址

FLASH_Lock(FLASH_MemType_Data); //上锁Flash

(1) 通过ST Link的SWIM口,连接电脑USB和开发板;


(2) 打开STVP,选择芯片型号,在Option Byte页面,修改ROP位和BLCHECK位,如下图所示;

(3) 点击下图按钮,将修改好的Option Byte下载到单片机中。

2、下载hex文件


2.1、把开发板通过 USB 线连接到电脑上;


2.2、打开“Flash_Loader_Demonstrator_v2.6.0_Setup”一键下载软件,如下图所示:

2.2.1、选择 CH340 对应电脑分配的 COM 口号(我电脑是 COM18);

2.2.2、选择合适的波特率:


在一定范围内,波特率越高,下载速度越快;(笔者的测试结果是,波特率超过38400后,45kbytes的hex文件,下载时间稳定在30s左右;波特率超过128000后,通讯失败)


2.2.3、配置通讯协议:


必须要如图设置才可以;

2.3、以上参数设置好后,给NRST引脚一个复位信号后 1 秒内,单击进入以下界面:重要!!

2.4、选择芯片类型


进 入 以 上 界 面 通 过,选 择STM8L芯片对应的 FLash 大小,如果是 K4 则选择 STM8L_16K;如果是 K6 则选择 STM8L_32K,笔者用的是C8,所以选STM8L_64K。


2.5、直接单击 “Next” 进入下一界面,如下图所示:


2.6、下载程序

通过选择要下载的 HEX 文件,最后单击”Next”开始下载程序,等待下载完成。如下图。

程序下载完成后,关闭软件,再通过NRST引脚复位一下,程序开始运行。此时Option Byte的BLCHECK位会恢复成默认值0x00。 

推荐阅读

史海拾趣

CYAN公司的发展小趣事

随着公司的发展,CYAN开始寻求与大型企业的合作。2009年,CYAN与沃尔沃汽车达成战略合作,为其提供了先进的网络解决方案,并成功将技术应用于沃尔沃的量产车型中。这次合作不仅提升了CYAN的品牌知名度,也为其带来了更多的商业机会。

HALO Electronics公司的发展小趣事

为了进一步拓展业务领域,CYAN在2015年收购了Polestar的量产车改装部门,获得了其在汽车电子领域的技术积累和市场资源。这次收购使CYAN能够更深入地了解汽车电子系统的需求,同时也为其带来了新的增长点。

General Cable公司的发展小趣事
由于时钟频率是载波频率的2倍,因此需要根据选定的载波频率计算时钟频率。例如,若载波频率为38kHz,则时钟频率应为76kHz。
East Texas Integrated Circuits公司的发展小趣事

East Texas Integrated Circuits公司(ETIC)成立于XX世纪初,最初只是一个由几位电子工程师组成的创业团队。他们的梦想是利用最新的技术研发高性能的集成电路。通过不断的努力,他们成功地研发出了一种新型的低功耗集成电路,这种电路能够在保持高速度的同时降低能源消耗,迅速在市场上获得了认可。

CINCH公司的发展小趣事

CINCH公司深知人才是企业发展的核心竞争力。因此,公司高度重视人才培养和团队建设。公司设立了完善的培训体系,为员工提供了广阔的晋升空间和发展机会。同时,公司还积极引进优秀人才,打造了一支高素质、专业化的团队。这支团队在公司的各项业务发展中发挥了重要作用,为公司的长远发展奠定了坚实基础。

AEC Design公司的发展小趣事
在初步获得市场认可后,AEC Design公司开始积极拓展国内外市场。通过与各大电商平台和实体零售商建立合作关系,公司的产品线逐渐覆盖更广泛的消费群体。同时,公司还积极参加各类行业展会和论坛,与业界同行交流学习,不断提升自身的品牌影响力和市场竞争力。

问答坊 | AI 解惑

ATmega16中文资料

本帖最后由 paulhyde 于 2014-9-15 09:20 编辑 ATmega16中文资料  …

查看全部问答>

关于三星封装的KBN00900HM-A439的详细资料

如题,各位大侠有没有关于三星封装的KBN00900HM-A439的详细资料啊????…

查看全部问答>

把kernel从vivi向u-boot移植的时候遇到问题了!

三星提供的kernel是for vivi 的,但俺想用u-boot来引导,结果移植上去之后,u-boot是跑起来了,但是引导kernel却出问题了 看了kernel的头部的二进制数据,发现kernel的格式竟然还和bootloader的类型有关,for vivi的kernel的头就是适合vivi,不 ...…

查看全部问答>

摆脱电源线不是梦,2015日本将实现无线家电

本2015年有望进入“无线家电时代”   “如果所有家用电器都不需要插电了该多方便啊!这样就不必为了家居的摆放费脑筋了……”这种想法并非“天方夜谭”,记者了解到,这一理想有望于2015年在日本率先实现。      文/记者 冯秋瑜&nbs ...…

查看全部问答>

常用二阶IIR滤波系数的计算方法

  IIR滤波器是无限冲击响应滤波器, 其优点:       1. 采用模拟原型滤波的标准设计,容易理解。       2. 可以用低阶设计实现,并且可以高速运行       ...…

查看全部问答>

5V可以这样接吗?

,5v电源可以这样接入吗?我用的是MSP430F425。…

查看全部问答>

TMS320F2812的定时器0如何实现纳秒ns级定时

最近老师给了个任务用这款处理器计时,时间很短,只有几微妙的量级,且要求定时的时间越短越好。我的做法是使用了两个中断,一个定时器0,计算两中断发生的前后时间差,。在定时器0里面将一个全局变量tim一直自加;当第一路中断来的时候将全局变量t ...…

查看全部问答>

简单的改product string和vendor string ,用AT24C01A,却出现乱码,求助大侠

简单的改product string和vendor string ,用AT24C01A,却出现乱码,求助大侠 根据产品的数据表列出的EXTERNAL ROM EXAMPLE,进入编程,按照列表数据逐一输入,插上PCB后,却出现乱码 编程 搞好后竟然是乱码 不知哪里出了问题,求助…

查看全部问答>

raw os 的基本数据类型

基本数据类型是每一个跨平台的软件设计所必须要考虑到的,基本数据类型的目的主要是为了可以移植性。比如,如何写出windows上和linux下共同能编译运行的代码呢?除了使用标准的c语言外,基本数据类型是必须要考虑到的不可缺的因素。 所以跨平台的软 ...…

查看全部问答>