问题:

目标板是rt5350,使用mipsel-linux-gcc 3.4.2编译器,源程序由C++转换到C语言。

程序中有3个线程:主线程、接受消息队列的线程和上传采集数据的线程;

当把上传采集数据的线程启动时,程序运行给出Illegal instruction的错误提示并退出;

而屏蔽掉启动上传采集数据线程后,程序能正常运行,所有与上传采集数据无关的功能都是正常的;

解决办法:

1. 网上搜了一圈,出现该问题的主要原因包括:

(1). 内核编译的时候没有选中EABI选项;

(2). 目标板中缺少对应的动态连接库;

(3). 编译程序时没有使用静态连接方式,该条实际与(2)是相同的;

2. 可惜,上述原因对于本人这边的问题都没有借鉴意义。

后来反复比对接受消息队列程序msgrcv_cmd.c和上传采集数据程序sensor_reader.c,突然发现,sensor_reader.c的构造函数中没有将结构体中的所有函数指针初始化,只初始化了部分函数。而启动sensor_reader线程的函数恰恰没有被初始化,这应该就是问题的根源了。如果函数指针没有初始化,该函数指针就是野指针,当调用该函数的时候,结果往往是灾难性的。

将结构体SensorReader中的函数指针都用对应的实现函数初始化,再次编译程序,下载到目标板中,程序终于可以在使能上传采集数据线程后正常运行了。

问题解决。

程序报错误Illegal instruction的解决办法相关推荐

  1. VMware6.5 应用程序配制错误14001未能启动 解决办法

    昨天把 VMware的一个老版本换掉了..想安装个 VMware6.5  ,安装一切顺利 运行时候出现 "发生系统错误:14001.由于应用程序配置不正确,应用程序未能启动--" ...

  2. Python运行 import cv2 等报错 Illegal instruction (core dumped) 解决办法

    import cv2 报错 Illegal instruction (core dumped) nanopc-T4 开发板上安装好 opencv 后,import cv2 时 会报错 Illegal ...

  3. 故障分析 | MongoDB 5.0 报错 Illegal instruction 解决

    作者:任仲禹 爱可生 DBA 团队成员,擅长故障分析和性能优化,文章相关技术问题,欢迎大家一起讨论. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. ...

  4. jetson nano 报错Illegal instruction(core dumped)

    jetson nano 报错Illegal instruction(core dumped) 问题描述:好不容易对jetson nano开发板更换好镜像源.配置好远程xrdp桌面(可以参考我往期博文) ...

  5. oracle 6508,【案例】Oracle报错ORA-06552 ORA-06553 ORA-006508解决办法

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库alert日志中出现大量ORA-06552 ORA-06553 ORA-006508报错,分析原因为存储过程异常导致,结合MOS ...

  6. java 报错404_Javaweb工程运行报错HTTP Status 404解决办法

    最近在学习jsp和servlet,避免不了的要和tomcat打交道,但tomcat经常会出现各式各样的错误,下面是我总结的一些常见的解决方法,希望对大家有用. 1.未部署web应用 2.url输入错误 ...

  7. 【转】error while loading shared libraries: xxx.so.x 错误的原因和解决办法

    原博客地址:http://www.cnblogs.com/Anker/p/3209876.html#undefined error while loading shared libraries: xx ...

  8. 解决小程序插槽slot内容显示不对,无论是原生小程序还是uniapp开发的,解决办法如下

    原文地址:解决小程序插槽slot内容显示不对,无论是原生小程序还是uniapp开发的,解决办法如下!在一次使用小程序插槽的时候,发现如论在哪里使用插槽,内容在子组件上展示和根目录同级,这其实是pc端微 ...

  9. WPF发布程序后未授予信任的解决办法

    WPF发布程序后未授予信任的解决办法 基于浏览器的WPF应用程序由于需要比较高的操作权限,所以在项目的安全性属性中选择了"这是完全可信的应用程序"选项.可是,在发布部署后,在其他电 ...

最新文章

  1. Unity初学Shadergraph创建着色器学习教程
  2. linux存储实用程序,技术|使用 Linux 实用程序 gPhoto2 备份手机存储
  3. oracle没有groupby,oraclegroupby之后还可以groupby么
  4. 奋斗的小蜗牛+竹青遍野 同类题
  5. Android-NDK-hello-jniCallback
  6. oracle ref游标用法,[置顶] Oracle 参照游标(SYS_REFCURSOR)使用
  7. git add * 提示warning: LF will be replaced by CRLF in 解决办法
  8. 本地tomcat启动war包_「shell脚本」懒人运维之自动升级tomcat应用(war包)
  9. VMware vCenter Server6.5升级至6.7
  10. SQL Sever 常用语句总结
  11. linux下 fork(),vfork(),clone()的用法及区别
  12. 802.11n 重新扬帆
  13. Dagger2和MVParms的学习
  14. 自顶向下(top down)简介
  15. 区块链专利全球第一竟是它?
  16. POJ 3709 K-Anonymous Sequence 斜率DP
  17. 『深度应用』首届中国心电智能大赛复赛开源(第三十一名,得分0.841484)
  18. mac safari无法打开网页_苹果手机浏览器打不开网页怎么办?Safari无法打开网页的解决方法...
  19. 关于将微博上视频保存在电脑本地的方法汇总
  20. Mysql的timestamp(时间戳)详解以及2038问题的解决方案

热门文章

  1. HTML免费在线文档批量翻译工具
  2. SAP S4 会计科目表的设计
  3. 一起领略css3动画的强大
  4. SkinH皮肤使用教程,及皮肤效果测试工具
  5. 时间工具类、Instant、date、LocalDate、String、LocalDateTime 相互转换
  6. C语言实现字母的大写转换成小写
  7. Docker神器之迅雷远程下载(群辉 Linux)
  8. 演化博弈、复制动态方程与仿真
  9. .jfif图片怎么在Photoshop中打开
  10. PyQt——1. 简单认识PyQt及Python3.7安装QtDesigner