Hi All,
My doubt is whether we can use FlexNVM (from address 0x1000 0000 to 0x1003 FFFF) to store code which has size more than 256KByte or not.
As per reference manual, use can configure FlexNVM as either "basic data flash" or "EEPROM" or "combination of both".
But I have seen in one of example of BLE, the code size is of 494 KByte. P-Flash size is beyound 0x40000 !
This example has KW36Z set as MCU and not KW35. KW35 can have P-Flash of 512 KBytes.
Thanks and Regards,
Pandurang
Solved! Go to Solution.
Hi Pandurang,
It's possible to use the whole 512kB for program memory if your application requires it, however, it's still recommended that you leave some available space for the PROD_DATA memory partition, as it's used by some components of the BLE stack used by the KW36.
Please let me know if you need any more information.
Best regards,
Sebastian
Hi Pandurang, I hope you're doing well!
It's possible to use FlexNVM to fit more than 256k of program data.
The BLE stack examples provided in the KW36Z's SDK already do this. They use Flex_nvm as additional program flash to be able to fit the BLE stack. This allows the PROGRAM_FLASH memory region to be of 494kB, leaving 16k bytes of NVM from address 0x7b800, and, 2kB available for PROD_DATA from address 0x7f800.
Please let me know if you need any more information.
Best regards,
Sebastian
Hello Sebastian,
Thanks for your reply.
Yes, as we can see in the example, you mentioned, code is stored in FlexNVM by extending P-Flash area upto FlexNVM address range. So, code can execute from FlexNVM address range also. In other words, we can have 512 KB memory to store and execute any code from 512 KB memory.
Along with Code, to store data in FlexNVM address range, we have to make another partition of required size, right? As it is done in example code (store PROD_DATA in separate partition).
Thanks again for clearing my doubts.
Regards,
Pandurang
Hi Pandurang,
It's recommended to leave partitions for both NVM_region and PROD_DATA in your MCU's memory configuration, as these may be used for different purposes, depending on the needs of your application.
The configuration used in the SDK examples is a good starting point, but in the end, depending on your application's requirements, the memory configuration may need to be modified.
Please let me know if you need any other information.
Best regards,
Sebastian
Hello Sebastian,
Thanks for your reply.
If our application does not require to store any data, we can use full 512 KB memory to store code, right?
Hi Pandurang,
It's possible to use the whole 512kB for program memory if your application requires it, however, it's still recommended that you leave some available space for the PROD_DATA memory partition, as it's used by some components of the BLE stack used by the KW36.
Please let me know if you need any more information.
Best regards,
Sebastian
Thanks Sebastian,
It is now clear. Thanks for your support.
Regards,
Pandurang