ZHCUBI3A November 2023 – April 2024 TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1
配置扇区的写入(编程)/擦除保护。
Fapi_StatusType Fapi_setupBankSectorEnable(
uint32 WEPROT_register,
uint32 oSectorMask
)
pu32StartAddress [in] | 用于写/擦除保护配置的寄存器地址。 对前 32 个 (0-31) 扇区使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA。 对其余的主阵列 (32-127) 扇区使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB。 对 USER OTP 使用 FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROT_UO。 |
OSectorMask [in] | 32 位掩码,指示擦除和编程操作中要屏蔽的扇区。 |
在此器件上,默认情况下,所有闪存主阵列扇区和 USER OTP 均受到保护,无法对其执行擦除和编程操作。用户应用程序必须禁用想要对其执行擦除和/或编程操作的扇区的保护。该函数可用于启用/禁用保护。应在每次擦除和编程命令之前调用该函数,如 C2000Ware 中提供的闪存 API 使用示例所示。
该函数的第一个输入参数可以是以下三个寄存器中任何一个的地址:CMDWEPROTA、CMDWEPROTB、CMDWEPROT_UO
CMDWEPROTA 寄存器用于配置前 32 个扇区(0 至 31)的保护。此寄存器中的每个位对应每个扇区 - 例如:此寄存器的位 0 用于配置扇区 0 的保护,该寄存器的位 31 用于配置扇区 31 的保护。用户提供的 32 位扇区掩码(传递给该函数的第二个参数)指示用户想要屏蔽擦除和编程操作的扇区,即不会被擦除和编程的扇区。如果掩码中的某个位为 1,则不会擦除/编程该特定扇区。
CMDWEPROTB 寄存器用于配置对主阵列闪存存储体中 32 - 127 个扇区的保护。但请注意,此寄存器中的每个位用于一起配置对 8 个扇区的保护。这意味着,位 0 用于一起配置对所有扇区 32 至 39 的保护,位 1 用于一起配置对所有扇区 40 至 47 的保护,依此类推。用户提供的 32 位扇区掩码(传递给该函数的第二个参数)指示用户想要屏蔽擦除和编程操作的扇区,即不会被擦除和编程的扇区。如果掩码中的某个位为 1,则不会擦除/编程该组特定扇区。如果掩码中的某个位为 0,则会擦除/编程该组特定扇区。
CMDWEPROT_UO 寄存器用于配置 USER OTP 保护。此寄存器中的位 0 用于配置 USER OTP 保护。这意味着,如果位 0 配置为 1,则 USER OTP 不会被擦除/编程。其他位可配置为 1。由于 USER OTP 不可擦除,因此 CMDWEPROT_UO 寄存器保护不适用于擦除操作。应该只针对所需的编程操作进行配置。
实现示例(请参阅 C2000Ware 中提供的闪存编程示例,对于 TMS320F280013x,该示例位于“C2000Ware_.....\driverlib\f280013x\examples\flash\flashapi_ex1_programming.c”。请参阅 C2000Ware 中提供的闪存编程示例,对于 TMS320F280015x,该示例位于“C2000Ware_.....\driverlib\f280015x\examples\flash\flashapi_ex1_programming.c”。)