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

MDK ARM Keil Compiler Flash Memory Setting

Hello guys,
I am migrating from STM32L051C8 (flash 64kByte) to STM32L073VB (flash128kByte) and I am using MDK arm Keil Microvision Compiler.
In MDK arm keil Microvision compiler, I have set the device to STM32L073VB and in target it change to the correct size and now the compiler know the size of flash is 128kByte.
But why I still get warning message at Build Output (after compile the code), it ask me to reduce the code size:
STM32L053R8_NUCLEO\STM32L053R8_NUCLEO.sct(19): warning: L6312W: Empty Execution region description for region ER_IROM1
Program Size: Code=35568 RO-data=18776 RW-data=516 ZI-data=5684
My code size in MAP file as shown below:
Total RO Size (Code + RO Data) 54344 (53.07kB)
Total RW Size (RW Data + ZI Data) 6200 (6.05kB)
Total ROM Size (Code + RO Data + RW Data) 54452 (53.18kB)
The current code size is just about 53kB, and my current device has flash about 128kB, but why compiler ask me to reduce the code size?
In the attachment, I show I have set my device to STM32L073VB that have flash memory 128kByte.
Any suggestion what I should do? Is there anything that I miss to set in order to enable the compiler to know the current MCU flash memory is 128kByte?
Parents
  • Hi sir,

    I am agree with your answer and I am going to understand the problem clearly.

    Just want to make my self clear so that I would not misunderstanding your answer.

    In Linker Tab, if I tick the box "Use Memory Layout from target Dialog" meaning that the compiler will use the Memory setting in Target Dialog (Target Tab).

    If I untick the box "Use Memory Layout from target Dialog" meaning that the compiler will use the Memory setting in the Scatter File.

    Am I right?

Reply
  • Hi sir,

    I am agree with your answer and I am going to understand the problem clearly.

    Just want to make my self clear so that I would not misunderstanding your answer.

    In Linker Tab, if I tick the box "Use Memory Layout from target Dialog" meaning that the compiler will use the Memory setting in Target Dialog (Target Tab).

    If I untick the box "Use Memory Layout from target Dialog" meaning that the compiler will use the Memory setting in the Scatter File.

    Am I right?

Children
No data