所需硬體:
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升級完成:
評論