Hi,
I would like to ask a question on RESETn on DM6437.
Which section of code is executed after the release of RESETn?
On page 45 of TMS320C64x-C64x+ DSP CPU and Instruction Set Reference Guide, it says that if ISTP.ISTB is given a value different than default, then the RESET ISFP will “never be executed via interrupt processing, because rest clears the ISTB to its default value”.
What does “clears the ISTB to its default value” mean? The user has control over the linker to place the IST at arbitrary address, and ISTP.ISTB will always point to the designated address of IST no matter where it is placed. For example, one might specify in linker.cmd to tell the linker to place IST at 0x80009000, and by RUN_START(_ISTP_START) association in the program ISTP.ISTB would also point to this address, so does “clears the ISTB to its default value” mean ISTP.ISTB value will be wiped and replaced by a default value after asserting and de-asserting RESETn?
If above is the case, then clearly no new interrupt will be executed following the release of RESETn, because ISTP.ISTB has lost all their address when IST is not at the default location. But contrary to this, my experiment actually shows that all interrupts executes as before asserting RESETn. It seems that RESETn has no effect at all!
“No effect at all” is seen only from the perspective of whether interrupts are being triggered, and the conclusion might not be accurate because there are other routes leads to the unchanged interrupt behavior. For example, reboot. This is actually what I found on page 184-185 of sprs345d, TMS320DM6437 Digital Media Processor, 6.5.2, which says C64x+ eventually begins executing from DSPBOOTADDR (determined by bootmode selection). This agrees with my observation since after reboot all interrupt behaves as after the last boot.
So the two documents:
1. TMS320C64x-C64x+ DSP CPU and Instruction Set Reference Guide
2. TMS320DM6437 Digital Media Processor
give different description on the behavior of RESETn. Is (1) wrong, because my observation seems to agree with (2)?
Table 2-15 of (1) also says the default location of IST is device-specific. I searched both (1) and (2) but cannot find such information. Where is the default address for IST?
And if (2) is correct in that DSPBOOTADDR is executed after RESETn de-assertion, then does RESET ISFP still have any chance to be executed? Why is it still there at all?
Zheng