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

How can I use "Esb" and "App timer" at the same time?

Hi,

I an try to use "Esb function" and "App timer function (app_timer_create() and app_timer_start()" in the same project, but there have one following link error message.

.\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol SWI0_EGU0_IRQHandler multiply defined (by nrf_esb.o and app_timer.o).

How can I solve this problem.

Thank you,

Chianglin

  • Hi Torbjørn,

    Would you please give me a sample which can use ESB and "App_Timer" function at the same time?

     

    Thank you,

    Chianglin

  • Hi Ives

    Sorry for the slow response. I started work on an example, but ran into a weird Keil issue that I didn't have time to figure out (the example would only run without optimization enabled). I am preparing for a workshop tomorrow and have little time for Devzone right now. 

    If I can't solve the issue by the end of the day I will send you what I have anyway, and you can have a look at it. Next week I will be back in the office with more time to assist you if there are still issues. 

    Best regards
    Torbjørn

  • Hi Torbjørn,

    Thank you for your assistance. I wish you all the best in the seminar tomorrow.

    Best Regards,

    Chianglin

  • Hi Ives

    Thanks a lot, the seminar went fine ;)

    I have attached the example I made. It's for SDK v15.2, and I tested it on the nRF52DK (nRF52832). 
    esb_template_app_timer.zip

    The ESB PTX example is changed to use an app_timer to schedule packet transmissions, rather than using a delay in the main loop. 
    The PRX example is not changed from the original. 

    I copied the ESB files into a local folder to avoid having to change the SDK files directly. 

    Best regards
    Torbjørn

  • Hi Torbjørn,

    Thank you for your source code.

    When I use your code, I have some problems. Would you please tell me: What steps have I missed?

    Following is my process step by step:

    1. After I copy your code into directory ".\examples\proprietary_rf\NordicCode" and rebuild all.  The compiler will print following error message:

    linking...
    .\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol SWI0_EGU0_IRQHandler multiply defined (by nrf_esb.o and app_timer.o).
    Not enough information to list image symbols.
    Not enough information to list load addresses in the image map.
    Finished: 2 information, 0 warning and 1 error messages.
    ".\_build\nrf52832_xxaa.axf" - 1 Error(s), 0 Warning(s).
       So I reference your suggestion and change the content of nrf_esb.h

    #define ESB_EVT_IRQ QDEC_IRQn //!< The ESB event IRQ number when running on an nRF5 device.
    #define ESB_EVT_IRQHandler QDEC_IRQHandler //!< The handler for @ref ESB_EVT_IRQ when running on an nRF5 device.
       After do this, the code can compiler with no error.

    2. There have use many "NRFX_LOG_INFO()" function to print debug message in main.c.  Does this debug message in print into RTT interface?  Can I print it via UART interface?  How to set it's TX, RX pin and baudrate?

    Thank you,

    Chianglin

Related