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