I am developing a Bluetooth application using an MGM12P module. I would like to use the RFSENSE feature to wake up from deepsleep. From what I gather I need to use the RAIL API to achieve this and this means making a multiprotocol application. Almost everything I have read seems to indicate that I need to use the Micrium OS for a multiprotocol application, is that true? In ug305 the diagram seems to show that it is not really necessary to use an OS, the scheduling is done internally in RAIL:
I would rather not have to add an OS to my application.
Is it possible to use RFSENSE without adding an OS to the application?
Yes, it's true that multiprotocol doesn't actually use any RTOS features so you can probably make it work. However, the only configuration that Silicon Labs offers support on is with the RTOS. The knowledgebase article we have here https://www.silabs.com/community/wireless/bluetooth/knowledge-base.entry.html/2018/11/09/waking_from_deepsle-DWsS discusses how to get started. At a minimum you need the multiprotocol RAIL library. I recommend you use this article as the starting point.
The article mentioned about waking form deepsleep was where I started, thanks. I got that example working on a dev kit and now I need to build that functionality into my application.
It seems I should be able to do what I want but I am having difficulty with getting it to work. I have changed the library to the librail_multiprotocol_efr32xg12_gcc_release.a and called
rail_handle = RAIL_Init(&rail_config, NULL);
but I get no Bluetooth advertising. The "gecko_evt_system_boot_id" is generated but advertising does not start.
I will take a closer look at rtos_bluetooth to see if that gives any clues as to something I might be missing.