PSoC63之OTA升级

所需硬件:

CY8CKIT-062-BLE;

所需软件:

  1. MTB 3.0
  2. Mcuboot (D:\PortableGit\my_src\mcuboot)
  3. Cypress Programmer (D:\Cypress\Cypress Programmer 4.0)
  4. 例程:Bluetooth_LE_Battery_Server(MTB)
  5. 手机端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:

  1. 克隆MCUboot repo并切换到v1.8.3-cypress分支。

$git clone https://github.com/mcu-tools/mcuboot.git

$git checkout v1.8.3-cypress

  1. “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\文件夹。

  1. 打开命令行终端。

在Linux和macOS上,您可以使用任何终端应用程序。在Windows上,从开始菜单中打开“modus-shell”应用程序。

  1. 在终端中,进入“/mcuboot/boot/cypress”文件夹。
  2. 执行以下命令更新子模块:

“$ git submodule update --init --recursive “

  1. 通过KitProg3 USB接口,将电路板连接到PC上。
  2. 在/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中;

  1. 在编译MCUboot应用程序之后,使用CYPRESS programmer打开HEX文件;该文件位于以下目录下:

“/mcuboot/boot/cypress/MCUBootApp/out/<OTA_PLATFORM>/Debug/”

如图:

编译和烧录“Bluetooth_LE_Battery_Server应用程序

  1. 编译” Bluetooth_LE_Battery_Server”应用程序
  2. 烧录

(该程序有两个部分分别是带OTA功能和不带OTA功能,默认是带OTA,在Makefile中有定义控制变量)

  1. 版本信息也是在Makefile中定义的;

              OTA_APP_VERSION_MAJOR?=5

              OTA_APP_VERSION_MINOR?=1

              OTA_APP_VERSION_BUILD?=0

  1. 修改版本号,重新编译生成新的版本;利用新生成的.bin文件,直接使用手机APP “LE OTA “升级新版应用程序;

编译后的bin的位置:

手机“LE OTA APP”界面:

OTA升级完成:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论