簡體   English   中英

Qemu flash啟動不起作用

[英]Qemu flash boot up does not work

我有一個相當古老的(2009年出版)嵌入式ARM linux書籍,它使用u-bootqemu qemu與本書中解釋的u-boot二進制文件的用法如下:

qemu-system-arm -M connex -pflash u-boot.bin -nographic

它使用qemu 0.9.1,我的是2.1.0:

qemu-system-arm --version
QEMU emulator version 2.1.0, Copyright (c) 2003-2008 Fabrice Bellard

但是,當我執行相同的命令時,我收到了這些錯誤消息。

qemu-system-arm: failed to read the initial flash content
qemu-system-arm: Initialization of device cfi.pflash01 failed

可能有什么問題? 這是來自新的命令參數嗎? 我有這個使用不同命令的網站 ,但是當我嘗試時,我看到一個空白的屏幕。

qemu-system-arm -M versatilepb -m 128M -nographic -kernel u-boot.bin

我使用Mac OS X maverick for qemu。

我試過這個:

dd if=/dev/zero of=flash.bin bs=4096 count=4096
arm-linux-gnueabihf-as -o add.o add.S
arm-linux-gnueabihf-ld -Ttext=0x0 -o add.elf add.o
arm-linux-gnueabihf-objcopy -O binary add.elf add.bin
dd if=add.bin of=flash.bin bs=4096 conv=notrunc
qemu-system-arm -M connex -pflash flash.bin -nographic -serial /dev/null -gdb tcp::1234 -S

其中add.S是:

.text
entry: b start
arr:    .byte 1, 2, 3, 4, 5, 6
eoa:
.align
start:  
    ldr r0, =eoa
    ldr r1, =arr
    mov r3, #0
loop:
    ldrb r2, [r1], #1
    add r3, r2, r3
    cmp r1, r0
    bne loop
stop:   b stop

似乎程序運行正常......

qemu-system-arm --version
QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.5), Copyright (c) 2003-2008 Fabrice Bellard

在Alex的幫助下,我可以在qemu上運行gumstix。

  1. 應使用dd命令將二進制文件轉換為flash格式。

    • dd if=/dev/zero of=flash.bin bs=4096 count=4096
    • dd if=u-boot.bin of=flash.bin bs=4096 conv=notrunc
  2. 應該為qemu提供一個參數來使用stdio進行串行通信

    qemu-system-arm -M connex -pflash flash.bin -serial stdio

然后,我看到屏幕輸出:

pxa2xx_clkcfg_write: CPU frequency change attempt


U-Boot 1.1.4 (Oct  6 2014 - 14:51:37) - 200 MHz - 

*** Welcome to Gumstix ***

U-Boot code: A3F00000 -> A3F23138  BSS: -> A3F58258
RAM Configuration:
Bank #0: a0000000 64 MB
Flash: 16 MB
Using default environment

SMC91C1111-0
Net:   SMC91C1111-0
Hit any key to stop autoboot:  0 
Instruction Cache is ON
### JFFS2 loading 'boot/uImage' to 0xa2000000
Scanning JFFS2 FS:  done.
find_inode failed for name=boot
load: Failed to find inode
### JFFS2 LOAD ERROR<0> for boot/uImage!
GUM> 

請參閱源代碼( gumstix.c )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM