Linux移植libmodbus
Libmodbus(RTU及TCP)
- Libmodbus - Linux(ARM)
- 一、libmodbus官网下载源码
- 二、交叉编译
- 1.复制到指定目录下并解压
- 2.创建安装目录
- 3.配置编译选项
- 4.编译
- 5.安装
- 三、将动态链接库复制到开发板
- 四、测试程序
- 1.创建一个ModbusRTU_Test.c文件,并添加以下内容
- 2.将install/include/modbus/中的头文件复制到与ModbusRTU_Test.c文件一个目录中
- 3.编译
- 四.将可执行文件复制到ARM板下,运行测试
- 1.复制、赋权限
- 2. 运行
- 3.UART ttyS0接个485设备或使用Modbus Slave模拟个设备
Libmodbus - Linux(ARM)
在Linux上移植libmodbus(RTU及TCP),开发板用的RK3288,总结了网上一些方法,记录下以供之后参考学习。。
一、libmodbus官网下载源码
下载地址: link.
二、交叉编译
1.复制到指定目录下并解压
解压:
tar -zxvf libmodbus-3.1.4.tar.gz
2.创建安装目录
mkdir install
chmod 777 install
3.配置编译选项
进入解压目录后
// 进入libmodbus解压目录
cd ./libmodbus-3.1.4
// ./configure --host=[交叉编译工具链前缀] --enable-static --prefix=[安装路径]/install/
./configure --host=arm-linux-gnueabihf --enable-static --prefix=/opt/install/
4.编译
make
5.安装
make install
三、将动态链接库复制到开发板
将install/lib文件夹下的libmodbus.so、libmodbus.so.5、libmodbus.so.5.1.0复制到ARM开发板的/usr/lib目录下。
可以用NFS将文件夹挂载到ARM板上/WinSCP工具等(比较方便)
cd ..
cd ./install/lib/
cp libmodbus.so* /usr/lib
直接复制可能会报错,加 wr 解决
wr cp libmodbus.so* /usr/lib
四、测试程序
1.创建一个ModbusRTU_Test.c文件,并添加以下内容
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include "modbus.h" //modbus动态库文件int main(int argc, char *argv[])
{uint16_t tab_reg[64] = {0}; //定义存放数据的数组modbus_t *ctx = NULL;int rc;int i;//以串口的方式创建libmobus实例,并设置参数ctx = modbus_new_rtu("/dev/ttyS0", 9600, 'N', 8, 1); if (ctx == NULL){fprintf(stderr, "Unable to allocate libmodbus contex\n");return -1;}modbus_set_debug(ctx, 1); //设置1可看到调试信息modbus_set_slave(ctx, 7); //设置slave IDif (modbus_connect(ctx) == -1) //等待连接设备{fprintf(stderr, "Connection failed:%s\n", modbus_strerror(errno));return -1;}while (1){printf("\n----------------\n");rc = modbus_read_registers(ctx, 0, 10, tab_reg);if (rc == -1) //读取保持寄存器的值,可读取多个连续输入保持寄存器{fprintf(stderr,"%s\n", modbus_strerror(errno));return -1;}for (i=0; i<10; i++){printf("reg[%d] = %d(0x%x)\n", i, tab_reg[i], tab_reg[i]);}usleep(3000000);}modbus_close(ctx); //关闭modbus连接modbus_free(ctx); //释放modbus资源,使用完libmodbus需要释放掉return 0;
}
2.将install/include/modbus/中的头文件复制到与ModbusRTU_Test.c文件一个目录中
人比较懒,直接拷贝了
3.编译
gcc -o ModbusRTU_Test ModbusRTU_Test.c -lmodbus
// arm-linux-gnueabihf-gcc ModbusRTU_Test.c -o ModbusRTU_Test -L opt/install/lib/ -lmodbus
四.将可执行文件复制到ARM板下,运行测试
1.复制、赋权限
// 我复制的路径cd /opt/test/.// 设置权限chmod 755 ModbusRTU_Test
2. 运行
3.UART ttyS0接个485设备或使用Modbus Slave模拟个设备
再次运行
Linux移植libmodbus相关推荐
- Linux移植之auto.conf、autoconf.h、Mach-types.h的生成过程简析
在Linux移植之make uImage编译过程分析中分析了uImage文件产生的过程,在uImage产生的过程中,顺带还产生了其它的一些中间文件.这里主要介绍几个比较关键的文件 1.linux-2. ...
- ARM的嵌入式Linux移植体验之操作系统
转自:[url]http://dev.yesky.com/153/2527653.shtml[/url] 06-08-13 08:00 作者: 宋宝华 出处: 天极开发 责任编辑:方舟 在笔者撰写的& ...
- Linux移植随笔 tslib
前段时间让Tslib搞晕头了,原来一切都是版本惹的祸.本文只是一个随笔,随笔者,随意用笔写下心得而已,因此不必较真.正如我所欣赏的"乘兴而来,兴尽而返"一样.--估计当年王子猷是赏 ...
- Linux移植随笔:终于解决Tslib的问题了【转】
转自:http://www.latelee.org/embedded-linux/porting-linux-tslib.html 前段时间让Tslib搞晕头了,原来一切都是版本惹的祸.本文只是一个随 ...
- Linux移植之内核启动过程引导阶段分析
在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压.自解压完成之后内核代码从物理地址为0x30008000处开始运行.下面分析在 ...
- Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
本文是作者对tslib库的ts_test.c文件进行分析的随笔,其实tslib的几个测试程序结构差不多,譬如ts_print.c和ts_print_raw.c等. 本文并没有涉及太多概念,也没有详细介 ...
- Linux移植随笔:终于解决Tslib的问题了
前段时间让Tslib搞晕头了,原来一切都是版本惹的祸.本文只是一个随笔,随笔者,随意用笔写下心得而已,因此不必较真.正如我所欣赏的"乘兴而来,兴尽而返"一样.--估计当年王子猷是赏 ...
- 基于ARM的嵌入式Linux移植真实体验(3)――操作系统
基于ARM的嵌入式Linux移植真实体验(3)――操作系统 宋宝华[email]21cnbao@21cn.com[/email] 出处:dev.yesky.com 在笔者撰写的<C语言嵌入式系统 ...
- pcDuino的linux移植五GPIO驱动开发
2019独角兽企业重金招聘Python工程师标准>>> 为首的亮,灭.同时如果你GPIO4,GPIO5接个LED,也会跟着亮,灭. 开发环境: 系统:Ubuntu的 一,硬件介绍 仔 ...
- linux移植1.3寸oled屏幕,芯片SH1106
之前移植过MPU6050(I2C协议)和0.96寸oled(SPI协议),这次移植一个I2C协议的oled. I2C的介绍 可以参考上一篇I2C的文章: linux移植MPU6050的I2C驱动 -- ...
最新文章
- 2017 清北济南考前刷题Day 2 afternoon
- HDUOJ1864最大报销额(01背包)
- wifi名称可以有空格吗_收购公司后可以变更公司名称吗,变更公司名称和股权如何处理?...
- 信息图:程序员/开发人员实际在用哪些工具
- Command NetWork(POJ-3164)
- 爬虫-古试词网验证码手工打码访问登陆后页面
- FAST算法学习笔记
- js in html5,CSS-in-JS 来做的 5 件事情,一般人都不知道!
- python用什么软件编程-python开发用什么编辑器
- Mac搭建Nodejs+Express
- 100%解决VMware虚拟机NAT上网方式,保姆教学
- 若依框架入门(前后端分离版本)
- UML大作业【小型超市管理系统】
- 海思hi3798mv100刷linux,(JL)咪咕mg101_hi3798mv100盒子强刷第三方固件教程
- 卑鄙与高尚,理想与现实
- 黑龙江省力推互联网与畜牧产业深度融合 打造大数据中心
- W05 - 999、云小蜜人工智能训练师
- Python新手入门基础,看完让你会有意想不到的收获
- Java自动化测试之TestNG生成测试报告
- 好像模拟了一个引力场