多语言展示
当前在线:1344今日阅读:86今日分享:14

迅为开发板中modbus移植方法和使用文档

迅为开发板中modbus移植方法和使用文档,modbus 库如何移植到 ARM 开发板上,以及如何使用测试程序。
工具/原料
1

modbus移植

2

linux系统

方法/步骤
1

1 modbus 源码下载可以从 libmodbus 官网 http://libmodbus.org/download/下载 3.1.4 版本,也可以用迅为提供的下载好的源码。

2

作者将“libmodbus-3.1.4.tar.gz”下载,打包在“topeet_modbus.tar.gz”中,其中还有移植好文件。2 arm-linux 上的 modbus 移植和编译交叉编译使用的编译器是“arm-2009q3”,如下图所示。

3

通过 ssh 将下载好的源码压缩包“libmodbus-3.1.4.tar.gz”拷贝到 Ubuntu 上,使用命令“tar -vxf libmodbus-3.1.4.tar.gz”解压,解压后生成目录“libmodbus-3.1.4”,如下图所示。

4

使用命令“mkdir install”,新建 install 路径,用以安装生成的文件,如下图所

5

进入 libmodbus-3.1.4,执行命令./configure ac_cv_func_malloc_0_nonnull=yes --host=arm-none-linux-gnueabi--enable-static --prefix=/home/minilinux/install/ 。Host=后面的是编译器前缀,--prefix=后面的是安装目录,可根据自己环境确定,如下图所示。

6

如下图所示,执行完毕。

7

执行编译命令“make”,如下图所示。

8

编译完成,如下图所示。

9

执行安装命令“make install”,则安装到./configure 指定的目录,作者这里是“/home/minilinux/install/”目录,如下图所示。

10

安装完成,如下图所示。

11

查看安装目录 install,在 install 生成三个目录:include、lib、share,如下图所示。

12

如下图所示,使用 file 命令查看 lib 目录下的库文件,可以发现其中的文件是 arm 架构的。

13

将编译出来的 lib 路径下的所有文件拷贝到开发板的“/lib”目录下。至此,modbus 的 arm-linux 的库文件编译完成。

14

3 arm 的测试程序进入目录/home/minilinux/libmodbus-3.1.4/tests/,查看测试程序 random-testserver.c,如下图所示,已经编译出来了,但是还是需要修改一下源码中的几个参数,重新编译。

15

输入命令 vim random-test-server.c 打开测试程序,里面 23 行ctx =modbus_new_tcp('127.0.0.1', 1502); 改成 ctx = modbus_new_tcp(NULL, 1502);,即 server 监控所有的 ip 地址,端口是 1502 。

16

然后执行命令交叉编译命令arm-none-linux-gnueabi-gcc -o random-test-server random-test-server.c -L/home/minilinux/install/lib -lmodbus -I/home/minilinux/install/include/modbus生成可执行文件 random-test-server,如下图所示。

17

如下图所示,可执行文件是 arm 架构的。

18

至此,arm 服务端的测试例程“random-test-server”编译完成。4 x86-linux 的 modbus 移植和编译在 minilinux 目录下再建一个文件夹,用于放 modbus 的 x86 的文件,如下图所示,使用命令“tar -vxf libmodbus-3.1.4.tar.gz -C x86-modbus/”,将源码解压到这个目录下。

19

进入解压出来的“/home/minilinux/x86-modbus/libmodbus-3.1.4”目录,如下图所示,执行命令“./configure”,不用加任何参数,默认就是 GCC-x86 配置。

20

配置完成,如下图所示。

21

执行“make”编译命令,然后执行安装命令“make install”,安装完成,如下图所示。

22

进入 test 目录,前面我们编译的 arm 下的测试程序是 server,那么 Ubuntu 下运行的就应该是 client 客户端,如下图所示。

23

客户端需要服务端的 IP 地址,如下图所示,作者的服务端(也就是开发板端)IP 是“192.168.2.20”。

24

接着,修改 x86-modbus 目录下的“random-test-client.c”文件,使用 vim 命令打开random-test-client.c 文件,将 ctx = modbus_new_tcp('127.0.0.1', 1502);改成ctx = modbus_new_tcp(开发板 IP, 1502);如下图所示,然后保存退出。

25

执行命令:gcc -o random-test-client random-test-client.c `pkg-config --libs --cflagslibmodbus`编译生成 random-test-client 可执行文件,如下图所示,编译出的可执行文件是 x86的。

26

至此,x86 上的测试程序编译完成。

推荐信息