Matter - NXP K32W061 SSBL 工程编译

目前 K32W061 支持的 Matter examples 包括 contact-sensor-app、lighting-app、lock-app,其中 contact-sensor-app、lighting-app Demo 都默认支持 OTA 功能,因此,在烧录 APP 固件时,还需要烧录 SSBL (Secondary Stage Bootloader) 固件,今天这篇博文主要讲解怎么通过 SDK 编译得到 SSBL 固件。

既然是基于 SDK 编译得到 SSBL 固件,因此需要下载 K32W061 SDK 包,进入 NXP 官网下载即可。


1.
下载 SDK 包

NXP MCU Xpresso SDK Builder 官网中下载 K32W061 的 SDK 包,搜索栏中输入 K32W061,选择 K32W061DK6。


    

由于是在 Ubuntu 中使用,这里 Build SDK for K32W061DK6 中选择 Linux 平台,DOWNLOAD SDK。

 
    

下载完成后就可以得到  SDK_2_6_13_K32W061DK6.zip 压缩包。

    


2.安装 MCUXpresso IDE

这里开发使用的 IDE是 MCUXpresso IDE,可以到官网(MCUXpresso IDE for NXP MCUs)下载 MCUXpresso-IDE,因为是在 ubuntu 中使用这里选择 Linux 版本。

 
    

下载好安装完成后,在 Installed SDKs 窗口中导入前面小节中下载的 SDK 包。

    


3.
编译 SSBL 工程

接下来在 MCUXpresso IDE 中导入 SSBL 工程,SDK 包中提供了 SSBL 的例程,直接选择导入即可。

    



对工程添加编译选项,右键工程,编辑工程属性,添加如下预编译定义;

    

选项说明如下:

  PDM_EXT_FLASH=1 - support PDM in external flash

  gOTAUseCustomOtaEntry=1 - support custom OTA entry for multi-image

  gOTACustomOtaEntryMemory=OTACustomStorage_ExtFlash - K32W0 uses


添加完成后编译即可;

    

如果使用原厂默认的 K32W061DK6 开发板,到这里已经完成了 SSBL 固件的编译,但实际上,SSBL 中也涉及到外部 Flash 适配,如果使用的是自己的 K32W061 模组则需要注意下这一部分,下面根据笔者手上的 K32W061 搭配 W25Q80DVUXIE 的 Matter 模组来做说明。



4.
适配外部 Flash

目前 SDK SSBL 中主要是适配了 MX25R8035F、XT25F08B,这里添加上 W25Q80DVUXIE ID 的宏定义。

    

在工程 command_t 中添加 W25Q80DVUXIE 写状态寄存器的 command 枚举。

    

并且添加 W25Q80DVUXIE 写状态寄存器的 command。

    

SPIFI_Flash_Init() 函数中添加代码,当 ID 读回确认是 W25Q80DVUXIE,则根据 Flash 写状态寄存器配置 Flash 为 QSPI 模式。

    

以上就是需要适配修改的地方,目前大部分 Flash 的操作命令相同,具体可以参考对应 Flash 的数据手册进行对比适配,修改完成后编译即可得到 SSBL 固件。

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

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

评论