• 物联网工程师开发服务平台

Bootloader 引导程序

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

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

  1. Bootloader模式功能列表
  2. Bootloader模式进入步骤
  3. Bootloader模式命令使用示例
    1. 命令0: 更新或读取Bootloader固件
    2. 命令1: 更新或读取应用程序固件
    3. 命令2: 更新或读取rf射频驱动固件
    4. 命令3: 更新或读取或擦除MiCO设置参数
    5. 命令4: 读取或擦除/更新Flash内容
    6. 命令5: 查询Flash内存地址分配列表
    7. 命令6: 运行应用程序
    8. 命令7: 重启模块

Bootloader模式功能列表

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

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

其中:

1.bootloader 固件,MiCO Cube 中的编译指令:mico make sub_build.bootloader@MK3165@NoRTOS,编译后可在 build//binary 中找到 .bin文件。

2.application 应用程序固件,MiCO Cbue 中的编译指令为:helloworld@MK3165helloworld@MK3080B@MOC。编译后可在 build//binary中找到,即 build/xxx/binary 文件夹中的:xxxx@MK3165.binxxx@MK3080B@MOC.ota.bin

3.另外还有,全部 flash 固件,即:@MKxxx.bin 或 xxx.all.bin,包括:bootloader,应用程序和RF射频固件, MiCO Cbue 中的编译指令为:helloworld@MK3165 totalhelloworld@MK3080B@MOC total,编译后可在 build//binary中找到,形如: xxxx@MK3165.all.binxxx@MK3080B@MOC.all.bin

4.RF 射频固件 在 mico 中位置:\mico-os\resources\wifi_firmware,其中:

  • 43362:支持型号 EMW3162,3165,3166。
  • 43438:支持型号 EMW3239。
  • mw30x:支持型号 EMW3031。
  • w8801:支持型号 EMW3088,5088。

Bootloader模式进入步骤

1.以 MiCOKit 开发板为例,将“调试串口”(即 USB 电源插口)通过 “Micro-USB线” 连接到 PC。

2.将开发板 “用户串口(Aduino 接口中 UART)”通过"USB 转 TTL 电平模块"小板,连接至PC。

3.打开 SecureCRT 串口调试工具软件,在 PC 的设备管理器中,找到“用户串口"对应的 COM 端口号。

4.SecureCRT 中创建 “用户串口” 的快速连接,串口参数配置请参考:类型:Serial,“用户串口”的 COM 端口,波特率:921600,数据位:8bit,奇偶校验:无,停止位:1。参数如图:

com_config

5.对于 BOOT 和 STATUS 管脚接 拨码开关的 MiCOKit 开发板,置位开发底板的拨码开关状态,BOOT:ON(低电平),STATUS:OFF(高电平),然后按 ”Reset“ 按键,复位开发板。

6.对于 BOOT 和 STATUS 管脚接 按键开关的 MiCOKit 开发板,需按住 BOOT 按键不放,然后按 RESET,即可进入 Bootloader 模式。

7.SecureCRT 输出的 Bootloader log信息如图:

boot_log

Bootloader模式命令使用示例

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

1.更新Bootloader固件

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

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

order_0

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

choose_bootbin

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

bootupdate_ok

至此,Bootloader 固件更新完成。

2.读取Bootloader固件

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

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

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

read_boot

4.确认后,显示如图。

read_boot

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

Session_Option

check_path

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

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

1.更新应用程序固件

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

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

order_1

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

choose_appbin

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

appupdate_ok

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

2.读取应用程序固件

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

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

3.在SecureCRT中选择Transfer→Receive Ymodem

read_boot

4.确认后,显示如图。

read_appbin

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

Session_Option

check_path

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

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

1.更新RF射频驱动固件

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

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

order_2

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

choose_rfbin

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

rfupdate_ok

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

2.读取RF射频驱动固件

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

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

3.在SecureCRT中选择Transfer→Receive Ymodem

read_boot

4.确认后,显示如图。

read_rfbin

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

Session_Option

check_path

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

1.更新MiCO设置参数

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

update_parameters

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

2.读取MiCO设置参数

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

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

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

read_parameters

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

3.擦除MiCO设置参数

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

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

erase_parameters

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

1.读取指定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

2.擦除指定Flash区域内容

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

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

erase_flash

3.更新指定Flash区域内容

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

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

update_flash

在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

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

命令6:运行应用程序

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

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

start_application

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

命令7:重启模块

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

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

reboot

至此,模块重启完毕。

文本导读目录