ARM Cortex M0 VTOR register

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
masu_1341616
Level 5
Level 5
Distributor - TED (Japan)
10 solutions authored 10 likes received 25 sign-ins

Hello,

Cortex M0 + can be set in ROM by the VTOR register.

Normally, it is set in RAM as follows by initialize_psoc () of Cm0plusStart.c.

CYREG_CM0P_VTOR = CY_CPUSS_CONFIG_VECT_ADDR_IN_RAM

The above process is set to ROM (address: 0x0), which is the initial value of Cortex M0 +, without this process.

In this case, the vector table is allocated to ROM, but is there any particular effect on the interrupts used by CapSense or EZI2C?

Thanks

0 Likes
1 Solution
AikoO_51
Moderator
Moderator
Moderator
100 sign-ins First question asked 50 solutions authored

Current CapSense/EZI2C interrupt features are implemented on RAM Vector table bases (VTOR = 0x20000000 (RAM)).

The interrupt handlers for CapSense/EZI2C are mapped to each IRQ in vector table in RAM.

(please check CapSense_ISR_SetVector() function in CapSense_ISR.c)

If “CYREG_CM0P_VTOR = CY_CPUSS_CONFIG_VECT_ADDR_IN_RAM” is commented out, Vector table still is located in ROM.

When CapSense interrupt happens, IRQ16 in vector table in ROM will be proceeded. However, the interrupt handlers for CapSense is NOT mapped to IRQ16 in vector table in ROM. So, its interrupt will not be handled correctly.

Aiko Ohtaka
Infineon Technologies

View solution in original post

0 Likes
1 Reply
AikoO_51
Moderator
Moderator
Moderator
100 sign-ins First question asked 50 solutions authored

Current CapSense/EZI2C interrupt features are implemented on RAM Vector table bases (VTOR = 0x20000000 (RAM)).

The interrupt handlers for CapSense/EZI2C are mapped to each IRQ in vector table in RAM.

(please check CapSense_ISR_SetVector() function in CapSense_ISR.c)

If “CYREG_CM0P_VTOR = CY_CPUSS_CONFIG_VECT_ADDR_IN_RAM” is commented out, Vector table still is located in ROM.

When CapSense interrupt happens, IRQ16 in vector table in ROM will be proceeded. However, the interrupt handlers for CapSense is NOT mapped to IRQ16 in vector table in ROM. So, its interrupt will not be handled correctly.

Aiko Ohtaka
Infineon Technologies
0 Likes