所需硬件:
CY8CKIT-062-BLE;
所需软件:
- MTB 3.0
- Mcuboot (D:\PortableGit\my_src\mcuboot)
- Cypress Programmer (D:\Cypress\Cypress Programmer 4.0)
- 例程:Bluetooth_LE_Battery_Server(MTB)
- 手机端LE OTA App (F:\MTW\mtb_shared\wiced_btsdk\tools\btsdk-peer-apps-ota\release-v3.2.0\Android\LeOTAApp\app\build\outputs\apk)
编译和烧录MCUboot程序
Bootloader app 运行在Cortex-M0+
Blinky app运行在Cortex-M4
按照以下操作来编译和烧录MCUboot bootloader:
- 克隆MCUboot repo并切换到v1.8.3-cypress分支。
$git clone https://github.com/mcu-tools/mcuboot.git
$git checkout v1.8.3-cypress
- “bootloader”和"mtb-example-btstack-freertos-battery-server"应用程序必须要用相同的memory layout。两个程序都必须使用的同一个flashmap。检查“mtb-example-btstack-freertos-battery-server”的Makefile中 OTA_FLASH_MAP变量,找出应用程序正在使用的flashmap。
需要复制<mtb_shared>/ota-update/release-vX.X.X/configs/中的flashmap,到mcuboot\boot\cypress\文件夹。
- 打开命令行终端。
在Linux和macOS上,您可以使用任何终端应用程序。在Windows上,从开始菜单中打开“modus-shell”应用程序。
- 在终端中,进入“/mcuboot/boot/cypress”文件夹。
- 执行以下命令更新子模块:
“$ git submodule update --init --recursive “
- 通过KitProg3 USB接口,将电路板连接到PC上。
- 在/mcuboot/boot/cypress文件夹中,执行以下命令,使用默认工具链和默认目标(CY8CKIT-062S2-43012)编译应用程序。默认的工具链和目标在工具链toolchains.mk文件配置;存在于/mcuboot/boot/cypress文件夹中。
“$make clean app APP_NAME=MCUBootApp PLATFORM=PSOC_062_1M FLASH_MAP=./ psoc62_1m_cm0_int_swap_single.json”
如果是其它型号的MCU,确保PLATFORM和FLASH_MAP变量正确配置。这些变量被定义在Bluetooth_LE_Battery_Server程序的Makefile中;
- 在编译MCUboot应用程序之后,使用CYPRESS programmer打开HEX文件;该文件位于以下目录下:
“/mcuboot/boot/cypress/MCUBootApp/out/<OTA_PLATFORM>/Debug/”
如图:
编译和烧录“Bluetooth_LE_Battery_Server”应用程序
- 编译” Bluetooth_LE_Battery_Server”应用程序
- 烧录
(该程序有两个部分分别是带OTA功能和不带OTA功能,默认是带OTA,在Makefile中有定义控制变量)
- 版本信息也是在Makefile中定义的;
OTA_APP_VERSION_MAJOR?=5
OTA_APP_VERSION_MINOR?=1
OTA_APP_VERSION_BUILD?=0
- 修改版本号,重新编译生成新的版本;利用新生成的.bin文件,直接使用手机APP “LE OTA “升级新版应用程序;
编译后的bin的位置:
手机“LE OTA APP”界面:
OTA升级完成:
评论