Abstract
Microcontroller units (MCU) with integrated communication transceivers usually require protocol stack support to be compliant with standards. Many manufacturers provide royalty-free stacks in the form binary images linkable by specific compilers as an effective way to support developers while protecting the stack code as intellectual property from being used in competitors’ products. Unfortunately, the use of designated compilers prevents the developers from choosing their own compilers, even if the same instruction-set architecture. What prevents the mixing of compilers include differences in the calling convention across compilers, format of the object files, and runtime support for various architecture extensions. To address these problems, we propose a calling convention abstraction layer (CCAL) into the existing firmware architecture and a methodology for resolving the calling conventions using a mix of compile-time and run-time techniques. By distributing an image built with the designated compiler and the proper stub code, we enable developers to be completely independent of the designated compiler and to use their own compiler exclusively to develop their own user code to take advantage of the proprietary protocol stack.