热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

awsiotdevicesdkembeddedC移植到liteos系统,在进行mqtt连接时导致系统挂死报prefetch_abortfault错的问题

aws-iot-device-sdk-embedded-C版本:2.2.1LiteOS版本信息:version:HuaweiLiteOSV200R00

aws-iot-device-sdk-embedded-C 版本: 2.2.1

LiteOS版本信息:version : Huawei LiteOS V200R002C00SPC050B012

open-version : Huawei LiteOS 3.2.3

每次在执行 aws_iot_shadow_connect 的底层函数 _aws_iot_mqtt_internal_connect 时,只要该函数一返回就会报 prefetch_abort fault,随之系统挂掉,

我去查反汇编文件时,甚至连 pc 和 lr 存的地址都搜不出来。。。。。。。。。。。

百度查了资料, prefetch_abort fault 类型的错误,一般是很难定位的,的确,

prefetch abort 可能的原因有:

1)操作过程中有Bug,内容被修改;

2)内存重新映射以后,出错的地址处的内容没有初始化;
3)PC指针无效;

,我也花了不少时间,最后,采用了一种最笨的办法,我手动让该函数以失败的形式提前返回(return -1),只要他不出错(挂死),我就再往下走几行代码,再让该函数以失败的形式提前返回(return -1),循环往复,最后定位到 init_timer 这个函数的时候出现了异常,

这个函数在之前移植的时候出现了重定义,也就是liteos内核代码里边也有这么一个函数,

可以看到,这两个函数名字虽然一样,但是传入的参数结构,以及底层操作都不一样,之前因为不细心的原因,以为这种linux平台相关的接口应该是通用的,直接注释掉了aws sdk 中的init_timer函数实现,最终导致了这样的问题 。。。


推荐阅读
  • Mac环境下Java与Ant自动化构建环境搭建指南
    本文详细介绍了如何在Mac操作系统上为测试工程师搭建Java和Ant开发环境,包括环境变量配置等关键步骤。 ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 16.04 系统上配置 Qt 5.5 的交叉编译环境,特别针对 i.MX6 平台进行了优化设置。内容涵盖从基本的软件安装到高级配置的全过程。 ... [详细]
  • 本文介绍了一种通过设置主题(Theme)来实现快速启动的Android引导页,并详细说明了如何避免因不同屏幕分辨率导致的图片拉伸问题。 ... [详细]
  • 本文详细介绍了一种实现PopupWindow全屏显示且能有效隐藏虚拟按键的技术方案,适用于Android开发。此方法经过实际测试,表现良好,兼容性优秀。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文详细介绍了Elasticsearch中的分页查询机制,包括基本的分页查询流程、'from-size'浅分页与'scroll'深分页的区别及应用场景,以及两者在性能上的对比。 ... [详细]
  • 本文详细介绍了如何在Apache Kafka中进行Topic级别的配置,包括创建、修改和删除配置参数的具体步骤,并提供了详细的配置属性表。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • CoreData 表关联详解
    在企业中,通常会有多个部门,每个员工隶属于某个部门。这种情况下,员工表和部门表之间就会形成关联关系。本文将详细介绍如何在CoreData中实现表关联,并通过示例代码展示如何添加和查询关联数据。 ... [详细]
  • 本文介绍了如何在Android应用中通过Intent调用其他应用的Activity,并提供了详细的代码示例和注意事项。 ... [详细]
author-avatar
az旺成电料
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有