单片机/MCUwilliam hill官网
直播中

李军

7年用户 1237经验值
私信 关注

使用CYT2B75芯片,在调试flash时遇到的疑问求解

目前使用CYT2B75芯片,在调试flash时有一些问题想请教一下:
1.每次上电都需要从控制器flash中读取一些标志位,在控制器烧录程序后第一次上电,直接读取会异常导致程序跑死。Cy_Flash_BlankCheck 是否使用这个函数来进行检测,如果返回CY_FLASH_DRV_SUCCESS则表示刚擦除或者没有数据写入过?使用这个函数检测稳定性和正确性如何?
2.flash操作是否一定要遵守:
   2.1 在进行数据写入前必须进行擦除;测试发现addr1先进行擦除,然后往addr1中写入数据,进行读取flash正常,然后再次往addr1中写入数据,读出flash数据时异常,导致程序跑死。
2.2 读取flash数据前必须先检查,防止读取到空白flash出错导致异常。
3.flash的擦除,读写是否可以在CAN/LIN的中断回调函数中使用?




回帖(1)

刘晓红

2024-2-3 17:04:41
Cy_Flash_BlankCheck 用于验证flash的擦除扇区是否为空白。 如果返回的是CY_FLASH_DRV_SUCCESS,则表示它是空白的,不能进行读操作。 请参考 TRM 9.3 操作部分
Flash 读取过程为 1.擦除 -> 2.blank check -> 3.编程 -> 4.读取,有关详细信息,请参阅 TRM and AN220242 Flash accessing procedure for TRAVEO™ T2G family section 4.2.1 configuration and example code以及 SDL 示例代码 (T2G_Sample_Driver_Library_7 .5.0tviibe2msrcexamplesflashworkcm0_cm4_non_blocking)
此示例通过擦除/写入/读取/验证非阻塞模式的整个扇区来演示对闪存地址的测试。
关于在CAN/LIN的中断回调函数中使用擦除闪存, 我认为应该是可以通过的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分