MXOS Bootloader 引导程序

简单地说:Bootloader 就是在操作系统内核或用户应用程序运行之前运行的一段小程序。

通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。

该文档包含了 mxos Bootloader 模式的命令列表,进入步骤及具体命令使用方法。

Bootloader模式功能列表

mxos 的 Bootloader 模式为用户提供以下命令:

命令代码 名称 功能
0 BOOTUPDATA 读取或更新bootloader固件
1 FWUPDATA 读取或更新应用程序固件
2 DRIVERUPDATE 读取或更新RF射频驱动
3 PARAUPDATE 读取或更新mxos设置参数
4 FLASHUPDATE 读取或更新flash内容
5 MEMORYMAP 列出flash内存分配图
6 BOOT 运行应用程序
7 REBOOT 重启

其中:

1.bootloader 源码不对外开放,因此不支持用户命令行编译生成,只能通过读取命令获取模块的 bootloader 固件。

2.应用程序固件:mxos cbue 中的编译指令为:helloworld@emw3080helloworld@emw3070。编译后可在 build//binary中找到,即 build/xxx/binary 文件夹中的:xxxx@emw3080.bin xxx@emw3070.bin

注意⚠️:emw3080,emw3070等,无单独的射频固件,不支持RF固件更新。

Bootloader模式进入步骤

  1. 以 MXKit 系列开发板为例,将 microUSB接口,通过 “Micro-USB线” 连接到 PC。其 microUSB 接口会虚拟出 2 个COM口,一个是“调试串口”,波特率 115200bps;一个是“用户串口”,波特率:921600.
  2. 在 PC 设备管理器中,找到“用户串口”对应的 COM 端口号-通常为 Enhanced COM Port。(调试串口 COM 端口通常为 Standard COM Port,具体可参见 MXKit 硬件手册 )。
  3. 打开 SecureCRT 串口调试工具软件,连接用户串口,波特率 921600 bps,数据位:8bit,奇偶校验:无,停止位:1。参数如图:

com_config.png

  1. 开发板的 BOOT 置 ON(低电平),STATUS:OFF(高电平),然后按 ”Reset“ 按键,复位开发板,进入 Bootloader 模式。
  2. SecureCRT 串口软件输出的 Bootloader log信息如图:

boot_log.png

Bootloader模式命令使用示例

命令0:更新或读取Bootloader固件

读取Bootloader固件

1.参考 Bootloader 模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:0 -r,回车;

3.在SecureCRT中选择Transfer→Receive Ymodem,

receive_ymodem.png

4.确认后,显示如图。

read_bootbin.png

至此,Bootloader固件读取完毕,读取文件保存在以下目录中,如图:

Session_Option.png

check_path.png

更新Bootloader固件

若您已经获取到 Bootloader固件,可以参考以下步骤进行。

1.参考 Bootloader 模式进入步骤,进入 Bootloader 模式;

2.输入指令前,需要更改设置:Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS 取消掉;然后输入:0,回车,如下图;

order_0.png

3.SecureCRT 中选择 Transfer → Send Ymodem → 选择更新的 Bootloader 固件;

choose_bootbin.png

4.确认后,固件烧录界面显示如图。

bootupdate_ok.png

至此,Bootloader 固件更新完成。

命令1:更新或读取应用程序固件

更新或读取方法,同命令0:Bootloader操作方法。

更新应用程序固件

1.参考 Bootloader 模式进入步骤,进入Bootloader模式;

2.输入指令前,需要更改设置:Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;然后输入:1,回车,如下图;

order_1.png

3.SecureCRT中选择Transfer→Send Ymodem→选择更新的应用程序固件,点击 OK;

choose_appbin.png

4.确认后,固件烧录界面显示如图。

appupdate_ok.png

至此,应用程序固件更新完成。

读取应用程序固件

1.参考 Bootloader 模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:1 -r,回车;

3.在SecureCRT中选择Transfer→Receive Ymodem

receive_ymodem.png

4.确认后,显示如图。

read_appbin.png

至此,应用程序固件读取完毕,读取文件保存在以下目录中,如图:

Session_Option.png

check_path.png

命令2:更新或读取RF射频驱动固件

更新或读取方法,同命令0:Bootloader操作方法。

更新RF射频驱动固件

1.参考 Bootloader 模式进入步骤,进入Bootloader模式;

2.输入指令前,需要更改设置:Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;然后输入:2,回车,

3.SecureCRT中选择Transfer→Send Ymodem→选择更新的应用程序固件,点击 OK;

choose_rfbin.png

4.确认后,固件烧录界面显示如图。

rfupdate_ok.png

至此,应用程序固件更新完成。

2.读取RF射频驱动固件

1.参考 Bootloader 模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:2 -r,回车;

3.在SecureCRT中选择Transfer→Receive Ymodem
receive_ymodem.png

4.确认后,显示如图。

read_rfbin.png

至此,应用程序固件读取完毕,读取文件保存在以下目录中,如图:

Session_Option.png

check_path.png

命令3:更新或读取或擦除mxos设置参数

更新mxos设置参数

1.参考 Bootloader模式进入步骤,进入Bootloader模式后;
2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:3 回车;

3.在SecureCRT中选择Transfer→Send Ymodem,选择要更新的bin文件,即可开始更新。

读取mxos设置参数

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:3 -r,回车;

3.在SecureCRT中选择Transfer→Receive Ymodem确认后,显示如图。

read_parameters.png

至此, mxos 设置参数读取完毕,读取文件存放在SecureCRT指定目录中。

3.擦除mxos设置参数

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:3 -e,回车; 显示如图。

erase_parameters.png

命令4:读取或擦除/更新Flash内容

读取指定Flash区域内容

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:4 –dev 0 -r –start 0x800C000 –end 0x800C100,回车;

3.在SecureCRT中选择Transfer→Receive Ymodem,读取文件存放在SecureCRT指定目录中。

read_flash.png

擦除指定Flash区域内容

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:4 –dev 0 –e –start 0x0000100 –end 0x0001000,回车; log如图。

erase_flash.png

更新指定Flash区域内容

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:4 –dev 0 –start 0x800C000 –end 0x800C100,回车;

update_flash.png

在SecureCRT中选择Transfer→Send Ymodem,选择要烧录的.bin文件,确认后,即可成功烧录。

命令5:查询Flash内存地址分配列表

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:5,回车; 显示如图。
(注:参数中0x08000000为起始地址,0x00004000为该flash区长度)

flash_map.png

3.至此,flash内存分配列表查询完毕。

命令6:运行应用程序

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:6,回车; 显示如图。

start_application.png

3.至此,flash内存地址分配列表查询完毕.

命令7:重启模块

1.参考Bootloader模式进入步骤,进入Bootloader模式后;

2.输入指令前,需要更改设置Session Options → Connection → Serial → Flow Control,将原先选中的 RTS/CTS取消掉;.然后输入:7,回车; 显示如图。

reboot.png

至此,模块重启完毕。