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

SDK8.1 and SDK 9.0 app_gpiote and nrf_drv_gpiote conflict

In SDK8.1 and SDK9.0 we have new driver nrf_drv_gpiote which has GPIOTE interrfupt handler in conflict with app_gpiote library. How to fix this

Parents
  • I have tried to merge the conflicted GPIOTE_IRQHandler and tested few use cases, they seems to work. Make sure that you do not use same pin in both app_gpiote library and nrf_drv_gpiote driver.

    1. delete the GPIOTE_IRQHandler in app_gpiote.c file
    2. replace the below code with GPIOTE_IRQHandler handler in nrf_drv_gpiote.c file
    3. in app_gpiote.c file remote static keyword for m_enabled_users_mask, m_user_array_size,m_user_count, mp_users, sense_level_toggle and sense_level_disable

    SDK_8.1

    merge_gpiote_handler .c

    SDK_9.0

    sdk_9.0.merge_gpiote_handler.c

    Diff for fix in SDK 9.0 from @pkarc: www.diffchecker.com/nub7badx

    Once again, make sure that there are no pin conflicts between library and driver and this should work just fine.

    NOTE: Tested only on Keil

  • @ any Nordic employee: what is the reasoning behind the introduction of a gpiote driver? is it because the app_gpiote was not really fully implementing the whole functionality? why was this introduced so late, as it was part of the chip for a long time now? I just would like to know the philosophy around it, such that I can anticipate on possible changes in the future. For example, should I abandon using the app_gpiote altogether, and start working with the driver instead? Is that the idea, that it will disappear from the SDK, because of it being a somewhat limited implementation of the gpiote functionality?

Reply
  • @ any Nordic employee: what is the reasoning behind the introduction of a gpiote driver? is it because the app_gpiote was not really fully implementing the whole functionality? why was this introduced so late, as it was part of the chip for a long time now? I just would like to know the philosophy around it, such that I can anticipate on possible changes in the future. For example, should I abandon using the app_gpiote altogether, and start working with the driver instead? Is that the idea, that it will disappear from the SDK, because of it being a somewhat limited implementation of the gpiote functionality?

Children
No Data
Related