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:

enter image description here

Controls stays on the address 3c6. If I browse to the beginning of the program memory, I see the following:

enter image description here

This confirms that 3c6 is really the reset entry point. At the same time I see on the registers:

enter image description here

The 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:

enter image description here

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:

  1. 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?
  2. What other resources are used by ICD3?
  3. What should I do/not do to cooperate nicely with ICD3?
  4. 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:

enter image description here

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?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.