I know how to use handlers from peripherals. But I would like to know the method to use interrupts defined by Cortex-M0.

Basically, CM0 MCU of STM or NXP define the handler start up file. Also FM0+ is the same as STM or NXP.

It is easy to modify the handler name. Because it is just rename by #define.

Whereas Creator have to define CY_ISR() and CY_ISR_PROTO() or API for peripheral. But there is no information for SVCall or others in PSoC Creator User Guide because I searched key word with SVC or Pend but did not hit in PDF.

If I put a component has interrupt function such as "Interrupt" or "SCB" in Schematic space, I can indicate the component name into the API of ISR(Component Name)_StartEx(); or ISR(Component Name)_SetVector();. But SVC, PendSV and SysTick are not peripheral such as components prepared by Cypress. Those are common exceptions in Cortex-M MCU.

Generally, Interrupt handler name is defined in a start up file .s, but the start up file generated by Creator does not have the definitions for handler. Whereas, start up file of PSoC6 has the definitions.

+++++++++++++++++++++++++++++++++++++++++

SVC_Handler

B SVC_Handler

PUBWEAK PendSV_Handler

SECTION .text:CODE:REORDER:NOROOT(1)

PendSV_Handler

B PendSV_Handler

PUBWEAK SysTick_Handler

SECTION .text:CODE:REORDER:NOROOT(1)

SysTick_Handler

B SysTick_Handler

++++++++++++++++++++++++++++++++++++++++++

If the handlers is defiled like PSoC6, I can use the handler in my source code such as below.

void SVC_Handler()

{

/* Write handler behavior*/

}

However, PSoC4 does not have the description in start up file.

Therefore, I have to use the API for component peripherals but the component for SVC, PendSV and Systick are not prepared in Component Catalog. So I am confusing how to use and indicate those in Creator.

Below is about PSoC5 and FreeRTOS.

SVC, PendSV and Systik handler is defined by function pointer, and the definition is set to ram address like below.

+++++++++++++++++++++++++++++++++++++++++++++++++

extern void xPortPendSVHandler( void );

extern void xPortSysTickHandler( void );

extern void vPortSVCHandler( void );

extern cyisraddress CyRamVectors[];

CyRamVectors[ 11 ] = ( cyisraddress ) vPortSVCHandler;

CyRamVectors[ 14 ] = ( cyisraddress ) xPortPendSVHandler;

CyRamVectors[ 15 ] = ( cyisraddress ) xPortSysTickHandler;

++++++++++++++++++++++++++++++++++++++++++++++++++

I understand if we offset vector table address from flash to ram, we can call the vPortSVCHandler, xPortPendSVHandler and xPortSysTickHandler when those exception happen. But it spend ram space and it is not easy to read and the cause of confusing in future. So at first, I would like to know the interrupt algorithm for PSoC4 to make ideal environment for my system.

Please kindly let me know an example or documentation for available of these handlers.