Announcements

Equip yourself to optimize PSoc4 MCUs for Evs at the EV Webinar. Click here to register.

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

PSoC™ 4 Forum Discussions

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 Likes
1 Solution
LinglingG_46
Moderator
Moderator
Moderator
10 questions asked 5 questions asked 250 sign-ins
两个 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被擦除和修改。

View solution in original post

0 Likes
2 Replies
LinglingG_46
Moderator
Moderator
Moderator
10 questions asked 5 questions asked 250 sign-ins

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

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

0 Likes
LinglingG_46
Moderator
Moderator
Moderator
10 questions asked 5 questions asked 250 sign-ins
两个 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 Likes