packages icon indicating copy to clipboard operation
packages copied to clipboard

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

Open kurisaW opened this issue 5 months ago • 0 comments

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

如: 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:

  • https://github.com/RT-Thread/rt-thread/pull/8421/files

参考修改方式如下:

#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:

  • https://github.com/murphyzhao/dht11_rtt/pull/7

kurisaW avatar Sep 06 '24 04:09 kurisaW