|
现在用的版本是skyeye.0.9.8
按照u-boot的dave下面的b2加了一个44b0的板子,在skyeye上面能够正常跑起来
在u-boot的做以下更改
.globl _start
_start: b reset
/* add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
add pc, pc, #0x0c000000
*/
/*Modfied by yangm 2006-7-10 */
ldr pc, =0x0c000004
ldr pc, =0x0c000008
ldr pc, =0x0c00000c
ldr pc, =0x0c000010
ldr pc, =0x0c000014
ldr pc, =0x0c000018
ldr pc, =0x0c00001c
.balignl 16,0xdeadbeef
编译过后,u-boot.bin放在0-0x00200000 flash BANK上面
在uClinux.org下载最新的uClinux-dist-20051110.tar.gz,打上补丁
将vector_base设置为0x0c000000;
内核的起始地址为0x0c008000
blkmem.c里面的arenas[]里面的暂时不作更改
make menuconfig 调整好ram,flash,kernel启动地址等,将busybox工具精简至最小
make dep
make lib-only
make user_only
make romfs
make image
makedir skyeye
copy u-boot.bin,linux-2.4.x/linux,image/romfs.img到uClinux-dist/skyeye/下
在uClinux-dist/skyeye/下面的skyeye.conf:
#skyeye config file for uboot
cpu: arm7tdmi
mach: s3c44b0
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00200000,file=./u-boot.bin
mem_bank: map=M, type=RW, addr=0x0c000000, size=0x00800000,file=./romfs.img
mem_bank: map=I, type=RW,addr=0x01c00000, size=0x00400000
skyeye linux 打印如下:
***********************************************************************
**** ****
**** SkyEye Simulator Ver 0.9.8 with GDB/Insight 5.3 Interface ****
**** ****
***********************************************************************
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf"...
(SkyEye) target sim
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
mach info: name s3c44b0, mach_init addr 0x8162fd8
nic[0] info: state=1, ethmod num=1, mac addr=0:50:c2:1e:af:fb, hostip=192.168.0.23
nic_init_begin
tapif_init begin
tapif_init: fd 6
tapif_init: system("ifconfig tap0 inet 192.168.0.23");
tapif_init end
nic_init_end
SKYEYE: use arm7100 mmu ops
Loaded RAM ./u-boot.bin
Connected to the simulator.
(SkyEye) load
Loading section .init, size 0xa000 vma 0xc008000
Loading section .text, size 0x1311d0 vma 0xc012000
Loading section .data, size 0x95d8 vma 0xc144000
Start address 0xc008000
Transfer rate: 10632512 bits in <1 sec.
(SkyEye) run
Starting program: /opt/uClinux-dist/skyeye/linux
Linux version 2.4.31-uc0 (root@yangm) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #17 &para;&thorn; 7&Ocirc;&Acirc; 11 15:53:24 CST 2006
Processor: Samsung S3C44B0X revision 0
Architecture: S3C44B0X
On node 0 totalpages: 2048
zone(0): 0 pages.
zone(1): 2048 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
Calibrating delay loop... here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_irq(),the irq is 8
here s3c44b0_clear_pb(),the irq is 8
here s3c44b0_mask_ack_irq(),the irq is 8
here s3c44b0_unmask_irq(),the irq is 8
sim_info called
Program received signal SIGINT, Interrupt.
0x0c0146c4 in __irq_svc ()
如果我不在flash bank上面放置u-boot.bin,那么运行至
Calibrating delay loop... 就停止
证明u-boot.bin在flash 0地址处的中断向量跳转是存在的
是停在了函数void __init calibrate_delay(void)里面,并且一直都有44b0的timer 5中断
skyeye提示是entry_armv.S的 __irq_svc()出问题,但是不知如何下手?
希望那位大虾指点一下 |
|