With a support entitlement you can also get direct access to our team of highly-qualified Arm experts 24-hours a day
Open a support case
The ARMv7-M reference manual notes there eight ITM trace enable registers called ITM_TER0 to ITM_TER7. However, core_cm7.h only has one ITM_TER register. Can you clarify? Is it an error in core_cm7.h?
The one is ARMv7-M ( a general architecture), the other is Cortex-M7 (a concrete implementation). If you look into the TRM for Cortex-M7, there is only _one_ TER.
The Cortex-M7 manual only has one ITM_TER register correct. However, while the register is in the table summary, further details of the register are not in the manual. The image below is the only mention of the ITM_TER register in the manual. Where can a full description of the register be found?
Secondly, the reference manual names the stimulus ports ITM_STIM but core_cm7.h names the ports PORT. Is there a naming mismatch between the manual and core_m7.h?
The Cortex-M7 manual names the stimulus ports ITM_STIM
core_m7.h names the stimulus ports PORT
The full description is in the ARMv7-M manual. This is the "architecture" manual, which describes what is possible with a Cortex-M. The other is the discrete implementation of the architecture, here a Cortex-M7. And then there are the final SoC. Each step allows to remove things. Like here: The architecture defines up to 8 of these, while the CM7 only has one.Or take the NVIC. It defines up to 240 interrupts sources, but not every SoC uses so many.