zoukankan      html  css  js  c++  java
  • uboot启动Linux内核时undefined instruction错误

    错误描述

    U-Boot 1.1.6 (Oct 18 2011 - 15:23:51) for FriendlyARM MINI6410
    
    
    CPU:     S3C6410@532MHz
             Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode) 
    Board:   MINI6410
    DRAM:    256 MB
    Flash:   0 kB
    NAND:    256 MB 
    In:      serial
    Out:     serial
    Err:     serial
    MAC: 08:90:90:90:90:90
    Hit any key to stop autoboot:  0 
    
    NAND read: device 0 offset 0x80000, size 0x500000
    ........................................ 5242880 bytes read: OK
    ## Booting image at c0008000 ...
    Boot with Image
    
    Starting kernel ...
    
    undefined instruction
    pc : [<50008004>]	   lr : [<c7e209c8>]
    sp : c7fffe14  ip : 000000ff	 fp : 00000000
    r10: c7e609a3  r9 : 00000000	 r8 : 7a176bfd
    r7 : c7e442c0  r6 : 00000000	 r5 : c7e5ffb8  r4 : 00000000
    r3 : 50008000  r2 : 50000100	 r1 : 000009d8  r0 : 00000000
    Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
    Resetting CPU ...
    
    reset... 
    

      

    解决办法

      导致这个错误的原因是烧入Uboot的时候没有重新烧入linux内核,导致uboot启动的时候找不到Linux内核,烧入uboot的时候重新烧入Linux内核就可以了。但是坑爹的我在查找问题的时候修改了Linux内核的启动参数,导致在Linux启动到init进程的时候启动失败了。现在先看一下uboot相关的选项和参数:

    U-Boot 1.1.6 (Oct 18 2011 - 15:23:51) for FriendlyARM MINI6410
    
    
    CPU:     S3C6410@532MHz
             Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode) 
    Board:   MINI6410
    DRAM:    256 MB
    Flash:   0 kB
    NAND:    256 MB 
    In:      serial
    Out:     serial
    Err:     serial
    MAC: 08:90:90:90:90:90
    Hit any key to stop autoboot:  0 
    ##### FriendlyARM U-Boot(2011-10, NAND) for 6410 #####
    [f] Format the nand flash
    [v] Download u-boot.bin
    [k] Download Linux/Android kernel
    [y] Download root yaffs2 image
    [u] Download root ubifs image
    [a] Download Absolute User Application
    [n] Download Nboot.nb0 for WinCE
    [w] Download WinCE NK.nb0
    [s] Set the boot parameter of Linux 
    [b] Boot Linux
    [q] Quit to shell
    NAND(SLC): 256 MiB, RAM: 256 MiB
    Enter your Selection:
    
    
    ##s这个选项是设置Linux启动的参数,一旦选中它,输入的任何字符都会被当做Linux参数保存哦,就算输入一个字符q,然后按回车,你认为想退出,其实它已经把q当做Linux的参数保存了,再次启动Linux的时候就可能出问题,除非只是单独的按回车。这是可以输入q,进入Quit to shell选项,在这里输入help,可以看到帮助命令,还可以在这里看到Linux的输入选项呢。
    

      这里只所以出现init进程跑失败,是因为Linux启动参数设置的文件系统和实际烧入的文件系统不匹配,所以一定要对照好两个。

  • 相关阅读:
    POJ 1905 Expanding Rods 木棍膨胀
    [JSOI2007] 文本生成器
    18.09.22模拟赛T2 历史
    [USACO18OPEN] Talent Show
    [国家集训队] 整数的lqp拆分
    [HNOI2008] GT考试
    读入优化效果测试
    Trie图 模板
    manacher算法 详解+模板
    [洛谷P4299] 首都
  • 原文地址:https://www.cnblogs.com/muyuzhanglao/p/4977637.html
Copyright © 2011-2022 走看看