Skip to content

软件包不同版本的适配说明 #1774

Description

@kurisaW

由于不同主线版本不可避免会修改某些函数声明或数据类型,因此对应的软件包也需要尽可能同步适配,通过版本宏去做区分,下面是一个示例

如:
1.在主线版本5.0.2中,分离sensor框架为V1和V2两个版本
image
2.在主线版本5.1.0中,修改fetch_data函数声明为:

rt_ssize_t (*fetch_data)(struct rt_sensor_device *sensor, void *buf, rt_size_t len);

相关PR:

参考修改方式如下:

#include <rtthread.h>
#include <rtdevice.h>

#if defined(RT_VERSION_CHECK)
    #if (RTTHREAD_VERSION >= RT_VERSION_CHECK(5, 0, 2))
        #define RT_SIZE_TYPE   rt_ssize_t
    #else
        #define RT_SIZE_TYPE   rt_size_t
    #endif
#endif

ps:原本对于sensor软件包需要包含头文件sensor.h或sensor_v2.h,我们替换为#include <rtdevice.h>,在该头文件中,会根据宏开关包含对应的头文件,如下图:

image

参考PR:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions