Non blocking writes to Auxiliary flash?

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

cross mob
DaEr_349131
Level 5
Level 5
25 likes received 50 sign-ins 5 comments on KBA

While running code, i.e. executing from the built-in flash, is it possible to do non blocking writes to the Auxiliary flash section? 

same question goes for erasing it.

0 Likes
1 Solution
Ekta_N
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hi @DaEr_349131 

As you have mentioned PSoC 6 Flash is divided into 2 parts:

  • Application flash memory (from 2 to 8 sectors) - 128KB/256KB each.
  • Auxiliary flash memory (which can also be used for Emulated EEPROM)- 32KB.

There are two types of writes possible for these memories: 1. Blocking writes (not required by you) and 2. Partially blocking writes.

You can refer to the Flash System Routine page in the PDL Documentation to see how Partially blocking writes can be implemented when writing to flash. Basically, the flash program APIs present have a configuration structure where it is possible to set blocking or non-blocking writes.

You can use this API in your application to perform non-blocking write operations. 

Best Regards
Ekta

View solution in original post

0 Likes
5 Replies
Ekta_N
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hi @DaEr_349131 

As per my understanding, do you want to write to the External flash using your application code? or do you want to write the code while programming?

If it is the first thing then could you let me know which interface are you using to communicate with the external flash?

If you are using SPI based interface for communication with the external flash then it would be possible to implement non-blocking writes in the application. This can be done using the (SMIF) Serial Memory Interface. You can refer to the following link to see APIs available for implementing the same: https://infineon.github.io/psoc6pdl/pdl_api_reference_manual/html/group__group__smif.html

Thank and Regards
Ekta

 

0 Likes

hi ekta,

writing and erasing to aux-flash/emulated-eeprom while the application is running, i.e. from the application. its important that it is non blocking

to clarify, this is the 32KB flash area that is in the psoc6 itself

DaEr_349131_0-1673625058678.png

 

0 Likes
Ekta_N
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hi @DaEr_349131 

As you have mentioned PSoC 6 Flash is divided into 2 parts:

  • Application flash memory (from 2 to 8 sectors) - 128KB/256KB each.
  • Auxiliary flash memory (which can also be used for Emulated EEPROM)- 32KB.

There are two types of writes possible for these memories: 1. Blocking writes (not required by you) and 2. Partially blocking writes.

You can refer to the Flash System Routine page in the PDL Documentation to see how Partially blocking writes can be implemented when writing to flash. Basically, the flash program APIs present have a configuration structure where it is possible to set blocking or non-blocking writes.

You can use this API in your application to perform non-blocking write operations. 

Best Regards
Ekta

0 Likes

thx, I'm more after if this part of the flash is segmented somehow, cant find that in datasheets

i.e. do writes to application flash block aux? 

how does it work on a physical level?

0 Likes

ping

0 Likes