To start with the compiler bug (small one), see this program: http://mbed.org/users/okano/code/IAP_internal_flash_write/. The IAP library reserves the flash you are going to use, so no other elements can use it. If I got it correct, it does so with:
unsigned char user_area[ USER_FLASH_AREA_SIZE ] __attribute__((section( ".ARM.__at_" USER_FLASH_AREA_START_STR( USER_FLASH_AREA_START ) ), zero_init));
That all works nicely (afaik), but the small bug: If you compile it, the RAM usage according to build detail is above 100%. To be exact, it is an additional 100% for each flash sector you include as yours (32kB). So the compiler does not recognize that char is not in the RAM but in flash memory. Everything does work, so it is just a bug with the calculations for the bar.
The stream one hopefully gets here more attention: You can attach for example your LCD window to stdout to get all printf messages on your LCD. According to early posts here that only works if the Stream object that the LCD class is a child of, was initialized with a name. The option to initialize it with a name was removed from the mbed library. So is there either a workaround for this, or is it really not possible anymore?
To start with the compiler bug (small one), see this program: http://mbed.org/users/okano/code/IAP_internal_flash_write/. The IAP library reserves the flash you are going to use, so no other elements can use it. If I got it correct, it does so with:
That all works nicely (afaik), but the small bug: If you compile it, the RAM usage according to build detail is above 100%. To be exact, it is an additional 100% for each flash sector you include as yours (32kB). So the compiler does not recognize that char is not in the RAM but in flash memory. Everything does work, so it is just a bug with the calculations for the bar.
The stream one hopefully gets here more attention: You can attach for example your LCD window to stdout to get all printf messages on your LCD. According to early posts here that only works if the Stream object that the LCD class is a child of, was initialized with a name. The option to initialize it with a name was removed from the mbed library. So is there either a workaround for this, or is it really not possible anymore?