u-boot新增命令后出现data abort

(一)问题描述

u-boot下新增了一条update的命令,直接输入update没有报错,但是输入up按TAB键补全时发现出现data abort,而且输入不支持的命令也会有data abort
在这里插入图片描述在这里插入图片描述

(二)解决方法

最开始我包含的头文件为:

#include <command.h>
#include <common.h>

头文件改为下面后问题解决,但顺序不是最重要的原因,而是我用到了strncmp函数,头文件包含顺序出错

#include <common.h>
#include <command.h>

修改完成后效果:
在这里插入图片描述

(三)定位思路

1.最开始尝试下文的方法: 记一次uboot 中出现的 data abort 错误,文章写得很不错,但是当我反汇编以后,并没有解决问题,但是大概的问题可能找到了,按照上文提供的思路:
首先在mainloop函数打印出gd->reloc off = 13b000 ,出错PC的指针23f5fa6c,两者相减得到23e24a6c,查看反汇编语言得到:
在这里插入图片描述
这里只是看到可能是strncmp有问题,但是具体是谁调用了strncmp出错并没有给出,考虑是不是头文件的原因,加上linux/string.h头文件后,不用改变上面说的command.h和common.h的顺序也可以了
这里定位就到这里,问题已解决,待深究问题?为什么编译的时候没有报错,而是执行的时候报错了,理论来说头文件不包含编译就会报警告的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值