关于uboot下data abort的问题
在uboot下,常常会出现一些很让人揪心的问题。
解决这些问题的关键就是方法与方向。把握好这两点,一切问题都能够迎刃而解。同一时候也要自信。例如以下:
有时我们会遇到例如以下的出错信息,这时CPU会reboot。
data abort
MAYBE you should read doc/README.arm-unaligned-accesses
pc : [<1ff60148>] lr : [<1ff6019c>]
sp : 1fb0a508 ip : 00000000 fp : 00000000
r10: 00000001 r9 : 1fb0af38 r8 : 1fb0c738
r7 : 00000011 r6 : 00000000 r5 : 00000011 r4 : 1fb0a53c
r3 : 00000000 r2 : 00000000 r1 : 6d6f6320 r0 : 00000000
Flags: nZCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
U-Boot 2014.01-00001-gdd83b27 (Jun 27 2014 - 13:39:06)
那遇到这种出错怎么办呢?
事实上在出错时,uboot已经告诉我们怎样去找出问题所在。如上面的问题,我们能够通过查看doc/README.arm-unaligned-accesses来找到出错的位置。
它告诉我们。能够通过dbinfo获取当前的relocate offset值,再通过odjdump -S来把u-boot进行反汇编,最后我们在反汇编中找到pc-relocate offset的位置。就能够定位到出错的位置。
对于上面的问题。已经告诉我们出错的pc是0x1ff60148,如今就是要知通当前的offset值,这个能够通过dbinfo来猎取,例如以下:
uboot> bdinfo
arch_number = 0x7FD76F2E
boot_params = 0xDFF1CFFF
DRAM bank = 0x00000000
-> start = 0x00000000
-> size = 0x20000000
eth0name = Gem.e000b000
ethaddr = 00:0a:35:00:01:22
current eth = Gem.e000b000
ip_addr = 192.168.80.10
baudrate = 115200 bps
TLB addr = 0x1FFF0000
relocaddr = 0x1FF2B000
reloc off = 0x1BF2B000
irq_sp = 0x1FB0AF38
sp start = 0x1FB0AF28
ARM frequency = 666 MHz
DSP frequency = 0 MHz
DDR frequency = 533 MHz
上面我们能够看到当前的offset就是0x1bf2b000,好了,如今通过与上面的pc相减。得到0x4035148。好了,如今就是在反汇编中找到这个pc的位置,就能够精确定义到出错问题。
一般这样的问题与指针有关。
HTH
关于uboot下data abort的问题的更多相关文章
- uboot下 Nand flash 启动 内核与根文件系统
u-boot版本: u-boot-2010.03_tekkamanninja修改的u-boot 1.将uboot通过j-link烧写到norflash,启动后 saveenv 将参数保存到 nandf ...
- uboot下emmc内容烧写(拷贝)步骤
一.目的:嵌入式开发板,通过emmc上的内核文件加载启动linux操作系统,以及存放其他程序文件.需要将所需文件先写入emmc中. 二.总体步骤是:uboot启动后,进入linux下,将emmc分区并 ...
- uboot 下更改NAND的分区 fdisk
uboot 下更改NAND的分区 fdisk 分类: S5PXX(三星)2012-07-01 18:59 8946人阅读 评论(7) 收藏 举报 flash平台cacheandroid三星null 关 ...
- Linux和Uboot下eMMC boot分区读写
关键词:eMMC boot.PARTITION_CONFIG.force_ro等. 1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT.RPMB和UDA一般是默认存在的,gpp分区需 ...
- [命令]在uboot下查看文件系统的目录结构
在uboot下敲help可以查看该版本的uboot支持哪些命令 ls mmc 1:1 ls mmc 1:2 可以查看mmc设备上对应的文件目录,支持多种文件系统格式,如fat32/ext
- uboot下的网络终端/控制台
许多linux设备可能没有外置串口,这是就需要一个网络终端来在uboot下操作设备,如升级镜像等. uboot下的网络终端为netconsole,代码drivers/net/netconsole.c. ...
- uboot下tftp传输文件
uboot下通过tftp工具传输文件,tftp与ftp是完全不同的工具或协议. 1) 下载并安装程序 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是 ...
- uboot下netconsole的原理及用法
近期发现uboot下一个非常有意思也非常有用的功能:netconsole,uboot下的netconsole相似于kernel下的telnet等网络终端功能,将网络作为输入输出的终端,这样就便于我们在 ...
- mini2440 u-boot下设置tftp
在烧写好u-boot后,重新启动mini2440,一直按空格键进入u-boot界面: U-Boot 月 - ::) modified by tekkamanninja (tekkamanninja@. ...
随机推荐
- A Python example for HiveServer2
要做一个通过调用python来实现对hive server2 的连接.在网上搜索了很多资料,有些说的hive sever的,但是由于认证方式发生改变,行不通. 最后,找到了权威的说明(PS: 还是应该 ...
- NHibernate3.2学习笔记
一.开发环境 数据库:SQLServer2008 编译器:VS2010 .Net版本:.Net Framework 4.0 二.涉及第三方程序集 NHibernate.dll:版本3.2 Iesi.C ...
- C++帮助文档(自己写的)
以下所有记录几乎都是摘抄自<C++ primer 5th 中文> auto 类型说明符 P61 特点: 1. 定义的变量必须有初始值 2. 通过初始值来推算变量的类 ...
- RabbitMQ 为什么需要信道?为什么不是TCP直接通信?
交换器和队列的关系 1. 交换器是通过路由键和队列绑定在一起的,如果消息拥有的“路由键”跟队列和交换器的“路由键”匹配,那么消息就会被路由到该绑定的队列当中去 2. 也就是说,消息到队列的过程中,消息 ...
- 【转】jvm收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器.如果两个收集器之间存在连线,就说明它们可以搭配使用. Serial(串行GC)收集器 Serial收集 ...
- 【PostgreSQL-9.6.3】使用pg_settings表查看参数的生效条件
PostgreSQL数据库的配置参数都在postgresql.conf文件中,此文件的目录为数据库的数据目录($PGDATA).这些参数有些是直接修改就可以生效,有些需要重启数据库才能生效,而有些根本 ...
- Python 开发初识
从今天开始记录自己的python开发之路,用博客记录自己的学习经历,以及学习小结,小的项目模块,努力充实,做最好的自己!!!
- daxcie
Database->Edit Current DBMS菜单 修改如下:选中General选项卡,依次打开Script->Sql->Fomat->CaseSensitivityU ...
- Commons_IO_FileUtils的使用
commos_io.jar包下载地址:http://commons.apache.org/proper/commons-io/download_io.cgi 官方文档地址:http://commons ...
- Mkdocs在html网页上看markdown
目录 Mkdocs在html网页上看markdown 1. 本文目的 2. Mkdocs介绍 3. DEMO的演示 3.1 配置需求 3.2 安装mkdocs 3.3 新建工程 3.4 启动服务器 3 ...