This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf_libuarte_async_rx_free ?

Dear Member,

I want to call nrf_libuarte_async_rx_free from another file outside main.c

nrf_libuarte_async_rx_free(&libuarte1, (uint8_t *)&GPS.rxTmp, 1);

I got  

..\..\..\GPS-Lib\GPS_lib.c(35): error:  #20: identifier "libuarte1" is undefined

I have included 

#include "nrf_libuarte_async.h"

in GPS_lib.c

and

NRF_LIBUARTE_ASYNC_DEFINE(libuarte1, 1, 2, 2, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3);

in main.c ,

How can I rectify it ?

Thanks

Parents
  • Hi Jorgen,

    Thanks for your reply,

    I select option 1,

    So :

     static const nrf_libuarte_async_t _name = {\
                  .p_rx_pool = &CONCAT_2(_name,_rx_pool),\
                  .p_rx_queue =  &CONCAT_2(_name,_rxdata_queue),\
                  /* If p_rtc is not NULL it means that RTC is used for RX timeout */ \
                  .p_rtc = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED), (&CONCAT_2(_name, _rtc)), (NULL)),\
                  /* If p_timer is not NULL it means that RTC is used for RX timeout */ \
                  .p_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED), (&CONCAT_2(_name, _timer)), (NULL)),\
                  /* If p_time and p_rtc is NULL it means that app_timer is used for RX timeout */ \
                  .p_app_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer)))) \
    	            ),\
                  .p_app_timer_ctrl_blk = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer_ctrl_blk)))) \
    	            ),\
                  .p_libuarte = &CONCAT_2(_name, _libuarte),\
                  .p_ctrl_blk = &CONCAT_2(_name, ctrl_blk),\
                  .rx_buf_size = _rx_buf_size,\
                  _LIBUARTE_ASYNC_EVAL(\
                      NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),\
                      (.rtc_handler =CONCAT_2(_name, _rtc_handler)),\
                      ()\
                  )\
          };\

    change to :

     const nrf_libuarte_async_t _name = {\
                  .p_rx_pool = &CONCAT_2(_name,_rx_pool),\
                  .p_rx_queue =  &CONCAT_2(_name,_rxdata_queue),\
                  /* If p_rtc is not NULL it means that RTC is used for RX timeout */ \
                  .p_rtc = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED), (&CONCAT_2(_name, _rtc)), (NULL)),\
                  /* If p_timer is not NULL it means that RTC is used for RX timeout */ \
                  .p_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED), (&CONCAT_2(_name, _timer)), (NULL)),\
                  /* If p_time and p_rtc is NULL it means that app_timer is used for RX timeout */ \
                  .p_app_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer)))) \
    	            ),\
                  .p_app_timer_ctrl_blk = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer_ctrl_blk)))) \
    	            ),\
                  .p_libuarte = &CONCAT_2(_name, _libuarte),\
                  .p_ctrl_blk = &CONCAT_2(_name, ctrl_blk),\
                  .rx_buf_size = _rx_buf_size,\
                  _LIBUARTE_ASYNC_EVAL(\
                      NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),\
                      (.rtc_handler =CONCAT_2(_name, _rtc_handler)),\
                      ()\
                  )\
          };\

    Then

    extern const nrf_libuarte_async_t libuarte1;

    Guide me, please ? thanks

Reply
  • Hi Jorgen,

    Thanks for your reply,

    I select option 1,

    So :

     static const nrf_libuarte_async_t _name = {\
                  .p_rx_pool = &CONCAT_2(_name,_rx_pool),\
                  .p_rx_queue =  &CONCAT_2(_name,_rxdata_queue),\
                  /* If p_rtc is not NULL it means that RTC is used for RX timeout */ \
                  .p_rtc = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED), (&CONCAT_2(_name, _rtc)), (NULL)),\
                  /* If p_timer is not NULL it means that RTC is used for RX timeout */ \
                  .p_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED), (&CONCAT_2(_name, _timer)), (NULL)),\
                  /* If p_time and p_rtc is NULL it means that app_timer is used for RX timeout */ \
                  .p_app_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer)))) \
    	            ),\
                  .p_app_timer_ctrl_blk = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer_ctrl_blk)))) \
    	            ),\
                  .p_libuarte = &CONCAT_2(_name, _libuarte),\
                  .p_ctrl_blk = &CONCAT_2(_name, ctrl_blk),\
                  .rx_buf_size = _rx_buf_size,\
                  _LIBUARTE_ASYNC_EVAL(\
                      NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),\
                      (.rtc_handler =CONCAT_2(_name, _rtc_handler)),\
                      ()\
                  )\
          };\

    change to :

     const nrf_libuarte_async_t _name = {\
                  .p_rx_pool = &CONCAT_2(_name,_rx_pool),\
                  .p_rx_queue =  &CONCAT_2(_name,_rxdata_queue),\
                  /* If p_rtc is not NULL it means that RTC is used for RX timeout */ \
                  .p_rtc = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED), (&CONCAT_2(_name, _rtc)), (NULL)),\
                  /* If p_timer is not NULL it means that RTC is used for RX timeout */ \
                  .p_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED), (&CONCAT_2(_name, _timer)), (NULL)),\
                  /* If p_time and p_rtc is NULL it means that app_timer is used for RX timeout */ \
                  .p_app_timer = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer)))) \
    	            ),\
                  .p_app_timer_ctrl_blk = _LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_TIMER, _timer1_idx, _ENABLED),\
    	                    (NULL),\
    	                    (_LIBUARTE_ASYNC_EVAL(NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),(NULL), \
    	                         (&CONCAT_2(_name,_app_timer_ctrl_blk)))) \
    	            ),\
                  .p_libuarte = &CONCAT_2(_name, _libuarte),\
                  .p_ctrl_blk = &CONCAT_2(_name, ctrl_blk),\
                  .rx_buf_size = _rx_buf_size,\
                  _LIBUARTE_ASYNC_EVAL(\
                      NRFX_CONCAT_3(NRFX_RTC, _rtc1_idx, _ENABLED),\
                      (.rtc_handler =CONCAT_2(_name, _rtc_handler)),\
                      ()\
                  )\
          };\

    Then

    extern const nrf_libuarte_async_t libuarte1;

    Guide me, please ? thanks

Children
No Data
Related