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