RT os and loader are loaded to PSRAM as well, what to do? Is it possible to load RTOS to normal RAM (even better ROM) in order to allocate more than 16 KB of stack?
You should be able to manage memory usage and placement by the linker via a Scatter File (linker script).
External memory will need to be brought up in your startup.s code prior to use by the processor for a stack. Consider also that external memory will likely be slower, and thus less desirable for stack usage as it will be a continuous drag on performance.
I have assumed that i need to modify linker_script.ld (iam using Dave ) and probably startup_XMC4700.S. But what should I modify to avoid PSRAM usage? My memory:
stack_size = DEFINED(stack_size) ? stack_size : 0x4000;no_init_size = 64;MEMORY{ FLASH_1_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x200000 FLASH_1_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x200000 PSRAM_1(!RX) : ORIGIN = 0x1FFE8000, LENGTH = 0x18000 DSRAM_1_system(!RX) : ORIGIN = 0x20000000, LENGTH = 0x20000 DSRAM_2_comm(!RX) : ORIGIN = 0x20020000, LENGTH = 0x20000 SRAM_combined(!RX) : ORIGIN = 0x1FFE8000, LENGTH = 0x58000}
BTW: what does it means: no_init_size = 64;?
Thanks!
madmat
Yeah, sorry this is a Keil forum.
Presumably no_init_size is a variable/symbol used elsewhere in the script, or imported in your source. You'll have to dig to find where the stack is actually placed into a section.
madmat said: linker_script.ld
So that's a GCC thing - not Keil ?
madmat said:iam using Dave
and that's an Infineon thing - not Keil or ARM.
https://en.wikipedia.org/wiki/DAvE_(Infineon)