Skip to content

Commit afb9d42

Browse files
doc: release_notes: changelog: mention change to use direct IRQs
Mention change from IRQ_CONNECT to IRQ_DIRECT_CONNECT, describing why the change was made and how an application must adapt to it. Signed-off-by: Bjarki Arge Andreasen <[email protected]>
1 parent c051ab3 commit afb9d42

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

doc/nrf-bm/release_notes/release_notes_changelog.rst

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,45 @@ Documentation
136136
* Added documentation for the :ref:`lib_ble_adv`.
137137
* Added documentation for the :ref:`lib_event_scheduler` library.
138138
* Added documentation for the :ref:`lib_sensorsim` library.
139+
140+
Interrupts
141+
==========
142+
143+
* Interrupts in nRF Connect SDK Bare Metal now use the IRQ vector table directly instead of the
144+
software ISR table. This saves 8 bytes of memory per IRQ, which is approximately 2kB for the
145+
nRF54L05, nRF54L10 and nRF54L15 Application core. This change requires applications change
146+
from using :c:macro:`IRQ_CONNECT` to :c:macro:`IRQ_DIRECT_CONNECT` and
147+
:c:macro:`ISR_DIRECT_DECLARE` when defining an ISR.
148+
149+
An ISR defined with :c:macro:`IRQ_CONNECT`, like:
150+
151+
.. code-block:: c
152+
153+
int main(void)
154+
{
155+
IRQ_CONNECT(
156+
NRFX_IRQ_NUMBER_GET(NRF_GPIOTE_INST_GET(20)),
157+
10,
158+
NRFX_GPIOTE_INST_HANDLER_GET(20),
159+
0,
160+
0
161+
);
162+
163+
Must be defined like this:
164+
165+
.. code-block:: c
166+
167+
ISR_DIRECT_DECLARE(gpiote_20_direct_isr)
168+
{
169+
NRFX_GPIOTE_INST_HANDLER_GET(20)();
170+
return 0;
171+
}
172+
173+
int main(void)
174+
{
175+
IRQ_DIRECT_CONNECT(
176+
NRFX_IRQ_NUMBER_GET(NRF_GPIOTE_INST_GET(20)),
177+
10,
178+
gpiote_20_direct_isr,
179+
0
180+
);

0 commit comments

Comments
 (0)