ZHCAAO2D February 2015 – August 2021 CC1310 , CC1352R , CC2538 , CC2620 , CC2630 , CC2640 , CC2640R2F , CC2640R2F-Q1 , CC2642R , CC2642R-Q1 , CC2650 , CC2650MODA , CC2652R , CC2652R7 , CC2652RB , CC2652RSIP
eraseFlashRange 函数对 CC2538 使用引导加载程序命令 CMD_ERASE,对 CC26x0 和 CC26x2 使用 CMD_SECTOR_ERASE。
CC26x0 和 CC26x2 CMD_SECTOR_ERASE 采用地址参数并擦除该地址所在的闪存扇区(CC26x0 器件为 4KB,CC26x2 器件为 8KB)。
CC2538 CMD_ERASE 命令需要另一个用于指定擦除大小的参数。CC2538 引导加载程序会擦除 [地址, 地址 + 大小] 范围覆盖的闪存扇区 (2KB)。
在每个引导加载程序擦除命令之后,eraseFlashRange 使用 CMD_GET_STATUS 命令来检查引导加载程序状态。
图 4-5 所示为使用串行引导加载程序协议进行闪存擦除的序列图表。命令中的最后四个字节 (datasize) 特定于 CC2538。对于 CC26x0 和 CC26x2,必须为要擦除的每个闪存扇区重复使用 CMD_SECTOR_ERASE 命令(以及随后的 CMD_GET_STATUS)。
如果要擦除 CC26x0 和 CC26x2 上的整个闪存存储器,则应使用 CMD_BANK_ERASE 命令。这将在一次操作中擦除整个闪存存储器,比单独删除各个扇区要快。