OK,在描述玩这几种下载模式,及硬件连接等之后,开始详细讲解一下BSL的使用: 首先,你需要下载BSL工具: BSL已经集成到新版CCS和Uniflash(5.0版本以后)中,但在PC端,为了使用每一个BSL命令,我们采用BSL Scripter软件。 这个软件是使用CMD命令实现的一个脚本插件,因此在安装完之后,会有下图所示的一堆文件:
文件中BSL-Scripter.exe即是BSL的脚本,进入ScriptExampleWindows文件夹,你会发现里面有跟多例程,我们进入FRxx_uart,如下图所示,有四个文件:
第一个blinkLED_FR6989.txt文件时程序,需要BSL下载进入MCU的,中间pass32_default.txt和pass32_wrong.txt是BSL的密码,因为访问BSL一定是要密码的,这个密码是可以通过编译软件自己设置的,最后一个文件script_FRxx_uart.txt则是执行的BSL命令,把命令全部都写入文件里,使用BSL-Scripter.exe脚本可一次性执行多行程序。 在安装完成后默认文件中的程序可自行查看,本实验中使用FR2355 MCU,因此写BSL程序如下:
LOG // 打开文件记录生成
MODE FRxx UART 9600 COM8 // 选择FR MCU, UART模式,端口COM8 波特率9600
CHANGE_BAUD_RATE 115200 // 改变波特率为115200
DELAY 2000 // 延时2000ms
RX_PASSWORD BSLPassword.txt // 写BSL密码
RX_DATA_BLOCK MSP430FR2355.txt // 烧写程序
DELAY 4000 // 延时4000ms
TX_DATA_BLOCK 0x8000 0x0080 MSP430FR2355_R.txt // 从MCU中读程序
// (地址:0x8000 长度:0x0080)
CRC_CHECK 0x8000 0x0080 // CRC校验(地址:0x8000 长度:0x0080)
SET_PC 0xFFFE // 设置启动地址,启动程序
如上图所示即为烧写,读取程序的整体流程,有几点需要写明: - BSL密码:这个在使用烧写工具,比如FET-pro等时可以进行设置,同时保存出一个BSL密码,如果没有设置,就为全FF,也就是在默认文件中的pass32_default.txt文件
- BSL密码:如果写错,会导致MCU内部数据全部擦除,包括BSL密码也会擦除,因此你会发现官方的程序是先给一个错误的BSL密码(随便都行),再给一个默认的BSL密码,就是全FF:pass32_default.txt文件,这样就可以保证如果BSL密码错误,直接擦除MCU数据以保护资料不会被窃取。
更多BSL指令如下所示:
|