First im trying to understand the memory according to the default.lcf file and the debug view:
MEMORY {
// Data addresses 0-7 are resererved for internal compiler use
DATA (RW) : ORIGIN = d:0x20, LENGTH = 0 // Initialized data
BSS (RW) : ORIGIN = AFTER(DATA), LENGTH = 0 // Uninitialized data
ENGINE() :ORIGIN = 0, LENGTH = 0 // Engine
ETPU_INFO() : ORIGIN = 0, LENGTH = 0 // Internal compiler info - don't remove this line
ENTRY_TABLE(R) : ORIGIN = c:0, LENGTH = 0 // Entry table
TEXT (RX) : ORIGIN = 0x400, LENGTH = 0 // Code
}
SECTION {
...
_STACK_START = 0x1000;
}
What means the letters of origins of memory segment, d:0x20 and c:0? Where i can see information for that?
Where are each section when i debug for simulation? The sections that i try to locate are:
You can see the ram data and code in the memory tab when you debug?
Solved! Go to Solution.
“c:” and ”d:” stands for CODE and DATA
For rest, let me check it.
Thanks for answer, i could understand better the memory when i see that the Debug has the tab Memory Browser that divide into Ram, Code and Registers because the tab memory seems that only show the Ram section. For now, my doubt is for the stack where in the file lpm_default.lcf is written
_STACK_START = 0x1000.
But it seems that the procedure "write_engine_relative_base_addr" sets the position for ram memory for the stack finally. Also i have the doubt for the memory [0x00, 0x1F] that use the internal compiler, what section use the 32 bytes? Is only for the debug?
Actually it is stated in the manual:
32 bytes of data are are used by eTPU compiler. So it should be not touched. Unfortunately I haven't found any further description.