楼主你好,我是skyeye的新手,你的例子我已经下载下来并经过调试成功。现在我的问题是我想用skyeye模拟我的板s3c44b0.我的skyeye.conf是这样设置的:
cpu: arm7tdmi
mach: s3c44b0
mem_bank: map=M, type=R, addr=0x00000000, size=0x00200000
mem_bank: map=M, type=RW, addr=0x0c000000, size=0x00800000
mem_bank: map=I, type=RW,addr=0x01c00000, size=0x00400000
在你的hello.c里面我把串口输出地址也改成了s33c44b0相应的地址。好了,
make clean
make
之后生成hello的二进制文件,以下是我的详细调试记录:
[root@luofuchong Hello4Skyeye]# skyeye hello
***********************************************************************
**** ****
**** 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
SKYEYE: use arm7100 mmu ops
Connected to the simulator.
(SkyEye) load
Loading section .text, size 0x5b vma 0x1000000
Loading section .data, size 0x1000 vma 0x1002000
Start address 0x1000000
Transfer rate: 33496 bits in <1 sec.
(SkyEye) list
1 /*
2 * hello.c
3 * just a function used to output "helloworld" to uart
4 *
5 * author: SU Hang
6 * date: 2004-08-28
7 */
8 void hello(void)
9 {
10 int i;
(SkyEye)
11 char * hellostr="helloworld";
12 long * paddr=(long*)0x01d00020;
13
14 for(i=0;i<10;i++)
15 {
16 * paddr=hellostr;
17 }
18 return;
19 }
20
(SkyEye) break hello
Breakpoint 1 at 0x100002c: file hello.c, line 14.
(SkyEye) run
Starting program: /home/Hello4Skyeye/hello
由以上调试信息可知,根本还示进入hello子程序进行。但是换回原来的skyeye.conf就可以进入程序 只是没有输出而已,所以我觉得是不是skyeye.conf文件设置有问题,请楼主帮忙指正,感激不尽! |