zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    WebService-01-使用jdk发布第一个WebService服务并调用
    Oracle触发器
    java调用存储过程、存储函数
    存储过程/存储函数
    SQL查询排名第二名的信息
    sql行转列
    SELECT列表中的标量子查询
    sql子查询在insert、update、delete中的应用
    sqlserver存储过程中,set rowcount 0是什么意思?
    固态硬盘安装系统
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7147233.html
Copyright © 2011-2022 走看看