是否可以在仅允许静态分配 RAM(无 malloc/free)的环境中使用 Azure IoT 设备 SDK C?
最好的
费边
设计azure-iot-sdk-c
时并没有考虑到静态分配的内存,并且开箱即用的 SDK 将动态分配内存。话虽如此,只需少量编码,就有一种方法可以实现类似的功能。在 sdk 中有一个gballoc.h
在 c-utilityinclude
文件夹中命名的接口头。
默认情况下所有分配都通过malloc
and free
,但是如果定义了符号GB_USE_CUSTOM_HEAP
,所有分配都将通过这个接口。您可以设置自定义内存分配方案,以您选择的任何方式处理内存分配。
希望这可以帮助。
我不相信 azure-iot-sdk-c 可以在只允许静态分配的环境中使用。
适用于 C 的 Azure IoT 设备 SDK 是用 ANSI C (C99) 编写的,以最大限度地提高可移植性。此功能使库非常适合在多个平台和设备上运行,尤其是在优先考虑最小化磁盘和内存占用的情况下。内存占用包括动态分配(包括堆/VA)。