EGU — Event generator unit

Event generator unit (EGU) provides support for interlayer signaling. This means providing support for atomic triggering of both CPU execution and hardware tasks, from both firmware (by CPU) and hardware (by PPI). This feature can be used for triggering CPU execution at a lower priority execution from a higher priority execution, or to handle a peripheral's interrupt service routine (ISR) execution at a lower priority for some of its events. However, triggering any priority from any priority is possible.

Listed here are the main EGU features:

  • Software-enabled interrupt triggering
  • Separate interrupt vectors for every EGU instance
  • Up to 16 separate event flags per interrupt for multiplexing

Each instance of EGU implements a set of tasks which can individually be triggered to generate the corresponding event. For example, the corresponding event for TASKS_TRIGGER[n] is EVENTS_TRIGGERED[n]. See Instances for a list of EGU instances.

Registers

Table 1. Instances
Base addressPeripheralInstanceDescriptionConfiguration
0x40014000EGUEGU0

Event generator unit 0

  
0x40015000EGUEGU1

Event generator unit 1

  
Table 2. Register overview
RegisterOffsetDescription
TASKS_TRIGGER[0]0x000

Trigger 0 for triggering the corresponding TRIGGERED[0] event

 
TASKS_TRIGGER[1]0x004

Trigger 1 for triggering the corresponding TRIGGERED[1] event

 
TASKS_TRIGGER[2]0x008

Trigger 2 for triggering the corresponding TRIGGERED[2] event

 
TASKS_TRIGGER[3]0x00C

Trigger 3 for triggering the corresponding TRIGGERED[3] event

 
TASKS_TRIGGER[4]0x010

Trigger 4 for triggering the corresponding TRIGGERED[4] event

 
TASKS_TRIGGER[5]0x014

Trigger 5 for triggering the corresponding TRIGGERED[5] event

 
TASKS_TRIGGER[6]0x018

Trigger 6 for triggering the corresponding TRIGGERED[6] event

 
TASKS_TRIGGER[7]0x01C

Trigger 7 for triggering the corresponding TRIGGERED[7] event

 
TASKS_TRIGGER[8]0x020

Trigger 8 for triggering the corresponding TRIGGERED[8] event

 
TASKS_TRIGGER[9]0x024

Trigger 9 for triggering the corresponding TRIGGERED[9] event

 
TASKS_TRIGGER[10]0x028

Trigger 10 for triggering the corresponding TRIGGERED[10] event

 
TASKS_TRIGGER[11]0x02C

Trigger 11 for triggering the corresponding TRIGGERED[11] event

 
TASKS_TRIGGER[12]0x030

Trigger 12 for triggering the corresponding TRIGGERED[12] event

 
TASKS_TRIGGER[13]0x034

Trigger 13 for triggering the corresponding TRIGGERED[13] event

 
TASKS_TRIGGER[14]0x038

Trigger 14 for triggering the corresponding TRIGGERED[14] event

 
TASKS_TRIGGER[15]0x03C

Trigger 15 for triggering the corresponding TRIGGERED[15] event

 
EVENTS_TRIGGERED[0]0x100

Event number 0 generated by triggering the corresponding TRIGGER[0] task

 
EVENTS_TRIGGERED[1]0x104

Event number 1 generated by triggering the corresponding TRIGGER[1] task

 
EVENTS_TRIGGERED[2]0x108

Event number 2 generated by triggering the corresponding TRIGGER[2] task

 
EVENTS_TRIGGERED[3]0x10C

Event number 3 generated by triggering the corresponding TRIGGER[3] task

 
EVENTS_TRIGGERED[4]0x110

Event number 4 generated by triggering the corresponding TRIGGER[4] task

 
EVENTS_TRIGGERED[5]0x114

Event number 5 generated by triggering the corresponding TRIGGER[5] task

 
EVENTS_TRIGGERED[6]0x118

Event number 6 generated by triggering the corresponding TRIGGER[6] task

 
EVENTS_TRIGGERED[7]0x11C

Event number 7 generated by triggering the corresponding TRIGGER[7] task

 
EVENTS_TRIGGERED[8]0x120

Event number 8 generated by triggering the corresponding TRIGGER[8] task

 
EVENTS_TRIGGERED[9]0x124

Event number 9 generated by triggering the corresponding TRIGGER[9] task

 
EVENTS_TRIGGERED[10]0x128

Event number 10 generated by triggering the corresponding TRIGGER[10] task

 
EVENTS_TRIGGERED[11]0x12C

Event number 11 generated by triggering the corresponding TRIGGER[11] task

 
EVENTS_TRIGGERED[12]0x130

Event number 12 generated by triggering the corresponding TRIGGER[12] task

 
EVENTS_TRIGGERED[13]0x134

Event number 13 generated by triggering the corresponding TRIGGER[13] task

 
EVENTS_TRIGGERED[14]0x138

Event number 14 generated by triggering the corresponding TRIGGER[14] task

 
EVENTS_TRIGGERED[15]0x13C

Event number 15 generated by triggering the corresponding TRIGGER[15] task

 
INTEN0x300

Enable or disable interrupt

 
INTENSET0x304

Enable interrupt

 
INTENCLR0x308

Disable interrupt

 

TASKS_TRIGGER[n] (n=0..15)

Address offset: 0x000 + (n × 0x4)

Trigger n for triggering the corresponding TRIGGERED[n] event

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_TRIGGER

  

Trigger n for triggering the corresponding TRIGGERED[n] event

   

Trigger

1

Trigger task

EVENTS_TRIGGERED[n] (n=0..15)

Address offset: 0x100 + (n × 0x4)

Event number n generated by triggering the corresponding TRIGGER[n] task

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_TRIGGERED

  

Event number n generated by triggering the corresponding TRIGGER[n] task

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

INTEN

Address offset: 0x300

Enable or disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                PONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
A-PRW

TRIGGERED[i] (i=0..15)

  

Enable or disable interrupt for event TRIGGERED[i]

   

Disabled

0

Disable

   

Enabled

1

Enable

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                PONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
A-PRW

TRIGGERED[i] (i=0..15)

  

Write '1' to enable interrupt for event TRIGGERED[i]

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                PONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
A-PRW

TRIGGERED[i] (i=0..15)

  

Write '1' to disable interrupt for event TRIGGERED[i]

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

Electrical specification

EGU Electrical Specification

SymbolDescriptionMin.Typ.Max.Units
tEGU,EVT

Latency between setting an EGU event flag and the system setting an interrupt

1cycles