Using the SFLASH as large staging area on cyw43907

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

cross mob
cohuc_3807591
Level 3
Level 3
5 likes given First like given

Hello all:

I am interested in using the external SFLASH memory on the 43907 eval kit as a large buffer space and staging area for a bunch of packets yet to be sent. The eval kit has plenty of extra space to accommodate, but how should I go about this as to not overwrite all the other stuff in the flash mem?

0 Likes
1 Solution

Are you using CYW943907AEVAL1F? If yes, then the flash connected in EVK is only 8 MB which is already taken up the ota2 staging area. If you have added your own flash which has 32 MB of free space after the ota2_image staging area, then you can add your own defines in ota2_image_defines.mk (but don't change before the ota2 staging area, please add after that area) and check the wiced_apps.mk to understand how you can set a rule for "variable staging area", so that that the sflash_write application downloads according to the vacant memory location in sflash (might require some additional changes in standard_platform_targets.mk file as well).

View solution in original post

3 Replies
RaktimR_11
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

I am not clear about the question. Staging area concept exists for ota2 image. If that's the case, as the staging area comes at the very end of flash layout, you don't have any risk of overwriting other stuff. You can update this OTA2_IMAGE_STAGING_AREA_SIZE macro (43xxx_Wi-Fi/platforms/CYW943907AEVAL1F/ota2_image_defines.mk) to a value of your choice based on your application.Please let me know if your question has some other implications.

Hi rroy​, you bring up a great point about the ota2 staging area. Before I get to my follow up questions I want to be a little more clear about my project:

  • The big thing is that the application already uses OTA2 - so I will absolutely need the OTA staging area IN ADDITION to the the data staging area that i'm asking about.
  • The applications main purpose is to take high sampling rate ADC data and send it out over a TCP stream - so there will be a lot of writes and reads to this section in short durations (this is important for a follow up question)

So for example, say I wanted to allocate a 32MB section of the flash for this purpose. I guess my questions then are these:

  1. Is there any API available to allocate data on the flash that wont interfere with the application/OTA space, or is it a situation where I have to add a separate macro somewhere to define this area? If I could allocate variable onto the flash directly that would be best.
  2. If I have to do the macro definition, how would i go about using sflash_write/read to use this area of memory?
0 Likes

Are you using CYW943907AEVAL1F? If yes, then the flash connected in EVK is only 8 MB which is already taken up the ota2 staging area. If you have added your own flash which has 32 MB of free space after the ota2_image staging area, then you can add your own defines in ota2_image_defines.mk (but don't change before the ota2 staging area, please add after that area) and check the wiced_apps.mk to understand how you can set a rule for "variable staging area", so that that the sflash_write application downloads according to the vacant memory location in sflash (might require some additional changes in standard_platform_targets.mk file as well).