I am still interested in the answer to this (sharing const data from the stack to the application) but for now am instead just trying to have the Stack save the data to the User Flash space with CyBle_StoreAppData. I'm about to post another question about that...
I was interested in having one place to store the build date/time for each part of the OTA launcher/stack/app. By putting it in the launcher flash area, I wouldn't have to worry about it moving around since that remains static (is never updated vs the stack and app)...
Ultimately, I did the following....
1- create const variables in the Launcher app:
const char launcherDT CY_SECTION(".DATA") = __DATE__ " " __TIME__;
const char stackDT CY_SECTION(".DATA") = "N/A";
const char appDT CY_SECTION(".DATA") = "N/A";
2- access them in a simple fashion in the launcher (or the optimizer removed them!)
3- look at the generated map file to find the memory location they were going to be put at:
.DATA 0x00000ab8 0x48 .\CortexM0\ARM_GCC_541\Debug\main.o
4- use those memory locations later in STACK and APP to write to the locations:
// these are the locations in the Launcher part of the flash
const char *launcherDT = (char *)0x00000ab8;
const char *stackDT = (char *)0x00000ad0;
const char *appDT = (char *)0x00000ae8;
// keep this for us to put stackDT above
const char *buildDT = __DATE__ " " __TIME__;
CyBle_StoreAppData((uint8 *)(buildDT), (const uint8 *)(stackDT), 20, 1);
5- read from those locations