packages
packages copied to clipboard
软件包不同版本的适配说明
由于不同主线版本不可避免会修改某些函数声明或数据类型,因此对应的软件包也需要尽可能同步适配,通过版本宏去做区分,下面是一个示例
如:
1.在主线版本5.0.2中,分离sensor框架为V1和V2两个版本
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>,在该头文件中,会根据宏开关包含对应的头文件,如下图:
参考PR:
- https://github.com/murphyzhao/dht11_rtt/pull/7