CC2640的Flash操作

在CC2640里,osal_snv_write的API函数是基于ICall层来操作的。

因此,需要把flash操作和simplepherial的task绑定。

在上述task初始化时,增加

FlashOperationMessage_RegisterAppCBs(&user_flashOperationMessageCBs);

在变量设初始值时,设定

static flashOperationMessageCBs_t user_flashOperationMessageCBs =
{
  user_flashOperationMessageCB
};

static void user_flashOperationMessageCB(const uint8_t action)
{
	SimpleBLEPeripheral_enqueueMsg(SBP_FLASH_OPERATION_EVT, Flash_Protection);
}
并且把flash的写动作设置成simple任务的一个event来执行。


这样操作的原因是因为,实测直接操作osal_snv_write是无效的。必须通过icall层操作。而icall注册在了simple任务中。


你可能感兴趣的:(CC2640)