银河麒麟龙芯mips64架构集成RXTX串口通讯兼容问题

article/2025/10/31 13:51:09

前言

应用涉及到串口通讯,用到的是RXTX。一直部署在win环境,项目要求用国产服务器、银河麒麟操作系统、龙芯处理器、国产中间件、国产数据库。因此出现rxtx在以上环境中兼容问题,下面记录下我遇到的问题。如有其他问题可邮箱联系mokeily99@126.com

问题

1:龙芯基于open jdk,不同于sun jdk。对rxtx是否有兼容问题?

        安装中测试中出现openjdk崩溃的情况,只要一发送指令jdk就崩溃,所以开始人为是openjdk不兼容rxtx,尝试很多办法后发现openjdk是可以兼容的,大家不用考虑这个问题

2:rxtx是否兼容mips64架构?

        网上找了很多版本,win、arm、i386、mac、x86_64但是没看到有mips64的,也尝试过用x86_64的但是还是报错JDK崩溃,报如下错误

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0x000000ffe40078b4, pid=7969, tid=0x000000ffdf6ff1d0
#
# JRE version: OpenJDK Runtime Environment (8.0_312-b07) (build 1.8.0_312-b07) (Loongson 8.1.10-loongson3a-Fedora)
# Java VM: OpenJDK 64-Bit Server VM (25.312-b07 mixed mode linux-mips64el compressed oops)
# Problematic frame:
# C  [librxtxSerial.so+0x78b4]  Java_gnu_io_RXTXPort_nativeDrain+0x144
#
# Core dump written. Default location: /root/web-app/apache-tomcat-8.5.69/bin/core or core.7969
#
# An error report file with more information is saved as:
# /root/web-app/apache-tomcat-8.5.69/bin/hs_err_pid7969.log
Could not load hsdis-mips64el.so; library not loadable; PrintAssembly is disabled
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Experimental:  JNI_OnLoad called.

当时用的是RXTX-2.1-7版本,openjdk8。后来发现是版本问题,下面记录解决办法

解决办法

切记要从官网下载可编译包,别从其他地方下载编译完的,编译完的基本都没有mips64架构的,

官网地址:Download - Rxtx

我下载的是rxtx-2.2pre2.zip,别下载2.1.7版本,2.1.7版本不兼容我这套环境

千万要下载zip包,别下载bins.zip包, bins.zip是可直接拿去用的,但是没有mips64架构的,咱们下载的这个可在服务器环境进行编译,它会根据环境生成相应架构的库文件

下载后上传至服务器,本人上传到/usr/local/src目录,解压 rxtx-2.2pre2.zip 进入目录

cd /usr/local/src
unzip rxtx-2.2pre2.zip​
cd /usr/local/src/rxtx-2.1-7r2

 编译前要进行一些处理,不然会报错

1:添加系统版本信息

首选获取系统版本信息

uname -r

本人操作系统版本是4.19.90-21.3.ky10.mips64el

在/usr/include/linux/version.h中添加版本信息,#define UTS_RELEASE "4.19.90-21.3.ky10.mips64el"

vi /usr/include/linux/version.h

添加完如下图

 

 2:删除<sys/io.h>

修改/usr/local/src/rxtx-2.2pre2/./src/RawImp.c文件,删除<sys/io.h>。不然会报<sys/io.h>错误

修改完后可进行编译

cd /usr/local/src/rxtx-2.1-7r2
./configure
make
make install

make过程中会出现warn,不用管,只要没有error就可以。

编译过程中rxtx会自动生成一个匹配当前架构的文件夹,我的是mips64el-unknown-linux-gnu,里面有rxtx用到的库文件和jar,同时会自动将librxtxSerial.so、librxtxParallel.so等库文件和RXTXcomm.jar复制到openjdk环境遍历的目录中,so库文件在jdk的jre/lib/mips64el中,jar在jdk的jre/lib/ext中。

完成以上操作后rxtx即可兼容当前环境。启动应用发送指令后就不会出现jdk崩溃问题,总结来说,就是因为rxtx版本和库文件不兼容导致的。如有疑问mokeily99@126.com


http://chatgpt.dhexx.cn/article/IKLbMj3i.shtml

相关文章

RXTX串口通信(一)

准备工作&#xff1a;https://download.csdn.net/download/sinat_27815631/10318202 在此下载虚拟串口工具&#xff0c;以及串口调试工具 1.虚拟串口工具解压后双击此即可。 会看到这个界面&#xff0c;会添加串口&#xff0c;然后打开设备管理器。 2.串口调试工具 这样串口…

java串口rxtx的若干坑

首先读串口大部分用的都是rxtx&#xff0c;rxtx的相关介绍都很多&#xff0c;不介绍了 坑1&#xff0c;必须jdk1.8&#xff0c;而且最好是201的&#xff0c;版本高&#xff0c;直接jvm崩溃 坑2&#xff0c;windows上可用&#xff0c;但Linux上未必可行&#xff0c;读数据必报…

JavaDemo——java使用RXTX读写串口

对RXTX的介绍&#xff0c;copy自https://blog.csdn.net/u011728105/article/details/48085615 RXTXRXTX是一个提供串口和并口通信的开源java类库&#xff0c;由该项目发布的文件均遵循LGPL协议。RXTX项目提供了Windows,Linux,Mac os X,Solaris操作系统下的兼容javax.comm串口通…

使用RXTX实现简单串口通信调试工具

最终效果如下图&#xff1a; 1、把rxtxParallel.dll、rxtxSerial.dll拷贝到&#xff1a;C:\WINDOWS\system32下。 2、RXTXcomm.jar 添加到项目类库中。 package serialPort;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import j…

Springboot + rxtx 实现串口读写 案例

经过大量翻阅文章总结出springboot连接串口最可行的方法&#xff01;希望能帮到大家( •̀ ω •́ )✧ 使用Rxtx实现串口通信 1、配置pom.xml <!-- 串口内容读取 --><dependency><groupId>org.bidib.jbidib.org.qbang.rxtx</groupId><artifactId&…

java使用RXTX的详细总结

1 简介 项目要求&#xff1a;读取串口信息&#xff0c;并输出展示相应的图像&#xff0c;本篇文章不深入谈前端的内容着重于后端遇到的问题。2021-01-08更新&#xff0c;发现一个重大的问题&#xff1a;如果有人能解决的话请在评论区回复&#xff1a; 在连上串口后&#xff0c…

JAVA使用RXTXcomm进行串口通信(一)

1.引入RXTXcomm.JAR包 首先下载相应的jar文件 压缩包包括:RXTXcomm.jar(64位环境)、win32com.dll和javax.comm.properties。 下载地址:https://www.aliyundrive.com/s/JSeSQsAyYeZ 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需…

SpringBoot使用RXTX连接串口教程及遇到的坑总结

文章目录 SpringBoot使用RXTX连接串口教程及遇到的坑总结一、所用环境及依赖二、部署流程2.1 下载RXTXComm包2.2 部署RXTXComm包 三、编写串口使用程序3.1 编写RXTXConfig.java3.2 编写实体类SerialPortEntity3.3 编写监听器SerialPortListener3.4 编写工具类SerialPortUtil3.5…

【计算机基础|计算机组成原理】【10】海明校验码

海明校验码 海明校验码思路 偶校验&#xff1a;1010 → 01010&#xff0c;能发现奇数位错误&#xff0c;但无法确定是哪一位出错 → 1个校验位只能携带2种状态信息&#xff1a;对/错 海明码设计思路&#xff1a;将信息位分组进行偶校验 → 多个校验位能携带多种状态信息&#x…

计算机组成原理汉明校验,海明校验码(计算机组成原理11)

海明校验码 视频链接地址&#xff1a; https://www.bilibili.com/video/BV1BE411D7ii?fromsearch&seid6420326887479343502 前言 在本篇中&#xff0c;你将掌握 海明码的基本思想 海明码的求解步骤和全校验码 在计算机内部进行存储、计算的数据都是以二进制形式传送&#…

海明校验码纠错设计原理

本文不阐述海明码计算方式&#xff0c;为了节省您的时间&#xff0c;请先学习海明码/奇偶校验是如何计算的&#xff0c;如果好奇其海明码的纠错设计思路再来看此文章&#xff01; 信息为位数为n&#xff0c;校验位数为k&#xff0c;正确状态占1位&#xff0c;所以总位数&#…

2.21 海明校验码

海明校验码 需要了解海明码的编码规则&#xff0c;要会计算需要多少位校验位。 海明码的编码规则 校验位&#xff1a; 校验位的位置是有规律的。都是位于2n。 比如20(1),21(2),22(4)。。都是校验位。 信息位&#xff1a;不是校验位的其他位置。 举个例子 当信息位有1位&am…

【软考学习7】数据校验——海明校验码、循环校验码、奇偶校验码

一、检错、纠错和码距 1.1 检错 从接收的报文中&#xff0c;检查出错误。 1.2 纠错 从接收的报文中检查出错误&#xff0c;并改正错误。 一般通过加冗余信息&#xff08;增大码距&#xff09;来实现。 1.3 码距 码距是整个编码系统中任意两个码字的最小距离。 也就是说&a…

超详细的海明校验码方法解读

海明校验码原理&#xff1a;在有效的信息为中加入几个校验位形成海明码&#xff0c;使码距[rjazgj1] 比较均匀地拉大&#xff0c;并把海明码的每个二进制位分配到几个奇偶校验组[rjazgj2] 中。当某一位出错后&#xff0c;就会引起有关的几个校验位的值发生变化&#xff0c;这不…

海明校验码原理以及作用机制的介绍

什么是海明校验码&#xff1f; 由Richard Hamming于1950年提出、还被广泛采用的一种很有效的校验方法&#xff0c;是只要增加少数几个校验位&#xff0c;就能检测出二位同时出错、亦能检测出一位出错并能自动恢复该出错位的正确值的有效手段&#xff0c;后者被称为自动纠错。 它…

海明校验码的计算及检验

海明校验码的计算及检验 目录 海明校验码的计算及检验知识背景计算海明校验码步骤一&#xff1a;计算校验码位数步骤二&#xff1a;确定校验组步骤三&#xff1a;计算校验码的值得出海明校验码 利用海明校验码校验数据其他 总结 最近和兄弟探讨一个海明校验码的题目&#xff0c…

海明校验码举例

海明校验码举例&#xff1a; 编制ASCII字符M的海明校验码。 解&#xff1a;M的ASCII码为A6A5A4A3A2A1A01001101 M为7位那么海明码最少需要2i&#xff0c;也就是说需要&#xff0c;才能表示出来&#xff0c;&#xff08;238&#xff09; 用哪些信息位分别被哪些校验位效验如…

计算机底层:海明校验码。

计算机底层&#xff1a;海明校验码。 海明校验码是由奇偶校验码中的偶校验延申出来的&#xff1a; 计算机底层&#xff1a;奇偶校验码_srhqwe的博客-CSDN博客 了解海明校验码之前需要先了解奇偶校验码。 海明校验码设计思路&#xff1a; 需要知道&#xff1a;多个校验位就能携…

海明校验码

1. 海明码的特点&#xff1a; 其中m表示数据位的位数&#xff0c;k表示海明校验码的位数 k位海明校验码一共可以表示种校验信息结果&#xff0c;其中有一种要用来表示没有出错的情况&#xff0c;则其余还剩-1种结果&#xff0c;为了使校验结果可以指出任一位出错的位置&#x…

计算机组成原理学习笔记:海明校验码

概述 海明校验码又可以称为汉明校验码, 这只是一个音译的问题, 作者是 Richard Hamming海明校验码对于信息纠错这个领域的贡献十分巨大&#xff0c;Richard Hamming 获得了1968年的图灵奖内容主要包括&#xff1a;海明校验码的思想、如何构建海明校验码、如何使用海明校验码 …