2024-05-31 06:31 AM
Hello,
Due to more required space, our product shall be upgraded from STM32F101RD CPU to STM32F101RG. That is an upgrade in flash memory from 384KByte to 1MByte and in RAM memory from 48 kKByte to 80 KByte.
For the STM32F101RD controller, we used the define STM32F10X_HD as preprocessor define in the Keil IDE. For the STM32F101RG is it correct to use STM32F10X_XL?
Is it additionally necessary to define the flash memory of the STM32F101RG? Although the larger CPU is chosen in the device options, within Keil the error "no space in execution regions" is thrown.
Thanks in advance!
Best Regards,
Regina Kaune
Solved! Go to Solution.
2024-06-02 03:53 AM
Dear @KauneR ,
Yes, in Keil we should use the define preprocessor “STM32F10X_XL” for our XL density device with 1 MBytes of Flash . It might happen that the load and execution regions are not updated by default - So I would recommend to adjust/modify them based on the MCU flash / Ram size you use . It is in the scatter file .
Hope it helps you .
STOne-32
2024-06-02 03:53 AM
Dear @KauneR ,
Yes, in Keil we should use the define preprocessor “STM32F10X_XL” for our XL density device with 1 MBytes of Flash . It might happen that the load and execution regions are not updated by default - So I would recommend to adjust/modify them based on the MCU flash / Ram size you use . It is in the scatter file .
Hope it helps you .
STOne-32
2024-06-28 01:39 AM
Hello,
I have a further question on how to optimally configure the RAM of the STM32F101RG.
The controller has 1MByte Flash, 80KByte RAM. I need to use most RAM for Heapsize and I configured within Keil IDE under target options/ASM 0xCD00 for Heap size and 0x1000 for Stack size. Totally, the size is much smaller as 80 KByte. But when I try to increase the size for the Heap only a little bit, I get errors like
: No space in execution regions with .ANY selector matching
Within scatter file, I configured in this way:
LR_IROM1 0x08000000 0x000FA000 { ; load region size_region
ER_IROM1 0x08000000 0x000EA600 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000010 0x00014000 { ; RW data
.ANY (+RW +ZI)
}
}
How can I optimally use the 80KBytes of RAM for a large heap?
Thanks in advance!
Best regards,
Regina Kaune
2024-07-02 06:03 AM
Hello,
I have a further question on how to optimally configure the RAM of the STM32F101RG.
The controller has 1MByte Flash, 80KByte RAM. I need to use most RAM for Heapsize and I configured within Keil IDE under target options/ASM 0xCD00 for Heap size and 0x1000 for Stack size. Totally, the size is much smaller as 80 KByte. But when I try to increase the size for the Heap only a little bit, I get errors like
: No space in execution regions with .ANY selector matching
Within scatter file, I configured in this way:
LR_IROM1 0x08000000 0x000FA000 { ; load region size_region
ER_IROM1 0x08000000 0x000EA600 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000010 0x00014000 { ; RW data
.ANY (+RW +ZI)
}
}
How can I optimally use the 80KBytes of RAM for a large heap?
Thanks in advance!
Best regards,
Regina Kaune
2024-07-02 06:07 AM
@KauneR wrote:I have a further question
Best to start a new thread for a new question.
Post a link here to say where it is once you've done that.
Probably best to post your scatter file extract as for source code; using the </> button - see: