BSL烧写是一种常用于嵌入式系统的协议,是一种在芯片出厂前、芯片无法自我启动时使用的一种通信模式。在该模式下,芯片可以接收外部设备发来的启动信号,并在启动后将待烧写的程序数据写入芯片内部。
通常,BSL(Boot Strap Loader,简称“引导加载程序”)是由芯片生产商提供,以提供一个可执行程序来读写FLASH、EEPROM或其他的非易失性存储器(NVM)类型,以便进行写入或读出。
很多许多微控制器芯片都提供了BSL烧写接口,如TI的CC系列、Atmel的AVR系列等,它们通常是面向单片机的,主要用于 MCU 嵌入式系统开发中的调试、升级、验证程序等。对于系统开发者来说,BSL烧写可以非常方便地实现对嵌入式应用程序的调试和升级。
此外,对于芯片厂商,BSL烧写所需的硬件成本通常较低,而且芯片生产商可以使用该工具来尝试新工艺、新器件、新算法,以便把更好的产品推向市场。
BSL烧写的过程一般分为四个步骤:
第一步:将芯片设置为BSL模式。通常,MCU启动时会先读取一段固定的内部FLASH或EEPROM,然后程序就转入用户设定的程序中。而在BSL模式下,芯片会在启动时停止运行这段程序,并等待来自Host PC的命令。
第二步:连接MCU与PC。根据不同的芯片或MCU的连接方式,一般有两种方式:串口方式和USB方式。
第三步:通过Host PC下发相关指令。根据不同芯片的协议,指令可能不同。例如TI公司提供的BSL协议指令包括查询设备ID、擦除FLASH或EEPROM、写数据至FLASH等。
第四步:程序烧写完成。烧写完成后,MCU会自动重启,然后可以运行用户设定的程序。
相对于其他常见的芯片烧写方式,BSL烧写具有如下几个特性:
灵活性: BS是芯片提供商的标准程序,烧写命令是否支持取决于硬件接口的实现。使用BSL可以灵活地定义烧 写方式。可以允许不同的芯片分别实现特定的BSL。
通用性:由于BSL允许协议的自定义和芯片厂商的特定应用,BSL可以使用很多主流软件技术进行访问,不受限于特定的硬件环境。同时,由于其流行度和常见性,很多开发者也在使用它作为调制技术的标准技术。
简便性:BSL烧写通常不需要专门的编程器等设备,只需要使用串口或USB线连接MCU与PC即可。因此,BSL烧写非常适合需要频繁调试的嵌入式系统开发和调试过程。