1 /*
2  * Copyright (c) 2023, Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <string.h>
8 #include "bs_tracing.h"
9 #include "irq_ctrl.h"
10 #include "NRF_EGU.h"
11 #include "NRF_PPI.h"
12 
13 /*
14  * EGU — Event generator unit
15  * https://infocenter.nordicsemi.com/topic/ps_nrf52833/egu.html?cp=4_1_0_5_6
16  */
17 
18 #define N_EGU 6
19 #define N_EGU_EVENTS 16
20 NRF_EGU_Type NRF_EGU_regs[N_EGU];
21 static bool egu_int_line[N_EGU] = {false}; //Is the EGU currently driving this interrupt line high
22 
23 /**
24  * Initialize the EGU model
25  */
nrf_egu_init()26 void nrf_egu_init(){
27   memset(NRF_EGU_regs, 0, sizeof(NRF_EGU_Type)*N_EGU);
28   memset(egu_int_line, 0, sizeof(egu_int_line));
29 }
30 
31 /**
32  * Clean up the EGU model before program exit
33  */
nrf_egu_clean_up()34 void nrf_egu_clean_up(){
35   /* Intentionally empty */
36 }
37 
38 /**
39  * Check if the interrupt line for EGU instance needs to be raised or lowered
40  * (as a result of either the interrupt mask or the event register having
41  * been modified)
42  */
nrf_egu_eval_interrupt(int inst)43 static void nrf_egu_eval_interrupt(int inst){
44   NRF_EGU_Type *EGU_regs = &NRF_EGU_regs[inst];
45   bool new_egu_int_line = false;
46 
47   for (int i = 0; i < N_EGU_EVENTS; i++) {
48     int int_mask = (EGU_regs->INTEN >> i) & 1;
49     if (int_mask && EGU_regs->EVENTS_TRIGGERED[i]) {
50       new_egu_int_line = true;
51     }
52   }
53 
54   if (new_egu_int_line && (egu_int_line[inst] == false)) {
55     egu_int_line[inst] = true;
56     hw_irq_ctrl_raise_level_irq_line(SWI0_EGU0_IRQn + inst);
57   } else if ((new_egu_int_line == false) && egu_int_line[inst]) {
58     egu_int_line[inst] = false;
59     hw_irq_ctrl_lower_level_irq_line(SWI0_EGU0_IRQn + inst);
60   }
61 }
62 
nrf_egu_check_inst_event(uint egu_inst,uint nbr,const char * type)63 static inline void nrf_egu_check_inst_event(uint egu_inst, uint nbr, const char *type){
64   if ((egu_inst >= N_EGU) || (nbr >= N_EGU_EVENTS) ) {
65     bs_trace_error_time_line("Attempted to access non existent %s %u in EGU instance %u\n", type, nbr, egu_inst);
66   }
67 }
68 
69 /**
70  * Do whatever is needed after the task has been triggered
71  */
nrf_egu_TASK_TRIGGER(uint inst,uint task_nbr)72 void nrf_egu_TASK_TRIGGER(uint inst, uint task_nbr){
73   nrf_egu_check_inst_event(inst, task_nbr, "task");
74 
75   NRF_EGU_regs[inst].EVENTS_TRIGGERED[task_nbr] = 1;
76   nrf_egu_eval_interrupt(inst);
77 
78   { //Signal the PPI
79     const ppi_event_types_t PPI_EGU_EVENTS_base[N_EGU]  = {
80       EGU0_EVENTS_TRIGGERED_0,
81       EGU1_EVENTS_TRIGGERED_0,
82       EGU2_EVENTS_TRIGGERED_0,
83       EGU3_EVENTS_TRIGGERED_0,
84       EGU4_EVENTS_TRIGGERED_0,
85       EGU5_EVENTS_TRIGGERED_0,
86     }; //The events for each EGU instance are assumed consecutive
87 
88     nrf_ppi_event(PPI_EGU_EVENTS_base[inst]+ task_nbr);
89   }
90 }
91 
nrf_egu_regw_sideeffect_INTENSET(int inst)92 void nrf_egu_regw_sideeffect_INTENSET(int inst) {
93   NRF_EGU_Type *EGU_regs = &NRF_EGU_regs[inst];
94   if ( EGU_regs->INTENSET ) {
95     EGU_regs->INTEN   |= EGU_regs->INTENSET;
96     EGU_regs->INTENSET = EGU_regs->INTEN;
97 
98     nrf_egu_eval_interrupt(inst);
99   }
100 }
101 
nrf_egu_regw_sideeffect_INTENCLR(int inst)102 void nrf_egu_regw_sideeffect_INTENCLR(int inst) {
103   NRF_EGU_Type *EGU_regs = &NRF_EGU_regs[inst];
104   if ( EGU_regs->INTENCLR ) {
105     EGU_regs->INTEN   &= ~EGU_regs->INTENCLR;
106     EGU_regs->INTENSET = EGU_regs->INTEN;
107     EGU_regs->INTENCLR = 0; //We do not model reading the INTEN register thru the INTENCLR one
108 
109     nrf_egu_eval_interrupt(inst);
110   }
111 }
112 
nrf_egu_regw_sideeffect_INTEN(int inst)113 void nrf_egu_regw_sideeffect_INTEN(int inst) {
114   NRF_EGU_Type *EGU_regs = &NRF_EGU_regs[inst];
115   EGU_regs->INTENSET = EGU_regs->INTEN;
116   nrf_egu_eval_interrupt(inst);
117 }
118 
nrf_egu_regw_sideeffect_EVENTS_TRIGGERED(int inst,uint event_nbr)119 void nrf_egu_regw_sideeffect_EVENTS_TRIGGERED(int inst, uint event_nbr) {
120   nrf_egu_check_inst_event(inst, event_nbr, "event");
121   nrf_egu_eval_interrupt(inst);
122 }
123 
nrf_egu_regw_sideeffects_TASK_TRIGGER(uint inst,uint task_nbr)124 void nrf_egu_regw_sideeffects_TASK_TRIGGER(uint inst, uint task_nbr){
125   nrf_egu_check_inst_event(inst, task_nbr, "task");
126 
127   if (NRF_EGU_regs[inst].TASKS_TRIGGER[task_nbr] != 0) {
128     NRF_EGU_regs[inst].TASKS_TRIGGER[task_nbr] = 0;
129     nrf_egu_TASK_TRIGGER(inst, task_nbr);
130   }
131 }
132 
133 /*
134  * Trampolines to automatically call from the PPI
135  */
136 /* Generated with:
137 #! /usr/bin/env python3
138 #EGU.c
139 for inst in range(0,6):
140     for i in range(0,16):
141         print("void nrf_egu_%i_TASK_TRIGGER_%i(void){ nrf_egu_TASK_TRIGGER(%i,%i); }"%(inst,i,inst,i))
142 #EGU.h
143 for inst in range(0,6):
144     for i in range(0,16):
145         print("void nrf_egu_%i_TASK_TRIGGER_%i(void);"%(inst,i))
146 #PPI connections:
147 #PPI ppi_tasks_table:
148 for inst in range(0,6):
149     for i in range(0,16):
150         print("{(void*)&NRF_EGU_regs[%i].TASKS_TRIGGER[%i] , nrf_egu_%i_TASK_TRIGGER_%i},"%(inst,i,inst,i))
151 #PPI ppi_events_table:
152 for inst in range(0,6):
153     for i in range(0,16):
154         print("{EGU%i_EVENTS_TRIGGERED_%i, &NRF_EGU_regs[%i].EVENTS_TRIGGERED[%i]},"%(inst,i,inst,i))
155  */
nrf_egu_0_TASK_TRIGGER_0(void)156 void nrf_egu_0_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(0,0); }
nrf_egu_0_TASK_TRIGGER_1(void)157 void nrf_egu_0_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(0,1); }
nrf_egu_0_TASK_TRIGGER_2(void)158 void nrf_egu_0_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(0,2); }
nrf_egu_0_TASK_TRIGGER_3(void)159 void nrf_egu_0_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(0,3); }
nrf_egu_0_TASK_TRIGGER_4(void)160 void nrf_egu_0_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(0,4); }
nrf_egu_0_TASK_TRIGGER_5(void)161 void nrf_egu_0_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(0,5); }
nrf_egu_0_TASK_TRIGGER_6(void)162 void nrf_egu_0_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(0,6); }
nrf_egu_0_TASK_TRIGGER_7(void)163 void nrf_egu_0_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(0,7); }
nrf_egu_0_TASK_TRIGGER_8(void)164 void nrf_egu_0_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(0,8); }
nrf_egu_0_TASK_TRIGGER_9(void)165 void nrf_egu_0_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(0,9); }
nrf_egu_0_TASK_TRIGGER_10(void)166 void nrf_egu_0_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(0,10); }
nrf_egu_0_TASK_TRIGGER_11(void)167 void nrf_egu_0_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(0,11); }
nrf_egu_0_TASK_TRIGGER_12(void)168 void nrf_egu_0_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(0,12); }
nrf_egu_0_TASK_TRIGGER_13(void)169 void nrf_egu_0_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(0,13); }
nrf_egu_0_TASK_TRIGGER_14(void)170 void nrf_egu_0_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(0,14); }
nrf_egu_0_TASK_TRIGGER_15(void)171 void nrf_egu_0_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(0,15); }
nrf_egu_1_TASK_TRIGGER_0(void)172 void nrf_egu_1_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(1,0); }
nrf_egu_1_TASK_TRIGGER_1(void)173 void nrf_egu_1_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(1,1); }
nrf_egu_1_TASK_TRIGGER_2(void)174 void nrf_egu_1_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(1,2); }
nrf_egu_1_TASK_TRIGGER_3(void)175 void nrf_egu_1_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(1,3); }
nrf_egu_1_TASK_TRIGGER_4(void)176 void nrf_egu_1_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(1,4); }
nrf_egu_1_TASK_TRIGGER_5(void)177 void nrf_egu_1_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(1,5); }
nrf_egu_1_TASK_TRIGGER_6(void)178 void nrf_egu_1_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(1,6); }
nrf_egu_1_TASK_TRIGGER_7(void)179 void nrf_egu_1_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(1,7); }
nrf_egu_1_TASK_TRIGGER_8(void)180 void nrf_egu_1_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(1,8); }
nrf_egu_1_TASK_TRIGGER_9(void)181 void nrf_egu_1_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(1,9); }
nrf_egu_1_TASK_TRIGGER_10(void)182 void nrf_egu_1_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(1,10); }
nrf_egu_1_TASK_TRIGGER_11(void)183 void nrf_egu_1_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(1,11); }
nrf_egu_1_TASK_TRIGGER_12(void)184 void nrf_egu_1_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(1,12); }
nrf_egu_1_TASK_TRIGGER_13(void)185 void nrf_egu_1_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(1,13); }
nrf_egu_1_TASK_TRIGGER_14(void)186 void nrf_egu_1_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(1,14); }
nrf_egu_1_TASK_TRIGGER_15(void)187 void nrf_egu_1_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(1,15); }
nrf_egu_2_TASK_TRIGGER_0(void)188 void nrf_egu_2_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(2,0); }
nrf_egu_2_TASK_TRIGGER_1(void)189 void nrf_egu_2_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(2,1); }
nrf_egu_2_TASK_TRIGGER_2(void)190 void nrf_egu_2_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(2,2); }
nrf_egu_2_TASK_TRIGGER_3(void)191 void nrf_egu_2_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(2,3); }
nrf_egu_2_TASK_TRIGGER_4(void)192 void nrf_egu_2_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(2,4); }
nrf_egu_2_TASK_TRIGGER_5(void)193 void nrf_egu_2_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(2,5); }
nrf_egu_2_TASK_TRIGGER_6(void)194 void nrf_egu_2_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(2,6); }
nrf_egu_2_TASK_TRIGGER_7(void)195 void nrf_egu_2_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(2,7); }
nrf_egu_2_TASK_TRIGGER_8(void)196 void nrf_egu_2_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(2,8); }
nrf_egu_2_TASK_TRIGGER_9(void)197 void nrf_egu_2_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(2,9); }
nrf_egu_2_TASK_TRIGGER_10(void)198 void nrf_egu_2_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(2,10); }
nrf_egu_2_TASK_TRIGGER_11(void)199 void nrf_egu_2_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(2,11); }
nrf_egu_2_TASK_TRIGGER_12(void)200 void nrf_egu_2_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(2,12); }
nrf_egu_2_TASK_TRIGGER_13(void)201 void nrf_egu_2_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(2,13); }
nrf_egu_2_TASK_TRIGGER_14(void)202 void nrf_egu_2_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(2,14); }
nrf_egu_2_TASK_TRIGGER_15(void)203 void nrf_egu_2_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(2,15); }
nrf_egu_3_TASK_TRIGGER_0(void)204 void nrf_egu_3_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(3,0); }
nrf_egu_3_TASK_TRIGGER_1(void)205 void nrf_egu_3_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(3,1); }
nrf_egu_3_TASK_TRIGGER_2(void)206 void nrf_egu_3_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(3,2); }
nrf_egu_3_TASK_TRIGGER_3(void)207 void nrf_egu_3_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(3,3); }
nrf_egu_3_TASK_TRIGGER_4(void)208 void nrf_egu_3_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(3,4); }
nrf_egu_3_TASK_TRIGGER_5(void)209 void nrf_egu_3_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(3,5); }
nrf_egu_3_TASK_TRIGGER_6(void)210 void nrf_egu_3_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(3,6); }
nrf_egu_3_TASK_TRIGGER_7(void)211 void nrf_egu_3_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(3,7); }
nrf_egu_3_TASK_TRIGGER_8(void)212 void nrf_egu_3_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(3,8); }
nrf_egu_3_TASK_TRIGGER_9(void)213 void nrf_egu_3_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(3,9); }
nrf_egu_3_TASK_TRIGGER_10(void)214 void nrf_egu_3_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(3,10); }
nrf_egu_3_TASK_TRIGGER_11(void)215 void nrf_egu_3_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(3,11); }
nrf_egu_3_TASK_TRIGGER_12(void)216 void nrf_egu_3_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(3,12); }
nrf_egu_3_TASK_TRIGGER_13(void)217 void nrf_egu_3_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(3,13); }
nrf_egu_3_TASK_TRIGGER_14(void)218 void nrf_egu_3_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(3,14); }
nrf_egu_3_TASK_TRIGGER_15(void)219 void nrf_egu_3_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(3,15); }
nrf_egu_4_TASK_TRIGGER_0(void)220 void nrf_egu_4_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(4,0); }
nrf_egu_4_TASK_TRIGGER_1(void)221 void nrf_egu_4_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(4,1); }
nrf_egu_4_TASK_TRIGGER_2(void)222 void nrf_egu_4_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(4,2); }
nrf_egu_4_TASK_TRIGGER_3(void)223 void nrf_egu_4_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(4,3); }
nrf_egu_4_TASK_TRIGGER_4(void)224 void nrf_egu_4_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(4,4); }
nrf_egu_4_TASK_TRIGGER_5(void)225 void nrf_egu_4_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(4,5); }
nrf_egu_4_TASK_TRIGGER_6(void)226 void nrf_egu_4_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(4,6); }
nrf_egu_4_TASK_TRIGGER_7(void)227 void nrf_egu_4_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(4,7); }
nrf_egu_4_TASK_TRIGGER_8(void)228 void nrf_egu_4_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(4,8); }
nrf_egu_4_TASK_TRIGGER_9(void)229 void nrf_egu_4_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(4,9); }
nrf_egu_4_TASK_TRIGGER_10(void)230 void nrf_egu_4_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(4,10); }
nrf_egu_4_TASK_TRIGGER_11(void)231 void nrf_egu_4_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(4,11); }
nrf_egu_4_TASK_TRIGGER_12(void)232 void nrf_egu_4_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(4,12); }
nrf_egu_4_TASK_TRIGGER_13(void)233 void nrf_egu_4_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(4,13); }
nrf_egu_4_TASK_TRIGGER_14(void)234 void nrf_egu_4_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(4,14); }
nrf_egu_4_TASK_TRIGGER_15(void)235 void nrf_egu_4_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(4,15); }
nrf_egu_5_TASK_TRIGGER_0(void)236 void nrf_egu_5_TASK_TRIGGER_0(void){ nrf_egu_TASK_TRIGGER(5,0); }
nrf_egu_5_TASK_TRIGGER_1(void)237 void nrf_egu_5_TASK_TRIGGER_1(void){ nrf_egu_TASK_TRIGGER(5,1); }
nrf_egu_5_TASK_TRIGGER_2(void)238 void nrf_egu_5_TASK_TRIGGER_2(void){ nrf_egu_TASK_TRIGGER(5,2); }
nrf_egu_5_TASK_TRIGGER_3(void)239 void nrf_egu_5_TASK_TRIGGER_3(void){ nrf_egu_TASK_TRIGGER(5,3); }
nrf_egu_5_TASK_TRIGGER_4(void)240 void nrf_egu_5_TASK_TRIGGER_4(void){ nrf_egu_TASK_TRIGGER(5,4); }
nrf_egu_5_TASK_TRIGGER_5(void)241 void nrf_egu_5_TASK_TRIGGER_5(void){ nrf_egu_TASK_TRIGGER(5,5); }
nrf_egu_5_TASK_TRIGGER_6(void)242 void nrf_egu_5_TASK_TRIGGER_6(void){ nrf_egu_TASK_TRIGGER(5,6); }
nrf_egu_5_TASK_TRIGGER_7(void)243 void nrf_egu_5_TASK_TRIGGER_7(void){ nrf_egu_TASK_TRIGGER(5,7); }
nrf_egu_5_TASK_TRIGGER_8(void)244 void nrf_egu_5_TASK_TRIGGER_8(void){ nrf_egu_TASK_TRIGGER(5,8); }
nrf_egu_5_TASK_TRIGGER_9(void)245 void nrf_egu_5_TASK_TRIGGER_9(void){ nrf_egu_TASK_TRIGGER(5,9); }
nrf_egu_5_TASK_TRIGGER_10(void)246 void nrf_egu_5_TASK_TRIGGER_10(void){ nrf_egu_TASK_TRIGGER(5,10); }
nrf_egu_5_TASK_TRIGGER_11(void)247 void nrf_egu_5_TASK_TRIGGER_11(void){ nrf_egu_TASK_TRIGGER(5,11); }
nrf_egu_5_TASK_TRIGGER_12(void)248 void nrf_egu_5_TASK_TRIGGER_12(void){ nrf_egu_TASK_TRIGGER(5,12); }
nrf_egu_5_TASK_TRIGGER_13(void)249 void nrf_egu_5_TASK_TRIGGER_13(void){ nrf_egu_TASK_TRIGGER(5,13); }
nrf_egu_5_TASK_TRIGGER_14(void)250 void nrf_egu_5_TASK_TRIGGER_14(void){ nrf_egu_TASK_TRIGGER(5,14); }
nrf_egu_5_TASK_TRIGGER_15(void)251 void nrf_egu_5_TASK_TRIGGER_15(void){ nrf_egu_TASK_TRIGGER(5,15); }
252