一、准备工作
准备一个FreeRTOS + LWIP工程,新建microdds文件夹和microcdr文件夹,然后开始移植工作。
二、开始移植
1、文件拷贝
(1)、找到第三章中下载的Micro-XRCE-DDS-Client代码包,复制其中的src文件夹和include文件夹以及examples文件夹到已有工程的microdds文件夹中
(2)、找到Micro-XRCE-DDS-Agent代码包中对应的位置
复制其中的src文件夹和include文件夹到已有工程的microcdr文件夹中
完成上面两步后,已有工程的目录结构为
2、调整代码
(1)打开microcdr中的config.h.in,将文件名修改为config.h
修改前
修改文件名后,调整文件中的内容
(2)删除microdds文件夹中include文件夹中对应的文件
删除ip文件中对应的文件,
删除后的内容,仅保留UDP接口相关内容
(3)删除microdds文件夹中src文件夹中对应的文件
删除ip文件夹中相关内容,仅保留UDP相关内容
删除后的文件内容
(4)找到microdds中include文件夹,将其中的config.h.in修改为config.h文件
手动修改文件中的内容
(5)删除microdds中examples中的其他例程,仅保留SubscribeHelloWorld例程
(6)调整后的文件整体情况
3、例程测试
(1)将examples中的SubscribeHelloWorld中的main文件名和main函数重命名,避免与工程中的main函数冲突
(2)调整main函数的内容
(3)调整完毕后,在工程的函数中调用example_main()开始示例。
tips:a. 例程的IP要与Agent的IP在同一网段
b. 端口要与Agent监听的端口一致
四、其他问题
(1)time.c文件冲突
编译过程中,如果提示time错误,则可能是microdds中time.c与系统中的time.c冲突,可以将microdds中time.c更换名字,同时调整对应的头文件包含