公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好。

 

我正在使用 CY8C6247。

我正在尝试使用EM_EEPROM库将数据写入辅助区域。

 

M0 启用 M4 但什么都不做。

我正在使用以下函数写作。

 

{

cy_en_em_eeprom_status_t eepromReturnValue;

eepromReturnValue = cy_em_eeprom_Write ((addr-CY_EM_EEPROM_BASE)、buf、len、em_eeprom_Context);&

if (eeprom ReturnValu= CY_EM_EEPROM_SUCCESS)

{

CY_ASSERT (0);

返回 -1;

}

}

 

该代码在 CY6136 中运行良好,但在 CY8C6247 中会出现以下错误。

1 CY_FLASH_DRV_OPERATION_ARTED 返

2 CY_FLASH_DRV_IPC_BUSY 返回

什么都没有...

 

我想得到一些建议。

请确认要检查哪个部分。

 

谢谢

0 点赞
4 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

我看不到推荐社区的好方法。

我不确定要检查哪个部分。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @air

我需要检查你的主文件和链接器脚本进行调试。 如果可能的话,CAN 请分享您的项目zip?

问候,

罗汉

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

环境差异如下。

0. CY8C6136 和 CY8C6237 中使用的代码相同。

1.CY8C6136(单核)

-FreeRTOS 使用

-eeprom 在 vtaskStartsCheduler () 之前写入;-成功 >

 

2.CY8C6237(双核)

-FreeRTOS 使用

-eeprom 在 vtaskStartsCheduler () 之前写入;-CY_FLASH_DRV_IPC_BUSY >

-eeprom 在 vtaskStartsCheduler () 之后写入;-成功 >

 

我知道 vtaskStartsCheduler () 之前的中断没有执行。

如果这些结果正确,则问题似乎已得到解决。

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 @air

我假设你是从 CM4 应用程序在 EEPROM 上写入数据,而 CM4 使用 IPC 结构通过 CM0(通过接收来自 CM4 的中断)写入数据。 CY_FLASH_DRV_IPC_BUSY 由 cy_flash_isWriteComplete () api 返回,这意味着 IPC 结构正忙于执行另一项任务。 在写入数据之前,请确保 IPC 结构是自由的。

 

问候,

罗汉

 

 

0 点赞