ZHCAAO2E February 2015 – August 2024 CC1310 , CC1352R , CC2538 , CC2620 , CC2630 , CC2640 , CC2640R2F , CC2640R2F-Q1 , CC2642R , CC2642R-Q1 , CC2650 , CC2650MODA , CC2652R , CC2652R7 , CC2652RB , CC2652RSIP
若要将数据写入闪存存储器,可使用 SBL 函数 writeFlashRange
。writeFlashRange
会将 CMD_DOWNLOAD
命令连同起始地址和下载大小(以字节为单位)发送到引导加载程序。之后,引导加载程序便可接收指定数量的数据并将数据从指定地址开始写入闪存。
要传输数据,请使用 CMD_SEND_DATA
命令。每个 CMD_SEND_DATA
命令最多可传输 252 字节的数据。如果要下载的数据大于 252 字节,则必须重复使用 CMD_SEND_DATA
命令。SBL writeFlashRange
函数负责将数据传输拆分为多个 CMD_SEND_DATA
命令。
在 CMD_DOWNLOAD
命令和每个 CMD_SEND_DATA
命令之后,使用 CMD_GET_STATUS
命令来读取引导加载程序的状态。这是为了确保起始地址和固件大小有效,并且数据已成功编程到闪存中。如果状态指示错误,引导加载程序的内部地址指针不会递增,从而允许重新传输数据。
对于 CC13x4 或 CC26x4 器件系列,CCFG 位于主闪存之外。这意味着需要 SBL writeFlashRange
函数的两次迭代;一次用于应用二进制,另一次用于 CCFG 二进制。
图 4-7 演示了使用 SBL 函数 writeFlashRange
的闪存写入序列。