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次,發文人進小黑屋喔~

評論