libmodbus的移植

/**************************************************/

author: fulinux

e-mail: [email protected]

csdn blog: http://blog.csdn.net/fulinus

/**************************************************/

libmodbus的移植的过程中,要注意几点:

第一,在交叉编译器是最好加上--prefix参数,叫相关的库直接集中起来,方便拷贝到开发板相应的目录中去;

嵌入式开发板:./configure --build=i686 --host=arm-none-linux-gnueabi --prefix=/root/libmodbus-3.1.1/install/ && make install

PC上运行    :./configure && make install

第二,如果在嵌入式开发板上运行类似unit-test-xxx测试程序时,首先要测试tcp的就要修改两个文件中的IP地址,默认是回环测试的,其次要测试rtu的就要修改两个文件中的串口设备文件名,嵌入式开发板上一般是ttySx,具体是哪个就看自己的板子了,可以一个个测试,PC上一般是ttyUSB0(如果是虚拟机的话,确保串口是在虚拟机中,而不是主机中);

unit-test-server.c

    if (use_backend == TCP) {
        ctx = modbus_new_tcp("192.168.169.209", 1502);
        query = malloc(MODBUS_TCP_MAX_ADU_LENGTH);
    } else if (use_backend == TCP_PI) {
        ctx = modbus_new_tcp_pi("::0", "1502");
        query = malloc(MODBUS_TCP_MAX_ADU_LENGTH);
    } else {
        ctx = modbus_new_rtu("/dev/ttyS1", 115200, ‘N‘, 8, 1);
        modbus_set_slave(ctx, SERVER_ID);
        query = malloc(MODBUS_RTU_MAX_ADU_LENGTH);
    }

unit-test-client.c

if (use_backend == TCP) {
        ctx = modbus_new_tcp("192.168.169.209", 1502);
    } else if (use_backend == TCP_PI) {
        ctx = modbus_new_tcp_pi("::1", "1502");
    } else {
        ctx = modbus_new_rtu("/dev/ttyUSB0", 115200, ‘N‘, 8, 1);
    }

第三,在test目录下的类似unit-test-server这个不是可执行文件,而是一个脚本,他会调用test目录下的.lib/下的unit-test-server可执行文件。在PC中需要执行对应的脚本文件,而在嵌入式平台上却是执行可执行文件;下面是rtu的测试结果:

嵌入式平台:

PC上面:

libmodbus的移植,布布扣,bubuko.com

时间: 2024-08-26 01:24:25

libmodbus的移植的相关文章

【Windows10 IoT开发系列】API 移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块

这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/ETM+大气校正流程系列算法中的云掩膜模块由linux系统移植到windows下的产物,代码本身改动不大,使用接口不变. 包含文件: HuCsm.exe hd423m.dll hm423m.dll 编译程序需要包含的静态库有: gctp.lib hdfeos.lib hd423m.lib hm423m

学习者移植NES

http://blog.csdn.net/zerokkqq/article/details/52964249 http://bbs.eeworld.com.cn/thread-415692-1-1.html 上面这个是我移植参考他人的文件.手把手教你移植XXX,多牛逼. 作为承前启后的一件事,你要搞清楚接下来要做什么.别傻了,我们不可能知道之后每一个细节会怎样,所以这里的搞清楚也不是面面俱到,记得,不要总是急着一口气完成任务,之后我们的道路应该是一步一个脚印 1.我总是三分钟热度,希望这次不要断

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

基于tiny4412的Linux内核移植 -- PWM子系统学习(八)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

Cocos移植到Android的一些问题-SQLite3数据库移植问题

首选我们讨论一下SQLite3数据库移植问题.我们在第14章节介绍了在Win32平台使用SQLite3数据库,我们介绍了两种配置环境的方法:一种是使用Cocos2d-x提供的SQLite3库配置,另一种是从SQLite官网下载源代码拷贝的工程中.第一种方法配置起来比较麻烦,关键是Cocos2d-x提供的SQLite3库只是Win32没有其它平台的,目录结构如下所示.<游戏工程目录>\cocos2d\external\sqlite3│  Android.mk│├─include│      sq

ARM板ok6410移植qt4.84+opencv2.4.9初步成功

先上图,有图有真相,当课题重新回归到嵌入式搭载的老问题上时,我还一度各种担心,发现最新的A9板4412能用Android了,还想着偷懒买块现成的只做最顶层开发就好,结果找遍工业相机厂家没见到有提供Android驱动的,一了解才明白,Android驱动是基于linux驱动的貌似,于是乎,又尝试着回归到移植opencv到嵌入式linux的老路上来. 想当初,零linux基础的我对着借来的6410各种被蹂躏,历时1个月仅仅是搭建了能用板子自带的qt4.7.1库编写界面程序而已.那次各种编译错误,各种零

1.将cocos2d-x项目移植到Linux环境下,将cocos2d-x项目移植到手机上

 1.将cocos2d-x相关的软件包拷贝到Linux下. 2 对上面的安装包进行解压 3 执行cocos2dx-2.2.3/install-deps-linux.sh(执行这个命令需要有网络) 4 安装QT,命令:sudoapt-get install qt-sdk 5 在cocos2dx-2.2.3目录下,执行./make-all-linux-project.sh 6 要让64位的linux能运行32位的adb,aapt工具,需要安装以下软件 sudo apt-get install g

cocos2d-x 移植android横竖横屏设置

AndroidManifest.xml中android:screenOrientation字段控制屏幕方向,默认情况是横屏 android:screenOrientation="landscape" //横屏 android:screenOrientation="portrait"//坚屏 cocos2d-x 移植android横竖横屏设置,布布扣,bubuko.com