<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/117505/unable-to-insert-breakpoint-in-timer-interrupt-handler</link><description>Hi, I&amp;#39;m delevoping an appilcation which can generate one sample per 20 us (accomplished with timer0) and transmit one ESB packet when 20 samples are collected. Below is the C code for my applciation (modified from esb_ptx example in nRF5 SDK 16.0): 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 09 Jan 2025 17:11:14 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/117505/unable-to-insert-breakpoint-in-timer-interrupt-handler" /><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/517777?ContentTypeID=1</link><pubDate>Thu, 09 Jan 2025 17:11:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:707d11db-58a2-4fb1-a60d-df8082328e5c</guid><dc:creator>Johnson (Jui-Wei) Tsai</dc:creator><description>&lt;p&gt;&lt;span&gt;Dear Hung Bui,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I can use 252-byte payload packet by changing&amp;nbsp;NRF_ESB_MAX_PAYLOAD_LENGTH to&amp;nbsp;252&amp;nbsp;in nrf_esb.h.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;ll close this case and open new tickets&amp;nbsp;on the&amp;nbsp;&amp;nbsp;NRF_LOG + app_uart issue and the max throughput rate of ESB.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank&amp;nbsp;you again for your help. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Johnson&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/517526?ContentTypeID=1</link><pubDate>Wed, 08 Jan 2025 15:18:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4a5696bc-018a-481b-9bcf-5498db2fdb36</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Johnson,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Please create a new ticket.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. I think yes. You just need to increase&amp;nbsp;&lt;span&gt;NRF_ESB_MAX_PAYLOAD_LENGTH&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/517310?ContentTypeID=1</link><pubDate>Tue, 07 Jan 2025 16:58:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:062f27b7-207e-4310-a024-71650bfa40f5</guid><dc:creator>Johnson (Jui-Wei) Tsai</dc:creator><description>&lt;p&gt;Dear Hung Bui,&lt;/p&gt;
&lt;p&gt;Thanks for your replying. Could you help me answer the following questions?&lt;/p&gt;
&lt;p&gt;1. Like I mentioned in my previous article, I set NRF_LOG_ENABLED to 1 and NRF_LOG_DEFAULT_LEVEL to 3 as seen in the sdk_config.h of my RX application (with its&amp;nbsp;C code as below). Why NRF_LOG in my RX app no longer appears in the debugging window?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// &amp;lt;e&amp;gt; NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
//==========================================================
#ifndef NRFX_UARTE_ENABLED
#define NRFX_UARTE_ENABLED 1
#endif
// &amp;lt;o&amp;gt; NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
#ifndef NRFX_UARTE0_ENABLED
#define NRFX_UARTE0_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;8388608=&amp;gt; 31250 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15007744=&amp;gt; 56000 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;e&amp;gt; NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
//==========================================================
#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
#define NRFX_UARTE_CONFIG_INFO_COLOR 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
//==========================================================
#ifndef NRFX_UART_ENABLED
#define NRFX_UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; NRFX_UART0_ENABLED - Enable UART0 instance 
#ifndef NRFX_UART0_ENABLED
#define NRFX_UART0_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3866624=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7729152=&amp;gt; 28800 baud 
// &amp;lt;8388608=&amp;gt; 31250 baud 
// &amp;lt;10309632=&amp;gt; 38400 baud 
// &amp;lt;15007744=&amp;gt; 56000 baud 
// &amp;lt;15462400=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30924800=&amp;gt; 115200 baud 
// &amp;lt;61845504=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;123695104=&amp;gt; 460800 baud 
// &amp;lt;247386112=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;e&amp;gt; NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
//==========================================================
#ifndef NRFX_UART_CONFIG_LOG_ENABLED
#define NRFX_UART_CONFIG_LOG_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRFX_UART_CONFIG_LOG_LEVEL
#define NRFX_UART_CONFIG_LOG_LEVEL 3
#endif

// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UART_CONFIG_INFO_COLOR
#define NRFX_UART_CONFIG_INFO_COLOR 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
#define NRFX_UART_CONFIG_DEBUG_COLOR 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
//==========================================================
#ifndef UART_ENABLED
#define UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef UART_DEFAULT_CONFIG_HWFC
#define UART_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef UART_DEFAULT_CONFIG_PARITY
#define UART_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef UART_DEFAULT_CONFIG_BAUDRATE
#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 

// &amp;lt;i&amp;gt; Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;q&amp;gt; UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
 

#ifndef UART_EASY_DMA_SUPPORT
#define UART_EASY_DMA_SUPPORT 1
#endif

// &amp;lt;q&amp;gt; UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
 

#ifndef UART_LEGACY_SUPPORT
#define UART_LEGACY_SUPPORT 1
#endif

// &amp;lt;e&amp;gt; UART0_ENABLED - Enable UART0 instance
//==========================================================
#ifndef UART0_ENABLED
#define UART0_ENABLED 1
#endif
// &amp;lt;q&amp;gt; UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
 

#ifndef UART0_CONFIG_USE_EASY_DMA
#define UART0_CONFIG_USE_EASY_DMA 1
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;h&amp;gt; nRF_Libraries 

//==========================================================
// &amp;lt;q&amp;gt; APP_FIFO_ENABLED  - app_fifo - Software FIFO implementation
 

#ifndef APP_FIFO_ENABLED
#define APP_FIFO_ENABLED 1
#endif

// &amp;lt;e&amp;gt; APP_UART_ENABLED - app_uart - UART driver
//==========================================================
#ifndef APP_UART_ENABLED
#define APP_UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; APP_UART_DRIVER_INSTANCE  - UART instance used
 
// &amp;lt;0=&amp;gt; 0 

#ifndef APP_UART_DRIVER_INSTANCE
#define APP_UART_DRIVER_INSTANCE 0
#endif

// &amp;lt;/e&amp;gt;





// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;h&amp;gt; nRF_Log 

//==========================================================
// &amp;lt;e&amp;gt; NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
//==========================================================
#ifndef NRF_LOG_BACKEND_RTT_ENABLED
#define NRF_LOG_BACKEND_RTT_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
// &amp;lt;i&amp;gt; Size of the buffer is a trade-off between RAM usage and processing.
// &amp;lt;i&amp;gt; if buffer is smaller then strings will often be fragmented.
// &amp;lt;i&amp;gt; It is recommended to use size which will fit typical log and only the
// &amp;lt;i&amp;gt; longer one will be fragmented.

#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
// &amp;lt;i&amp;gt; If RTT fails to accept any new data after retries
// &amp;lt;i&amp;gt; module assumes that host is not active and on next
// &amp;lt;i&amp;gt; request it will perform only one write attempt.
// &amp;lt;i&amp;gt; On successful writing, module assumes that host is active
// &amp;lt;i&amp;gt; and scheme with retry is applied again.

#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
//==========================================================
#ifndef NRF_LOG_BACKEND_UART_ENABLED
#define NRF_LOG_BACKEND_UART_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
#ifndef NRF_LOG_BACKEND_UART_TX_PIN
#define NRF_LOG_BACKEND_UART_TX_PIN 6
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
// &amp;lt;i&amp;gt; Size of the buffer is a trade-off between RAM usage and processing.
// &amp;lt;i&amp;gt; if buffer is smaller then strings will often be fragmented.
// &amp;lt;i&amp;gt; It is recommended to use size which will fit typical log and only the
// &amp;lt;i&amp;gt; longer one will be fragmented.

#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_ENABLED - nrf_log - Logger
//==========================================================
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1
#endif
// &amp;lt;h&amp;gt; Log message pool - Configuration of log message pool

//==========================================================
// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
// &amp;lt;i&amp;gt; If a small value is set, then performance of logs processing
// &amp;lt;i&amp;gt; is degraded because data is fragmented. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory utilization. The size is set to fit a message with
// &amp;lt;i&amp;gt; a timestamp and up to 2 arguments in a single memory object.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
#endif

// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
// &amp;lt;i&amp;gt; If a small value is set, then it may lead to a deadlock
// &amp;lt;i&amp;gt; in certain cases if backend has high latency and holds
// &amp;lt;i&amp;gt; multiple messages for long time. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory usage.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
#endif

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;q&amp;gt; NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
 

// &amp;lt;i&amp;gt; If set then oldest logs are overwritten. Otherwise a 
// &amp;lt;i&amp;gt; marker is injected informing about overflow.

#ifndef NRF_LOG_ALLOW_OVERFLOW
#define NRF_LOG_ALLOW_OVERFLOW 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
 

// &amp;lt;i&amp;gt; Must be power of 2 and multiple of 4.
// &amp;lt;i&amp;gt; If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 
// &amp;lt;2048=&amp;gt; 2048 
// &amp;lt;4096=&amp;gt; 4096 
// &amp;lt;8192=&amp;gt; 8192 
// &amp;lt;16384=&amp;gt; 16384 

#ifndef NRF_LOG_BUFSIZE
#define NRF_LOG_BUFSIZE 1024
#endif

// &amp;lt;q&amp;gt; NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
 

#ifndef NRF_LOG_CLI_CMDS
#define NRF_LOG_CLI_CMDS 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_DEFAULT_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRF_LOG_DEFAULT_LEVEL
#define NRF_LOG_DEFAULT_LEVEL 3
#endif

// &amp;lt;q&amp;gt; NRF_LOG_DEFERRED  - Enable deffered logger.
 

// &amp;lt;i&amp;gt; Log data is buffered and can be processed in idle.

#ifndef NRF_LOG_DEFERRED
#define NRF_LOG_DEFERRED 0
#endif

// &amp;lt;q&amp;gt; NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
 

#ifndef NRF_LOG_FILTERS_ENABLED
#define NRF_LOG_FILTERS_ENABLED 0
#endif

// &amp;lt;q&amp;gt; NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED  - Enable use of critical region for non deffered mode when flushing logs.
 

// &amp;lt;i&amp;gt; When enabled NRF_LOG_FLUSH is called from critical section when non deffered mode is used.
// &amp;lt;i&amp;gt; Log output will never be corrupted as access to the log backend is exclusive
// &amp;lt;i&amp;gt; but system will spend significant amount of time in critical section

#ifndef NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED
#define NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;e&amp;gt; NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
//==========================================================
#ifndef NRF_LOG_USES_COLORS
#define NRF_LOG_USES_COLORS 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_COLOR_DEFAULT
#define NRF_LOG_COLOR_DEFAULT 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_ERROR_COLOR
#define NRF_LOG_ERROR_COLOR 2
#endif

// &amp;lt;o&amp;gt; NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_WARNING_COLOR
#define NRF_LOG_WARNING_COLOR 4
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_USES_TIMESTAMP - Enable timestamping

// &amp;lt;i&amp;gt; Function for getting the timestamp is provided by the user
//==========================================================
#ifndef NRF_LOG_USES_TIMESTAMP
#define NRF_LOG_USES_TIMESTAMP 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;h&amp;gt; nrf_log module configuration &lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**
 * Copyright (c) 2014 - 2019, Nordic Semiconductor ASA
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this
 *    list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form, except as embedded into a Nordic
 *    Semiconductor ASA integrated circuit in a product or a software update for
 *    such product, must reproduce the above copyright notice, this list of
 *    conditions and the following disclaimer in the documentation and/or other
 *    materials provided with the distribution.
 *
 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
 *    contributors may be used to endorse or promote products derived from this
 *    software without specific prior written permission.
 *
 * 4. This software, with or without modification, must only be used with a
 *    Nordic Semiconductor ASA integrated circuit.
 *
 * 5. Any software provided in binary form under this license must not be reverse
 *    engineered, decompiled, modified and/or disassembled.
 *
 * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA &amp;quot;AS IS&amp;quot; AND ANY EXPRESS
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

#include &amp;lt;stdbool.h&amp;gt;
#include &amp;lt;stdint.h&amp;gt;
#include &amp;quot;sdk_common.h&amp;quot;
#include &amp;quot;nrf.h&amp;quot;
#include &amp;quot;nrf_esb_error_codes.h&amp;quot;
#include &amp;quot;nrf_delay.h&amp;quot;
#include &amp;quot;nrf_esb.h&amp;quot;
#include &amp;quot;nrf_gpio.h&amp;quot;
#include &amp;quot;nrf_error.h&amp;quot;
#include &amp;quot;boards.h&amp;quot;

#include &amp;quot;app_uart.h&amp;quot;
#if defined (UART_PRESENT)
#include &amp;quot;nrf_uart.h&amp;quot;
#endif
#if defined (UARTE_PRESENT)
#include &amp;quot;nrf_uarte.h&amp;quot;
#endif

#include &amp;quot;nrf_log.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_log_default_backends.h&amp;quot;

//// Parameters
#define UART_TX_BUF_SIZE                256                                         /**&amp;lt; UART TX buffer size. */
#define UART_RX_BUF_SIZE                256                                         /**&amp;lt; UART RX buffer size. */
#define NUM_BYTE_SLAV_PKT_DATA           20
#define NUM_BYTE_HOST_CMD                20


//// Global Variables

//// Instance declarations
static nrf_esb_payload_t        tx_payload;
static nrf_esb_payload_t        rx_payload;

/*lint -save -esym(40, BUTTON_1) -esym(40, BUTTON_2) -esym(40, BUTTON_3) -esym(40, BUTTON_4) -esym(40, LED_1) -esym(40, LED_2) -esym(40, LED_3) -esym(40, LED_4) */

void uart_event_handle(app_uart_evt_t * p_event)
{
    static uint8_t data_array[NUM_BYTE_HOST_CMD];
    static uint8_t index = 0;
    uint32_t       err_code;

    switch (p_event-&amp;gt;evt_type)
    {
        case APP_UART_DATA_READY:
            UNUSED_VARIABLE(app_uart_get(&amp;amp;data_array[index]));
            index++;

            if ( (index == NUM_BYTE_HOST_CMD) )
            {
                if (index &amp;gt; 1)
                {
                    // NRF_LOG_DEBUG(&amp;quot;Ready to send data over BLE NUS&amp;quot;);
                    // NRF_LOG_HEXDUMP_DEBUG(data_array, index);

                }

                index = 0;
            }
            break;

        case APP_UART_COMMUNICATION_ERROR:
            APP_ERROR_HANDLER(p_event-&amp;gt;data.error_communication);
            break;

        case APP_UART_FIFO_ERROR:
            APP_ERROR_HANDLER(p_event-&amp;gt;data.error_code);
            break;

        default:
            break;
    }
}


void nrf_esb_event_handler(nrf_esb_evt_t const * p_event)
{
    uint32_t err_code;

    switch (p_event-&amp;gt;evt_id)
    {
        case NRF_ESB_EVENT_TX_SUCCESS:
            // NRF_LOG_DEBUG(&amp;quot;TX SUCCESS EVENT&amp;quot;);
            break;
        case NRF_ESB_EVENT_TX_FAILED:
            // NRF_LOG_DEBUG(&amp;quot;TX FAILED EVENT&amp;quot;);
            break;
        case NRF_ESB_EVENT_RX_RECEIVED:
            // NRF_LOG_DEBUG(&amp;quot;RX RECEIVED EVENT&amp;quot;);
            if (nrf_esb_read_rx_payload(&amp;amp;rx_payload) == NRF_SUCCESS)
            {
                nrf_gpio_pin_write(LED_1, 0);
                NRF_LOG_DEBUG(&amp;quot;RX packet pid: %02x&amp;quot;, rx_payload.data[0]);
                // NRF_LOG_HEXDUMP_DEBUG(rx_payload.data, NUM_BYTE_SLAV_PKT_DATA);
                nrf_gpio_pin_write(LED_1, 1);

                // static uint8_t PID_O, PID_N;  // PID_O: old PID; PID_N: new PID
                // PID_N = RadioRecvData_A[1];
                // if ((PID_N == PID_O+1)||((PID_N == 0) &amp;amp;&amp;amp;(PID_O == 0xFF))){
                //   PID_O = PID_N;
                // }
                // else{
                //   PID_O = PID_N;
                // }

                for (uint32_t i=0; i&amp;lt;rx_payload.length; i++)
                {
                    do
                    {
                        err_code = app_uart_put(rx_payload.data[i]);
                        if ((err_code != NRF_SUCCESS) &amp;amp;&amp;amp; (err_code != NRF_ERROR_BUSY))
                        {
                            NRF_LOG_ERROR(&amp;quot;Failed receiving NUS message. Error 0x%x. &amp;quot;, err_code);
                            APP_ERROR_CHECK(err_code);
                        }
                    } while (err_code == NRF_ERROR_BUSY);
                }
            }
            break;
    }
}


static void log_init(void)
{
    ret_code_t err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    NRF_LOG_DEFAULT_BACKENDS_INIT();
}


void clocks_start( void )
{
    NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED = 0;
    NRF_CLOCK-&amp;gt;TASKS_HFCLKSTART = 1;

    while (NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED == 0);
}


void gpio_init( void )
{
    bsp_board_init(BSP_INIT_LEDS);
}


uint32_t esb_init( void )
{
    uint32_t err_code;
    uint8_t base_addr_0[4] = {0xE7, 0xE7, 0xE7, 0xE7};
    uint8_t base_addr_1[4] = {0xC2, 0xC2, 0xC2, 0xC2};
    uint8_t addr_prefix[8] = {0xE7, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8 };
    nrf_esb_config_t nrf_esb_config         = NRF_ESB_DEFAULT_CONFIG;
    nrf_esb_config.payload_length           = 8;
    nrf_esb_config.protocol                 = NRF_ESB_PROTOCOL_ESB_DPL;
    nrf_esb_config.bitrate                  = NRF_ESB_BITRATE_2MBPS;
    nrf_esb_config.mode                     = NRF_ESB_MODE_PRX;
    nrf_esb_config.event_handler            = nrf_esb_event_handler;
    nrf_esb_config.selective_auto_ack       = false;

    err_code = nrf_esb_init(&amp;amp;nrf_esb_config);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_base_address_0(base_addr_0);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_base_address_1(base_addr_1);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_prefixes(addr_prefix, 8);
    VERIFY_SUCCESS(err_code);

    return err_code;
}


static void uart_init(void)
{
    uint32_t                     err_code;
    app_uart_comm_params_t const comm_params =
    {
        .rx_pin_no    = RX_PIN_NUMBER,
        .tx_pin_no    = TX_PIN_NUMBER,
        .rts_pin_no   = RTS_PIN_NUMBER,
        .cts_pin_no   = CTS_PIN_NUMBER,
        .flow_control = APP_UART_FLOW_CONTROL_DISABLED,
        .use_parity   = false,
#if defined (UART_PRESENT)
        .baud_rate    = NRF_UART_BAUDRATE_115200
#else
        .baud_rate    = NRF_UARTE_BAUDRATE_115200
#endif
    };

    APP_UART_FIFO_INIT(&amp;amp;comm_params,
                       UART_RX_BUF_SIZE,
                       UART_TX_BUF_SIZE,
                       uart_event_handle,
                       APP_IRQ_PRIORITY_LOWEST,
                       err_code);
    APP_ERROR_CHECK(err_code);
}


int main(void)
{
    uint32_t err_code;

    uart_init();
    log_init();
    gpio_init();
    clocks_start();

    err_code = esb_init();
    APP_ERROR_CHECK(err_code);

    NRF_LOG_INFO(&amp;quot;ANC raw data receiver started.&amp;quot;);

    err_code = nrf_esb_start_rx();
    APP_ERROR_CHECK(err_code);

    while (true)
    {
        if (NRF_LOG_PROCESS() == false)
        {
            __WFE();
        }
    }
}
/*lint -restore */&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;2. Currently both in my TX &amp;amp; RX applications the NRF_ESB_MAX_PAYLOAD_LENGTH is set to 32 as seen in their nrf_esb.h. If I&amp;rsquo;d like to use the maximum 252-byte payload, do I just need to redefine NRF_ESB_MAX_PAYLOAD_LENGTH as 252 in both my TX &amp;amp; RX applications?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you again for your helps.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Johnson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/516334?ContentTypeID=1</link><pubDate>Fri, 27 Dec 2024 12:34:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2e543c67-5953-4730-b14c-f6de0070f001</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Johnson,&amp;nbsp;&lt;br /&gt;When you call&amp;nbsp;nrf_esb_write_payload() you need to check for the return value. There are many error codes it may return:&amp;nbsp;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;
/**@brief Function for writing a payload for transmission or acknowledgement.
 *
 * This function writes a payload that is added to the queue. When the module is in PTX mode, the
 * payload is queued for a regular transmission. When the module is in PRX mode, the payload
 * is queued for when a packet is received that requires an acknowledgement with payload.
 *
 * @param[in]   p_payload     Pointer to the structure that contains information and state of the payload.
 *
 * @retval  NRF_SUCCESS                     If the payload was successfully queued for writing.
 * @retval  NRF_ERROR_NULL                  If the required parameter was NULL.
 * @retval  NRF_INVALID_STATE               If the module is not initialized.
 * @retval  NRF_ERROR_NO_MEM                If the TX FIFO is full.
 * @retval  NRF_ERROR_INVALID_LENGTH        If the payload length was invalid (zero or larger than the allowed maximum).
 */
uint32_t nrf_esb_write_payload(nrf_esb_payload_t const * p_payload);&lt;/pre&gt;There is a chance that the TX FIFO is full, you need to wait for the packets to be sent to continue.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Regarding breakpoint in PRX, after you hit the breakpoint, you can&amp;#39;t really continue because the timing is wrong or the PTX no longer send the message. You may want to do debugging using UART / RTT log.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/516273?ContentTypeID=1</link><pubDate>Thu, 26 Dec 2024 15:29:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:45057b59-5f31-424e-aa12-3547fedc969f</guid><dc:creator>Johnson (Jui-Wei) Tsai</dc:creator><description>&lt;p&gt;&lt;span&gt;Dear Hung Bui,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for your replying. Now I can monitor the variable slav_tx_payload.data on the watch list.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have three more questions.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. I also made an RX app for my TX with its source code as below, which includes app_uart to output the received packets to the host PC (modified from esb_prx example in nRF5 SDK 16.0). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**
 * Copyright (c) 2014 - 2019, Nordic Semiconductor ASA
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this
 *    list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form, except as embedded into a Nordic
 *    Semiconductor ASA integrated circuit in a product or a software update for
 *    such product, must reproduce the above copyright notice, this list of
 *    conditions and the following disclaimer in the documentation and/or other
 *    materials provided with the distribution.
 *
 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
 *    contributors may be used to endorse or promote products derived from this
 *    software without specific prior written permission.
 *
 * 4. This software, with or without modification, must only be used with a
 *    Nordic Semiconductor ASA integrated circuit.
 *
 * 5. Any software provided in binary form under this license must not be reverse
 *    engineered, decompiled, modified and/or disassembled.
 *
 * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA &amp;quot;AS IS&amp;quot; AND ANY EXPRESS
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

#include &amp;lt;stdbool.h&amp;gt;
#include &amp;lt;stdint.h&amp;gt;
#include &amp;quot;sdk_common.h&amp;quot;
#include &amp;quot;nrf.h&amp;quot;
#include &amp;quot;nrf_esb_error_codes.h&amp;quot;
#include &amp;quot;nrf_delay.h&amp;quot;
#include &amp;quot;nrf_esb.h&amp;quot;
#include &amp;quot;nrf_gpio.h&amp;quot;
#include &amp;quot;nrf_error.h&amp;quot;
#include &amp;quot;boards.h&amp;quot;

#include &amp;quot;app_uart.h&amp;quot;
#if defined (UART_PRESENT)
#include &amp;quot;nrf_uart.h&amp;quot;
#endif
#if defined (UARTE_PRESENT)
#include &amp;quot;nrf_uarte.h&amp;quot;
#endif

#include &amp;quot;nrf_log.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_log_default_backends.h&amp;quot;

//// Parameters
#define UART_TX_BUF_SIZE                256                                         /**&amp;lt; UART TX buffer size. */
#define UART_RX_BUF_SIZE                256                                         /**&amp;lt; UART RX buffer size. */
#define NUM_BYTE_SLAV_PKT_DATA           20
#define NUM_BYTE_HOST_CMD                20


//// Global Variables

//// Instance declarations
static nrf_esb_payload_t        tx_payload;
static nrf_esb_payload_t        rx_payload;

/*lint -save -esym(40, BUTTON_1) -esym(40, BUTTON_2) -esym(40, BUTTON_3) -esym(40, BUTTON_4) -esym(40, LED_1) -esym(40, LED_2) -esym(40, LED_3) -esym(40, LED_4) */

void uart_event_handle(app_uart_evt_t * p_event)
{
    static uint8_t data_array[NUM_BYTE_HOST_CMD];
    static uint8_t index = 0;
    uint32_t       err_code;

    switch (p_event-&amp;gt;evt_type)
    {
        case APP_UART_DATA_READY:
            UNUSED_VARIABLE(app_uart_get(&amp;amp;data_array[index]));
            index++;

            if ( (index == NUM_BYTE_HOST_CMD) )
            {
                if (index &amp;gt; 1)
                {
                    // NRF_LOG_DEBUG(&amp;quot;Ready to send data over BLE NUS&amp;quot;);
                    // NRF_LOG_HEXDUMP_DEBUG(data_array, index);

                }

                index = 0;
            }
            break;

        case APP_UART_COMMUNICATION_ERROR:
            APP_ERROR_HANDLER(p_event-&amp;gt;data.error_communication);
            break;

        case APP_UART_FIFO_ERROR:
            APP_ERROR_HANDLER(p_event-&amp;gt;data.error_code);
            break;

        default:
            break;
    }
}


void nrf_esb_event_handler(nrf_esb_evt_t const * p_event)
{
    uint32_t err_code;

    switch (p_event-&amp;gt;evt_id)
    {
        case NRF_ESB_EVENT_TX_SUCCESS:
            // NRF_LOG_DEBUG(&amp;quot;TX SUCCESS EVENT&amp;quot;);
            break;
        case NRF_ESB_EVENT_TX_FAILED:
            // NRF_LOG_DEBUG(&amp;quot;TX FAILED EVENT&amp;quot;);
            break;
        case NRF_ESB_EVENT_RX_RECEIVED:
            // NRF_LOG_DEBUG(&amp;quot;RX RECEIVED EVENT&amp;quot;);
            if (nrf_esb_read_rx_payload(&amp;amp;rx_payload) == NRF_SUCCESS)
            {
                nrf_gpio_pin_write(LED_1, 0);
                NRF_LOG_DEBUG(&amp;quot;RX packet pid: %02x&amp;quot;, rx_payload.data[0]);
                // NRF_LOG_HEXDUMP_DEBUG(rx_payload.data, NUM_BYTE_SLAV_PKT_DATA);
                nrf_gpio_pin_write(LED_1, 1);

                // static uint8_t PID_O, PID_N;  // PID_O: old PID; PID_N: new PID
                // PID_N = RadioRecvData_A[1];
                // if ((PID_N == PID_O+1)||((PID_N == 0) &amp;amp;&amp;amp;(PID_O == 0xFF))){
                //   PID_O = PID_N;
                // }
                // else{
                //   PID_O = PID_N;
                // }

                for (uint32_t i=0; i&amp;lt;rx_payload.length; i++)
                {
                    do
                    {
                        err_code = app_uart_put(rx_payload.data[i]);
                        if ((err_code != NRF_SUCCESS) &amp;amp;&amp;amp; (err_code != NRF_ERROR_BUSY))
                        {
                            NRF_LOG_ERROR(&amp;quot;Failed receiving NUS message. Error 0x%x. &amp;quot;, err_code);
                            APP_ERROR_CHECK(err_code);
                        }
                    } while (err_code == NRF_ERROR_BUSY);
                }
            }
            break;
    }
}


static void log_init(void)
{
    ret_code_t err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    NRF_LOG_DEFAULT_BACKENDS_INIT();
}


void clocks_start( void )
{
    NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED = 0;
    NRF_CLOCK-&amp;gt;TASKS_HFCLKSTART = 1;

    while (NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED == 0);
}


void gpio_init( void )
{
    bsp_board_init(BSP_INIT_LEDS);
}


uint32_t esb_init( void )
{
    uint32_t err_code;
    uint8_t base_addr_0[4] = {0xE7, 0xE7, 0xE7, 0xE7};
    uint8_t base_addr_1[4] = {0xC2, 0xC2, 0xC2, 0xC2};
    uint8_t addr_prefix[8] = {0xE7, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8 };
    nrf_esb_config_t nrf_esb_config         = NRF_ESB_DEFAULT_CONFIG;
    nrf_esb_config.payload_length           = 8;
    nrf_esb_config.protocol                 = NRF_ESB_PROTOCOL_ESB_DPL;
    nrf_esb_config.bitrate                  = NRF_ESB_BITRATE_2MBPS;
    nrf_esb_config.mode                     = NRF_ESB_MODE_PRX;
    nrf_esb_config.event_handler            = nrf_esb_event_handler;
    nrf_esb_config.selective_auto_ack       = false;

    err_code = nrf_esb_init(&amp;amp;nrf_esb_config);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_base_address_0(base_addr_0);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_base_address_1(base_addr_1);
    VERIFY_SUCCESS(err_code);

    err_code = nrf_esb_set_prefixes(addr_prefix, 8);
    VERIFY_SUCCESS(err_code);

    return err_code;
}


static void uart_init(void)
{
    uint32_t                     err_code;
    app_uart_comm_params_t const comm_params =
    {
        .rx_pin_no    = RX_PIN_NUMBER,
        .tx_pin_no    = TX_PIN_NUMBER,
        .rts_pin_no   = RTS_PIN_NUMBER,
        .cts_pin_no   = CTS_PIN_NUMBER,
        .flow_control = APP_UART_FLOW_CONTROL_DISABLED,
        .use_parity   = false,
#if defined (UART_PRESENT)
        .baud_rate    = NRF_UART_BAUDRATE_115200
#else
        .baud_rate    = NRF_UARTE_BAUDRATE_115200
#endif
    };

    APP_UART_FIFO_INIT(&amp;amp;comm_params,
                       UART_RX_BUF_SIZE,
                       UART_TX_BUF_SIZE,
                       uart_event_handle,
                       APP_IRQ_PRIORITY_LOWEST,
                       err_code);
    APP_ERROR_CHECK(err_code);
}


int main(void)
{
    uint32_t err_code;

    uart_init();
    log_init();
    gpio_init();
    clocks_start();

    err_code = esb_init();
    APP_ERROR_CHECK(err_code);

    NRF_LOG_INFO(&amp;quot;ANC raw data receiver started.&amp;quot;);

    err_code = nrf_esb_start_rx();
    APP_ERROR_CHECK(err_code);

    while (true)
    {
        if (NRF_LOG_PROCESS() == false)
        {
            __WFE();
        }
    }
}
/*lint -restore */
&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When NUM_TX_PKT in my TX app is set to 10, it works normally (i.e., 10 packets, each containing 22 bytes, are sent to RX after pressing Button 1 on nRF52 DK).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1735226763929v1.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;However, when I set NUM_TX_PKT in my TX app to 20 (the goal is NUM_TX_PKT = 5000), the TX &amp;amp; RX apps fail to work as expected (i.e., it&amp;rsquo;s supposed to send 20 packets containing 22 bytes each but failed). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1735226783189v2.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do you have idea of the possible cause?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span&gt;I insert the following breakpoints in my TX &amp;amp; RX app as seen below (i.e., TX app stop before nrf_esb_write_payload &amp;amp; RX app stop before app_uart_put). But RX app only stop once after receiving the 1&lt;sup&gt;st&lt;/sup&gt; packet from TX app and then it no longer stops before app_uart_put. In several cases, TX app also fails to stop before nrf_esb_write_payload. Do you have any idea on why this happens?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1735226845467v4.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1735226856722v5.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;I already set NRF_LOG_ENABLED to 1 and NRF_LOG_DEFAULT_LEVEL to 3 as seen in my sdk_config.h.&amp;nbsp;Why NRF_LOG in my RX app no longer appears in the debugging window?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;
// &amp;lt;e&amp;gt; NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
//==========================================================
#ifndef NRFX_UARTE_ENABLED
#define NRFX_UARTE_ENABLED 1
#endif
// &amp;lt;o&amp;gt; NRFX_UARTE0_ENABLED - Enable UARTE0 instance 
#ifndef NRFX_UARTE0_ENABLED
#define NRFX_UARTE0_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
#define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
#define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;8388608=&amp;gt; 31250 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15007744=&amp;gt; 56000 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
#define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
#define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;e&amp;gt; NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
//==========================================================
#ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
#define NRFX_UARTE_CONFIG_LOG_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_LOG_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
#define NRFX_UARTE_CONFIG_LOG_LEVEL 3
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_INFO_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UARTE_CONFIG_INFO_COLOR
#define NRFX_UARTE_CONFIG_INFO_COLOR 0
#endif

// &amp;lt;o&amp;gt; NRFX_UARTE_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
#define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
//==========================================================
#ifndef NRFX_UART_ENABLED
#define NRFX_UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; NRFX_UART0_ENABLED - Enable UART0 instance 
#ifndef NRFX_UART0_ENABLED
#define NRFX_UART0_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
#define NRFX_UART_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
#define NRFX_UART_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3866624=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7729152=&amp;gt; 28800 baud 
// &amp;lt;8388608=&amp;gt; 31250 baud 
// &amp;lt;10309632=&amp;gt; 38400 baud 
// &amp;lt;15007744=&amp;gt; 56000 baud 
// &amp;lt;15462400=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30924800=&amp;gt; 115200 baud 
// &amp;lt;61845504=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;123695104=&amp;gt; 460800 baud 
// &amp;lt;247386112=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
#define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
#endif

// &amp;lt;o&amp;gt; NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
#define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;e&amp;gt; NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
//==========================================================
#ifndef NRFX_UART_CONFIG_LOG_ENABLED
#define NRFX_UART_CONFIG_LOG_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_LOG_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRFX_UART_CONFIG_LOG_LEVEL
#define NRFX_UART_CONFIG_LOG_LEVEL 3
#endif

// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_INFO_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UART_CONFIG_INFO_COLOR
#define NRFX_UART_CONFIG_INFO_COLOR 0
#endif

// &amp;lt;o&amp;gt; NRFX_UART_CONFIG_DEBUG_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRFX_UART_CONFIG_DEBUG_COLOR
#define NRFX_UART_CONFIG_DEBUG_COLOR 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
//==========================================================
#ifndef UART_ENABLED
#define UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_HWFC  - Hardware Flow Control
 
// &amp;lt;0=&amp;gt; Disabled 
// &amp;lt;1=&amp;gt; Enabled 

#ifndef UART_DEFAULT_CONFIG_HWFC
#define UART_DEFAULT_CONFIG_HWFC 0
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_PARITY  - Parity
 
// &amp;lt;0=&amp;gt; Excluded 
// &amp;lt;14=&amp;gt; Included 

#ifndef UART_DEFAULT_CONFIG_PARITY
#define UART_DEFAULT_CONFIG_PARITY 0
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef UART_DEFAULT_CONFIG_BAUDRATE
#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; UART_DEFAULT_CONFIG_IRQ_PRIORITY  - Interrupt priority
 

// &amp;lt;i&amp;gt; Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
// &amp;lt;0=&amp;gt; 0 (highest) 
// &amp;lt;1=&amp;gt; 1 
// &amp;lt;2=&amp;gt; 2 
// &amp;lt;3=&amp;gt; 3 
// &amp;lt;4=&amp;gt; 4 
// &amp;lt;5=&amp;gt; 5 
// &amp;lt;6=&amp;gt; 6 
// &amp;lt;7=&amp;gt; 7 

#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
#endif

// &amp;lt;q&amp;gt; UART_EASY_DMA_SUPPORT  - Driver supporting EasyDMA
 

#ifndef UART_EASY_DMA_SUPPORT
#define UART_EASY_DMA_SUPPORT 1
#endif

// &amp;lt;q&amp;gt; UART_LEGACY_SUPPORT  - Driver supporting Legacy mode
 

#ifndef UART_LEGACY_SUPPORT
#define UART_LEGACY_SUPPORT 1
#endif

// &amp;lt;e&amp;gt; UART0_ENABLED - Enable UART0 instance
//==========================================================
#ifndef UART0_ENABLED
#define UART0_ENABLED 1
#endif
// &amp;lt;q&amp;gt; UART0_CONFIG_USE_EASY_DMA  - Default setting for using EasyDMA
 

#ifndef UART0_CONFIG_USE_EASY_DMA
#define UART0_CONFIG_USE_EASY_DMA 1
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;/e&amp;gt;

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;h&amp;gt; nRF_Libraries 

//==========================================================
// &amp;lt;q&amp;gt; APP_FIFO_ENABLED  - app_fifo - Software FIFO implementation
 

#ifndef APP_FIFO_ENABLED
#define APP_FIFO_ENABLED 1
#endif

// &amp;lt;e&amp;gt; APP_UART_ENABLED - app_uart - UART driver
//==========================================================
#ifndef APP_UART_ENABLED
#define APP_UART_ENABLED 1
#endif
// &amp;lt;o&amp;gt; APP_UART_DRIVER_INSTANCE  - UART instance used
 
// &amp;lt;0=&amp;gt; 0 

#ifndef APP_UART_DRIVER_INSTANCE
#define APP_UART_DRIVER_INSTANCE 0
#endif

// &amp;lt;/e&amp;gt;





// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;h&amp;gt; nRF_Log 

//==========================================================
// &amp;lt;e&amp;gt; NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
//==========================================================
#ifndef NRF_LOG_BACKEND_RTT_ENABLED
#define NRF_LOG_BACKEND_RTT_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
// &amp;lt;i&amp;gt; Size of the buffer is a trade-off between RAM usage and processing.
// &amp;lt;i&amp;gt; if buffer is smaller then strings will often be fragmented.
// &amp;lt;i&amp;gt; It is recommended to use size which will fit typical log and only the
// &amp;lt;i&amp;gt; longer one will be fragmented.

#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT 
#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. 
// &amp;lt;i&amp;gt; If RTT fails to accept any new data after retries
// &amp;lt;i&amp;gt; module assumes that host is not active and on next
// &amp;lt;i&amp;gt; request it will perform only one write attempt.
// &amp;lt;i&amp;gt; On successful writing, module assumes that host is active
// &amp;lt;i&amp;gt; and scheme with retry is applied again.

#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
//==========================================================
#ifndef NRF_LOG_BACKEND_UART_ENABLED
#define NRF_LOG_BACKEND_UART_ENABLED 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin 
#ifndef NRF_LOG_BACKEND_UART_TX_PIN
#define NRF_LOG_BACKEND_UART_TX_PIN 6
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_BAUDRATE  - Default Baudrate
 
// &amp;lt;323584=&amp;gt; 1200 baud 
// &amp;lt;643072=&amp;gt; 2400 baud 
// &amp;lt;1290240=&amp;gt; 4800 baud 
// &amp;lt;2576384=&amp;gt; 9600 baud 
// &amp;lt;3862528=&amp;gt; 14400 baud 
// &amp;lt;5152768=&amp;gt; 19200 baud 
// &amp;lt;7716864=&amp;gt; 28800 baud 
// &amp;lt;10289152=&amp;gt; 38400 baud 
// &amp;lt;15400960=&amp;gt; 57600 baud 
// &amp;lt;20615168=&amp;gt; 76800 baud 
// &amp;lt;30801920=&amp;gt; 115200 baud 
// &amp;lt;61865984=&amp;gt; 230400 baud 
// &amp;lt;67108864=&amp;gt; 250000 baud 
// &amp;lt;121634816=&amp;gt; 460800 baud 
// &amp;lt;251658240=&amp;gt; 921600 baud 
// &amp;lt;268435456=&amp;gt; 1000000 baud 

#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. 
// &amp;lt;i&amp;gt; Size of the buffer is a trade-off between RAM usage and processing.
// &amp;lt;i&amp;gt; if buffer is smaller then strings will often be fragmented.
// &amp;lt;i&amp;gt; It is recommended to use size which will fit typical log and only the
// &amp;lt;i&amp;gt; longer one will be fragmented.

#ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
#define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 64
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_ENABLED - nrf_log - Logger
//==========================================================
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1
#endif
// &amp;lt;h&amp;gt; Log message pool - Configuration of log message pool

//==========================================================
// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
// &amp;lt;i&amp;gt; If a small value is set, then performance of logs processing
// &amp;lt;i&amp;gt; is degraded because data is fragmented. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory utilization. The size is set to fit a message with
// &amp;lt;i&amp;gt; a timestamp and up to 2 arguments in a single memory object.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
#endif

// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
// &amp;lt;i&amp;gt; If a small value is set, then it may lead to a deadlock
// &amp;lt;i&amp;gt; in certain cases if backend has high latency and holds
// &amp;lt;i&amp;gt; multiple messages for long time. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory usage.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
#endif

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;q&amp;gt; NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
 

// &amp;lt;i&amp;gt; If set then oldest logs are overwritten. Otherwise a 
// &amp;lt;i&amp;gt; marker is injected informing about overflow.

#ifndef NRF_LOG_ALLOW_OVERFLOW
#define NRF_LOG_ALLOW_OVERFLOW 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
 

// &amp;lt;i&amp;gt; Must be power of 2 and multiple of 4.
// &amp;lt;i&amp;gt; If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 
// &amp;lt;2048=&amp;gt; 2048 
// &amp;lt;4096=&amp;gt; 4096 
// &amp;lt;8192=&amp;gt; 8192 
// &amp;lt;16384=&amp;gt; 16384 

#ifndef NRF_LOG_BUFSIZE
#define NRF_LOG_BUFSIZE 1024
#endif

// &amp;lt;q&amp;gt; NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
 

#ifndef NRF_LOG_CLI_CMDS
#define NRF_LOG_CLI_CMDS 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_DEFAULT_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRF_LOG_DEFAULT_LEVEL
#define NRF_LOG_DEFAULT_LEVEL 3
#endif

// &amp;lt;q&amp;gt; NRF_LOG_DEFERRED  - Enable deffered logger.
 

// &amp;lt;i&amp;gt; Log data is buffered and can be processed in idle.

#ifndef NRF_LOG_DEFERRED
#define NRF_LOG_DEFERRED 0
#endif

// &amp;lt;q&amp;gt; NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
 

#ifndef NRF_LOG_FILTERS_ENABLED
#define NRF_LOG_FILTERS_ENABLED 0
#endif

// &amp;lt;q&amp;gt; NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED  - Enable use of critical region for non deffered mode when flushing logs.
 

// &amp;lt;i&amp;gt; When enabled NRF_LOG_FLUSH is called from critical section when non deffered mode is used.
// &amp;lt;i&amp;gt; Log output will never be corrupted as access to the log backend is exclusive
// &amp;lt;i&amp;gt; but system will spend significant amount of time in critical section

#ifndef NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED
#define NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;e&amp;gt; NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
//==========================================================
#ifndef NRF_LOG_USES_COLORS
#define NRF_LOG_USES_COLORS 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_COLOR_DEFAULT  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_COLOR_DEFAULT
#define NRF_LOG_COLOR_DEFAULT 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_ERROR_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_ERROR_COLOR
#define NRF_LOG_ERROR_COLOR 2
#endif

// &amp;lt;o&amp;gt; NRF_LOG_WARNING_COLOR  - ANSI escape code prefix.
 
// &amp;lt;0=&amp;gt; Default 
// &amp;lt;1=&amp;gt; Black 
// &amp;lt;2=&amp;gt; Red 
// &amp;lt;3=&amp;gt; Green 
// &amp;lt;4=&amp;gt; Yellow 
// &amp;lt;5=&amp;gt; Blue 
// &amp;lt;6=&amp;gt; Magenta 
// &amp;lt;7=&amp;gt; Cyan 
// &amp;lt;8=&amp;gt; White 

#ifndef NRF_LOG_WARNING_COLOR
#define NRF_LOG_WARNING_COLOR 4
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;e&amp;gt; NRF_LOG_USES_TIMESTAMP - Enable timestamping

// &amp;lt;i&amp;gt; Function for getting the timestamp is provided by the user
//==========================================================
#ifndef NRF_LOG_USES_TIMESTAMP
#define NRF_LOG_USES_TIMESTAMP 0
#endif
// &amp;lt;o&amp;gt; NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. 
#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
#endif

// &amp;lt;/e&amp;gt;

// &amp;lt;h&amp;gt; nrf_log module configuration &lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you again for your helps.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Johnson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/516153?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2024 14:56:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ef50fc4-3c0b-4bb9-a1e5-131d6fd21156</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Johnson,&amp;nbsp;&lt;br /&gt;Could you just right click on the&amp;nbsp;&lt;span&gt;slav_tx_payload.data and select at to watch ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/516149?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2024 14:24:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b7841d3-3511-4a91-ad2f-b2b3548f467e</guid><dc:creator>Johnson (Jui-Wei) Tsai</dc:creator><description>&lt;p&gt;Dear Hung Bui,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your replying. Yes now I can add the breakpoint inside the loop and the loop operation works normally now (after setting the [Optimization Level] to &amp;quot;None&amp;quot; as you suggested).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have one more question: I&amp;#39;d like to monitor the element values of&amp;nbsp;slav_tx_payload.data, but why doesn&amp;#39;t it&amp;nbsp;show up in both&amp;nbsp;&amp;nbsp; [Globals] and [Locals] windows?&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1734963778731v1.png" alt=" " /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you again for your help.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Johnson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to insert breakpoint in timer interrupt handler</title><link>https://devzone.nordicsemi.com/thread/516096?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2024 11:15:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f198f67a-5127-4435-8426-0abde361a854</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Johnson,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I suspect that the code has been optimized and that why you can&amp;#39;t add breakpoint.&amp;nbsp;&lt;br /&gt;You would need to configure the code with no optimization to be able to debug:&amp;nbsp;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/zzsd.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Can you add the breakpoint inside the loop ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>