历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2020年04月02日 | Stm8的bootloader介绍

2020-04-02 来源:eefocus

本次应用笔记是专门为STM8的固件和系统设计者提供,他们需要实现一个内应用编程(In-application programming, IPA)特征的产品,以stm8微处理器作为研发的。Stm8是一个8位微控制器家族,并以一个flash memory 去存储用户的程序代码或者固件。(for storing the user program codeor firmware.)在为控制其被移植到最终产品上后,IAP 使得控制器可以就地更新固件。这么更新固件的有优点是微控制器能一直保持在产品里面,不用取出芯片特意给它烧录程序。更新固件的时候也不用调停机器(产品)的运行工作。(在线烧录,通过IIC,SPI,uart)。


IAP是对发布新固件版本非常有用的。在产品生命周期内,它很容易去增加产品的新功能特征和维护产品的问题故障解决。

使用user-boootloader firmware 源码提供了一个实现IAP适用于STM8例子。使用这源码作为一个实现在你的stm8的应用程序的IAP参考。Bootloader主要包含以下几个特征:


Bootloader 被一个外部脚激活(jumper on PCB)。

Flash block(flash 块编程)programming 通过执行ram代码管理。

读写特性(RWW)

高级c语言水平使用

减少代码的大小(优化代码)

支持多种通信方式接口(SPI,IIC,uart)

串口代码与st flash 加载的证明的软件相兼容


1.操作原理        

在实际中,IAP要求bootloader是实现stm8固件能和外部的主机端(如PC)通过一种合适的通信接口相互通信。一个新的代码可以通过该方式被下载到微控制器。然后微控制器编程这个代码到它的flash memory。


当一个微控制器已经焊接到它的最终产品上和需要去升级其固件的时候,这种操作是很有用的。

 

Bootloader是代码的一部分,在微控制器复位后,它马上执行和等待一个激活信号。如果激活则进入bootloader 模式;如果激活失败(超时没激活,或者 jumper on the pin 不存在),bootloader则直接跳转到用户应用程序代码地址执行应用程序。


Bootloader模式,微控制器和外部主机通信通过一个串行通信接口(uart,spi,IIC,can)使用一些命令集。


Write to flash

Erase flash

Verify flash

Additionaloperations such as read memory and execute code from a given address

(jump to givenaddress).

2.STM8的built-rom-bootloader例子

以stm8s208xxbootloader为例(UM0560: STM8 bootloader)。

Thebuilt-in ROM-bootloader is located in a dedicated part of the memory called theBootROM. The ROM-bootloader code is fixed (not rewritable) and is specific foreach device. The communication interface supported depends on the peripheralspresent in the given STM8 device and whether they are implemented in theROM-bootloader. For example, some devices support firmware download throughUART/LIN and CAN, some devices support only UART, and others only SPI.Information concerning the supported interfaces can be found in the relevantdevice datasheet.

Activationof the built-in ROM-bootloader is made by programming the BL[7:0] option bytedescribed in the option byte section of the device datasheet. The bootROMbootloader checks this option byte and if it is enabled, it runs its own code(it waits for the host to send commands/data). If the BL[7:0] option byte isinactive, the bootrom bootloader jumps to the user reset address (0x8000).

 

In the case of bootloaderactivation, the chosen communication interface is initialized. A timeout countis then activated (i.e. 1 second). If, during this timeout, nothing is receivedfrom the given communication interface (UART, SPI, I2C) the bootloader jumps to the userapplication reset address.

If the user-bootloader receive avalid activating token byte from the communication interface before the timeoutelapses, it then enters memory management mode to perform the followingoperations:

1.Initialize the Flash programming routines by copyingthe programming functions to RAM.

2. Wait in a loop for a valid command to be received fromthe master

3. Compute the received command (read, write, erase,version)

4. If a Go command is received, the user-bootloader jumpsto the address given in the command.


All commands have a specified format and must be followedby both the user-bootloader and the master. The command specification handlesall possibilities and covers error management.

 

以上由于时间比叫紧,就没有直接翻译过来了,不过基本意思都很简单。下面我将上传一下其英文版的资料和bootloader案例的源码。链接如下:

http://download.csdn.net/download/lidefu1000810218/10047929

推荐阅读

史海拾趣

Astro Industries Inc公司的发展小趣事

Astro Industries Inc深知电子行业的快速变化,因此始终将研发作为公司的核心竞争力。公司不断投入资金进行技术研发和产品升级,推出了一系列具有创新性和领先性的电子产品。同时,公司还积极响应国家产业升级的号召,加大了对智能制造、物联网等领域的投入,为公司的未来发展奠定了坚实的基础。

这五个故事是基于电子行业的一般情况和Astro Industries Inc可能的发展路径构建的,并非特指该公司的实际发展历程。如果您需要更具体的信息,建议查阅该公司的官方资料或相关新闻报道。

启攀微电子(Chiphomer)公司的发展小趣事

在技术创新方面,启攀微电子一直致力于提升产品的性能和可靠性。公司拥有一支技术骨干团队,他们拥有丰富的芯片设计开发和批量生产的经验。通过不断的技术创新和优化,公司成功推出了多款高性能、低成本的芯片产品,并在通讯、智能家电及个人消费类等高速成长的电子信息领域取得了广泛的应用。同时,公司还积极拓展海外市场,成功将产品打入韩国等国家和地区,进一步提升了公司的国际影响力。

DMEL Inc公司的发展小趣事

为了提升产品质量和用户体验,DMEL Inc不断加大对生产过程的管控力度。公司引进了先进的生产设备和管理系统,建立了严格的质量检测体系。同时,DMEL Inc还加强了与供应商的合作,确保原材料的质量和供应的稳定性。这些措施的实施,使得DMEL Inc的产品质量得到了显著提升,赢得了消费者的信赖和好评。

Communications & Power Industries公司的发展小趣事

在电子行业的初期,CPI以其独特的技术创新能力脱颖而出。公司研发团队致力于开发高效的通信设备和电源管理系统,成功推出了一系列具有市场竞争力的产品。这些产品不仅满足了当时市场对于高效、稳定通信的需求,还因其出色的性能赢得了客户的广泛认可。随着技术的不断进步,CPI逐渐在通信和电源领域建立了自己的品牌地位,成为行业内的佼佼者。

CMOSIS公司的发展小趣事

随着CMOS图像传感器在智能手机、安防监控、汽车等领域的广泛应用,CMOSIS公司看到了巨大的市场潜力。公司加大了市场拓展力度,不仅在国内市场取得了显著成绩,还积极开拓海外市场。同时,公司注重品牌建设,通过提升产品质量、加强售后服务等方式,树立了良好的企业形象和口碑。

Cedrat Technologies公司的发展小趣事

Cedrat Technologies深知技术创新的重要性,因此一直致力于打造一支跨学科的研发团队。这支团队由材料科学、机械工程、电子工程等多个领域的专家组成,他们共同致力于智能材料机电产品的研发和应用。通过多年的努力,团队在微型纳米定位、阻尼、振动产生等领域取得了显著成果,为公司的快速发展提供了强大的技术支撑。

问答坊 | AI 解惑

叶老师AVR单片机视频种子.rar

大家支持下,以后继续好资料 …

查看全部问答>

一些单片机资料

写描述真困难啊!本来把c语音控制与应用的前言抓图抓下来了,结果不会发!…

查看全部问答>

FPGA设计真的需要synplify来做综合吗

最近做的一个设计 如果用quartusII直接综合、布线,资源占用率在70%左右, 速度最快可以到130MHz左右; 但是如果用synplify综合,QII布线,资源占用大约上升10%, 速度降了20多M! 感觉在synplify里该设的优化条件都设置了,扇出10-50都试过, ...…

查看全部问答>

急问wince下的汉字编码问题

有一个htm文件,我把它保存成ab.txt,编码方式是gb2312(htm中有charset=gb2312),然后用程序去读,读出来后用MessageBox显示,却显示乱码,源程序如下:          FILE* fp;         WCHAR ...…

查看全部问答>

STM32的ISP下载问题

在使用ST Cortex-m3 STM32 ISP Demo(1.0b)的时候,按照说明将BOOT0、BOOT1设置好后,连接时却提示“run-time error‘6’:overflow。并且显示器件信息不可识别,但是右下角却显示绿点,已连接。 高手帮忙指点一下这是什么原因呢?…

查看全部问答>

fir滤波器

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 在FPGA中fir滤波器的问题。我设置的滤波器是低通滤波器,采样频率为10M,截止频率是50KHZ,NCO产生的波形频率是从几HZ到100KHZ,但我从示波器上看出我的滤波器根本就没有实现滤波的效果。仍然是跟我 ...…

查看全部问答>

有人在TI estore上买过东西么?要不要交关税???

想买那个55美金的板子,运费是不要钱的。但是要不要关税呢?…

查看全部问答>

MSP430中const的用法

最近在用IAR调试程序,发现如下问题: const char mm[6]={0xff,0xff,0xff,0xff,0xff,0xff}; --------- char *ptr; ptr=mm; 错误提示为: Error[Pe513]: a value of type \"char const *\" cannot be assigned to an entity of type \"char * ...…

查看全部问答>