双应用的bootloadable程序,EEPROM怎样指向同一个地址

公告

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

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

cross mob
lock attach
Attachments are accessible only for community members.
Cazh_3976091
Level 1
Level 1
First reply posted First question asked Welcome!

我的bootloader程序 选的是Dual-application bootloader双应用,同时我的两个bootloadable程序都有EEPROM组件保存数据,我现在需要两个bootloadable程序中的EEPROM指向同一个地址,这样boot升级后,新的程序可以调用以前保存的数据,附件是我的bootloader和bootloadable工程

0 点赞
1 解答
lock attach
Attachments are accessible only for community members.
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked
两个 EEPROM 组件时不能映射到同一个目标地址的,这样操作编译器不允许,如果非要这么操作的话,那么你就不能使用 EEPROM 组件了,而是自己定义一个数组,把这个数组放置在 bootloader 和 application 之间的空白共享区域,这样操作时有可行性的,但是较为复杂。

PSOC4100S PLUS 在 SFLASH 中为用户保留了四行一共 1024 bytes 的空间,供客户存放数据。这个 SFLASH 区域即使芯片擦除也不会被擦除掉。Creator 在 cy_boot-->CyFlash.c 中也为客户定义了 SFLASH 行的写操作 API  CySysSFlashWriteUserRow(), 用法可以参考附件工程。

这段 user SFLASH 的地址区间时 0x0FFF F400 ~ 0x0FFF F7FF 一共4行 2014 bytes。写操作使用 CySysSFlashWriteUserRow() 直接指定行数(0/1/2/3)即可,读操作使用指针直接读取地址即可。 使用这种方法你就不需要再 bootlodable 组件中使用任何 EEPROM组件了,而且也不用担心芯片擦除或boot过程中EEPROM被擦除和修改。

在原帖中查看解决方案

0 点赞
2 回复数
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

请详细描述,你目前遇到的问题,以及希望我们协助解决什么问题。

你给我两个工程,是希望接下来我协助你完成什么工作。

0 点赞
lock attach
Attachments are accessible only for community members.
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked
两个 EEPROM 组件时不能映射到同一个目标地址的,这样操作编译器不允许,如果非要这么操作的话,那么你就不能使用 EEPROM 组件了,而是自己定义一个数组,把这个数组放置在 bootloader 和 application 之间的空白共享区域,这样操作时有可行性的,但是较为复杂。

PSOC4100S PLUS 在 SFLASH 中为用户保留了四行一共 1024 bytes 的空间,供客户存放数据。这个 SFLASH 区域即使芯片擦除也不会被擦除掉。Creator 在 cy_boot-->CyFlash.c 中也为客户定义了 SFLASH 行的写操作 API  CySysSFlashWriteUserRow(), 用法可以参考附件工程。

这段 user SFLASH 的地址区间时 0x0FFF F400 ~ 0x0FFF F7FF 一共4行 2014 bytes。写操作使用 CySysSFlashWriteUserRow() 直接指定行数(0/1/2/3)即可,读操作使用指针直接读取地址即可。 使用这种方法你就不需要再 bootlodable 组件中使用任何 EEPROM组件了,而且也不用担心芯片擦除或boot过程中EEPROM被擦除和修改。
0 点赞