Skip to content

Commit 33a457e

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 470e036 commit 33a457e

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
@@ -150,3 +150,45 @@ Documentation
150150
* Added documentation for the :ref:`lib_event_scheduler` library.
151151
* Added documentation for the :ref:`lib_sensorsim` library.
152152
* Added documentation for the :ref:`lib_ble_queued_writes` library.
153+
154+
Interrupts
155+
==========
156+
157+
* Interrupts in nRF Connect SDK Bare Metal now use the IRQ vector table directly instead of the
158+
software ISR table. This saves 8 bytes of memory per IRQ, which is approximately 2kB for the
159+
nRF54L05, nRF54L10 and nRF54L15 Application core. This change requires applications change
160+
from using :c:macro:`IRQ_CONNECT` to :c:macro:`IRQ_DIRECT_CONNECT` and
161+
:c:macro:`ISR_DIRECT_DECLARE` when defining an ISR.
162+
163+
An ISR defined with :c:macro:`IRQ_CONNECT`, like:
164+
165+
.. code-block:: c
166+
167+
int main(void)
168+
{
169+
IRQ_CONNECT(
170+
NRFX_IRQ_NUMBER_GET(NRF_GPIOTE_INST_GET(20)),
171+
10,
172+
NRFX_GPIOTE_INST_HANDLER_GET(20),
173+
0,
174+
0
175+
);
176+
177+
Must be defined like this:
178+
179+
.. code-block:: c
180+
181+
ISR_DIRECT_DECLARE(gpiote_20_direct_isr)
182+
{
183+
NRFX_GPIOTE_INST_HANDLER_GET(20)();
184+
return 0;
185+
}
186+
187+
int main(void)
188+
{
189+
IRQ_DIRECT_CONNECT(
190+
NRFX_IRQ_NUMBER_GET(NRF_GPIOTE_INST_GET(20)),
191+
10,
192+
gpiote_20_direct_isr,
193+
0
194+
);

0 commit comments

Comments
 (0)