我们想提供一个编译库,实现一个协议层,导入微控制器的C / C ++源代码项目。并最终将一种编译函数暴露给源代码项目。让我们说一种“dll”。是否有任何已知技术可以实现类似的东西?
答案 0 :(得分:3)
虽然可以通过库提供功能,但通常在微控制器/嵌入式领域中,它很快变得不切实际。
每个微控制器内核都有一个独特的指令集。此外,来自同一系列的微处理器可能具有各种支持或不支持的扩展......因此,您只需为每个单独的微控制器(来自每个供应商)提供您想要支持的库文件。 / p>
但是...
根据我的经验,编译器之间的调用约定是不一样的。因此,由一个工具链编译的库将无法链接到由另一个工具链创建的目标文件。
这将引导您为每个供应商为每个可能使用的工具链提供每个微观库。伊克。哦,也不要依赖操作系统调用,因为你不知道你将与之链接...
更传统的方法是使用RTOS供应商倾向于使用的相同方法:提供源,并使用许可条款保护您的IP。现实情况是,如果您的最终用户想要,他们可以逐步完成组装并弄清楚究竟发生了什么,因此您无论如何都不会隐藏您的实施。