Ok, I created a simple project that consists of just a few assembler files and it is not using any libraries. What is it doing is not important here. After that I have put breakpoint in ICD3 right on the reset entry point and after booting I see the following:
Controls stays on the address 3c6. If I browse to the beginning of the program memory, I see the following:
This confirms that 3c6 is really the reset entry point. At the same time I see on the registers:
W15 is 0x800, as it is written in the documentation, but
SPLIM is not zero as it should be according to the docs. I would guess that ICD3 has set it. Is that right? Even more, ICD3 shows the first 80 bytes of the RAM as reserved:
My guess is that I should not use the stack setup that I inherited after reset (because it points right into the reserved area and seems co cover it all) but replace it with my own one.
So my questions:
- Will ICD3 work fine on any stack? I cannot change W15 and SPLIM in one step, so there is a chance that stack will be inconsitent for a short while. Is this simply a small risk that I should take or there is something more there behind?
- What other resources are used by ICD3?
- What should I do/not do to cooperate nicely with ICD3?
- Is it right that in the release version of the build there will be no 80 bytes reserved area?
p.s. Here is the build log:
It suggests that this 80 bytes area in the RAM are not a single piece of data. But
SPLIM covers them all... Does anybody has any clue what this all might mean?