搜索
bottom↓
回复: 3

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

[复制链接]

出0入0汤圆

发表于 2018-9-4 13:26:55 | 显示全部楼层 |阅读模式
迅为开发板中modbus移植方法和使用文档

modbus 库如何移植到 ARM 开发板上,以及如何使用测试程序。

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






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







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







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







进入 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=后面的是安装目录,可根据自己环境确定,如下图所示。







如下图所示,执行完毕。







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





编译完成,如下图所示。





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





安装完成,如下图所示。




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






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





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

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





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





然后执行命令交叉编译命令
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,如下图所示。





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






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





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





配置完成,如下图所示。






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





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





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






接着,修改 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);
如下图所示,然后保存退出。








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






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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2018-9-4 16:58:22 | 显示全部楼层
顶顶~                 

出0入0汤圆

发表于 2018-9-5 11:51:04 | 显示全部楼层
Thank you !!!

出0入0汤圆

 楼主| 发表于 2018-9-14 15:53:50 | 显示全部楼层

回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 06:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表