This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

why data compressor compress constants in Flash

Hi all, please help me understand data compressor.

I do not understand, why compressor compress the constants in flash.
I believed that only compressed are the data in flash, that are used to initialised variables in ram with a given value. Why even the data in ram are compressed?
But what I do not understand in all, what are my data in flash (const volatile - because can be changed by programing flash from the code in run time).

C++ code:
#define SECTOR_ADDR_for_Config 0x080E0000
const volatile DISTA_konfigurace_flash_typ F __attribute__((at(SECTOR_ADDR_for_Config)))=
{ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ..... up to 1024 bytes

MAPFILE: Load Region LR$$.ARM.__AT_0x080E0000 (Base: 0x080e0000, Size: 0x00000400, Max: 0x00000400, ABSOLUTE, COMPRESSED[0x00000190])

Execution Region ER$$.ARM.__AT_0x080E0000 (Base: 0x080e0000, Size: 0x00000400, Max: 0x00000400, ABSOLUTE, UNINIT, COMPRESSED[0x00000190])

Base Addr Size Type Attr Idx E Section Name Object

0x080e0000 0x00000400 Data RW 311 .ARM.__AT_0x080E0000 dista_konfigurace.o

Can anyone help?
Thank you,
Ludek

Parents
  • Per,

    thank you for clear explanation. This could help I think.
    Regarding the const...
    The flash does not mean it is write protect from definition.
    Simple write to the flash write to the flash, once it is unlocked and prepared for write.

    And second, the write to the const variable is prevented by the compiler that stops you doing it.

    Regarding the construct that fills the flash with something else I will write tomorrow my case.

    have a nice evening.

    Ludek

Reply
  • Per,

    thank you for clear explanation. This could help I think.
    Regarding the const...
    The flash does not mean it is write protect from definition.
    Simple write to the flash write to the flash, once it is unlocked and prepared for write.

    And second, the write to the const variable is prevented by the compiler that stops you doing it.

    Regarding the construct that fills the flash with something else I will write tomorrow my case.

    have a nice evening.

    Ludek

Children
No data