打印
[PSoC™]

4148擦写Flash可以跨行操作吗

[复制链接]
1608|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
善水789|  楼主 | 2024-1-15 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于CY8C4148来说,OTA升级擦写Flash可以跨行操作吗?谢谢。

使用特权

评论回复
沙发
IFX_Lingling| | 2024-1-15 16:47 | 只看该作者
我的理解是升级部分的应用程序代码不能跨行写,不然PC的指针访问会出现问题。这个可以参考我们bootloader的底层代码库。

使用特权

评论回复
板凳
flycamelaaa| | 2024-1-16 16:32 | 只看该作者
对于CY8C4148微控制器,其OTP(One-Time Programmable)闪存可以进行跨行擦除和编程。这意味着在OTA(Over-The-Air)升级过程中,可以一次性擦除多个Flash行,而不仅仅是单个行。

使用特权

评论回复
地板
PSoC小子| | 2024-1-19 16:25 | 只看该作者
PSOC4 对内部 flash 的操作是以 row 为单位进行的,具体擦除&烧录那个 row 是由固件层的 ProgramRow API 被调用的逻辑来决定的。默认的 bootloader 对 application 进行升级基本都是遵循逐行擦除&烧录的方式进行的,如果你需要不同的擦除烧录顺序,技术上是可行的,只是需要用户自己去对底层逻辑做调整,

使用特权

评论回复
5
IFX-LeiSUN| | 2024-1-26 17:12 | 只看该作者
操作Flash时可以调用如下函数来进行flash的擦除和写入:
uint32 CySysFlashWriteRow(uint32 rowNum, const uint8 rowData[])
其中rowNum是Flash Row number,是flash row size对齐的。rowData数组包含了要写入的数据,长度必须等于flash row size。

应用层可以实现所有地址的数据写入,需要按照上述API的要求对数据进行分包并逐个page写入即可。
你可以参考PSoC Creator中的Flash Example例子。
如下文档也给出了PSoC4系列的编程规范,供参考。
https://www.infineon.com/dgdl/Infineon-CY8C4xxx_CYBLxxxx_Programming_Specifications-Programming%20Specifications-v07_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0f66dca2562f

使用特权

评论回复
6
LOVEEVER| | 2024-1-28 13:15 | 只看该作者
升级部分的应用程序代码不能跨行写

使用特权

评论回复
7
星辰大海不退缩| | 2024-1-28 15:44 | 只看该作者
PSOC4 对内部 flash 的操作是以 row 为单位进行的

使用特权

评论回复
8
小夏天的大西瓜| | 2024-1-28 15:53 | 只看该作者
最好按照固有的层级进行编写下载

使用特权

评论回复
9
szt1993| | 2024-1-29 22:29 | 只看该作者
最好不要跨行进行擦写操作

使用特权

评论回复
10
jf101| | 2024-1-29 23:00 | 只看该作者
OTA升级擦写Flash不要跨行操作

使用特权

评论回复
11
药无尘| | 2024-1-30 22:11 | 只看该作者
不可以的

使用特权

评论回复
12
su1yirg| | 2024-2-6 14:24 | 只看该作者
在OTA(Over-the-Air)升级中,擦写Flash通常是一个关键的操作。对于大多数单片机和嵌入式系统,擦写Flash通常是以页(page)为单位进行的,而页通常是一个固定大小的内存块。因此,擦写Flash通常是不能跨页进行的

使用特权

评论回复
13
b5z1giu| | 2024-2-6 15:34 | 只看该作者
当进行OTA升级时,如果新固件的大小超过了一个Flash页的大小,那么擦写操作通常需要先擦除整个页,然后再将新的固件数据写入

使用特权

评论回复
14
y1n9an| | 2024-2-6 16:39 | 只看该作者
如果整个页写,这可能会导致擦写操作的时间较长,同时也需要额外的空间来存储临时数据

使用特权

评论回复
15
q1d0mnx| | 2024-2-6 17:44 | 只看该作者
在实际的OTA升级实现中,通常会考虑到擦写Flash的限制,采取一些策略来处理跨页擦写的情况,比如将固件分割成适当大小的块,或者使用双缓冲区技术来减少擦写操作的影响

使用特权

评论回复
16
kaif2n9j| | 2024-2-6 19:02 | 只看该作者
我的理解是不能跨行操作,而且你说的跨行是啥操作啊?

使用特权

评论回复
17
l1uyn9b| | 2024-2-6 20:12 | 只看该作者
不都是以页为单位吗?咋还跨行了呢?

使用特权

评论回复
18
g0d5xs| | 2024-2-6 21:36 | 只看该作者
不支持,这么做估计会乱的

使用特权

评论回复
19
lix1yr| | 2024-2-7 09:22 | 只看该作者
你说的跨行没啥 意义吧,毕竟都被擦除了,之前的数据也没了,你夸行干啥啊

使用特权

评论回复
20
p0gon9y| | 2024-2-7 11:13 | 只看该作者
不建议这么弄,数据乱不说,而且你组成升级包也费劲啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

31

帖子

0

粉丝