Home > On-Demand Archives > Theatre Talks >
Considerations for Abstraction Based Connectivity Solutions
Gokhan Tanyeri - Watch Now - EOC 2023 - Duration: 29:05
Hi Nathan, this is an excellent question! You are absolutely right, if a vendor library is using API calls specific to a single RTOS then there is a problem with porting this code to another RTOS. We definitely see this a lot. Our approach is, as a minimum prepare RTOS wrapper for your code. But then the next stage of abstraction is handling the behaviour difference of each RTOS, your example delay function may be more easily found but some of the complex event or messaging mechanisms, or scheduling may be handled differently by each RTOS. One way is to prepare higher level functionality to be handled by the framework. Of course this means you spend a lot more effort to build such a framework. But if your product line require such an abstraction why not! We are currently providing our framework to handle for Wi-Fi, Bluetooth and Bluetooth Low Energy stack but a number of our customers use our framework for their own application as well. Hope this helps to address your question. Cheers, Gokhan
Thanks for the talk! It seems that abstracting the OS/RTOS might be difficult if a vendor library uses features or function calls that are specific to a single RTOS implementation (such as using
osDelay()
(CMSIS-RTOSv2) orvTaskDelay()
(FreeRTOS) instead of a generic delay function) or if the vendor library writes tasks with infinite loops (requiring the use of a preemptive scheduler). Do you see this problem in practice and, if so, how do you work around it?