1、为新的对象创建一个python类
在自己创建的是simpleObject.py,而不是helloObject.py
参照
1、在目录:
gem/gem5-22183ae13998/src/learning_gem5/part2$
下的HelloObject.py ,就是对象Object相对应的python类,
2 然后在该目录下:
创建两个文件,一个.h文件,一个.c文件,
hello_object.hh 、hello_object.cc 、
3注册:
在当前目录:~/gem/gem5-22183ae13998/src/learning_gem5/part2$ 下修改文件:
SConscript
4 重构一下gem5
scons build/ARM/gem5.opt
5 创建新的配置脚本
然后在目录:~/gem/gem5-22183ae13998/configs/learning_gem5/part2$下修改或者添加执行py文件。
run_simple.py
2、调试gem5
执行:启用DRAM调试标志
build/ARM/gem5.opt --debug-flags=DRAM configs/learning_gem5/part1/simple.py | head -n 50
//根据CPU正在执行的确切指令进行调试
build/ARM/gem5.opt --debug-flags=Exec configs/learning_gem5/part1/simple.py | head -n 50
//调试信息
build/ARM/gem5.opt --debug-help
2、2增加一个i虚拟的调试
在/src/learn_gem5/part2/目录中的,SConscript文件中,添加语句:
DebugFlag('Hello')
然后在simple.cc源文件中包含头文件:#include "debug/Hello.hh"
把刚才使用cout<<的句子换成:
DPRINTF(Hello, "Created the hello object\n");
现在就可以重新编译
build/ARM/gem5.opt --debug-flags=Hello configs/learning_gem5/part2/run_simple.py
3、全系统模拟
cd gem5-22183ae13998/ //到目录下
35 ls
36 mkdir fs-image // 创建全系统镜像
37 ls
38 cd fs-image/
39 ls
40 tar -xjf arm-system-2011-08.tar.bz2 //解压
41 ls
42 cd disks/
43 ls
44 sudo mount -o loop,offset=32256 arm-ubuntu-natty-headless.img /mnt //挂载这个镜像到/mnt
45 ls
46 ls /mnt
47 sudo mount --bind /proc /mnt/proc // 把自己系统的proc文件bind到挂载的/mnt/proc,不然这里没有
48 sudo mount --bind /dev /mnt/dev // 同样还有这个dev
49 sudo chroot . //切成root用户失败
50 sudo apt-get install qemu-user-static // 安装模拟器
51 sudo apt-get install qemu qemu-user qemu-system
52 cd /mnt
53 ifconfig
54 sudo chroot .//切成root用户
55 cd ~
56 ls
57 vim hello.c
58 cd -
59 sudo chroot .
#然后在root用户下,把yym用户的~/hello.c文件拷贝过去
(以下在root用户)
echo "nameserver 8.8.8.8">/etc/resolv.conf
apt-get update
apt-get install sysbench
scp yym@10.112.117.147:~/hello.c .
mv hello.c root
cd root
ls
gcc hello.c
./a.out
sysbench --test=cpu --cpu-max-prime=100 run
exit
# 回到yym用户
60 ls
61 sudo umount /mnt/proc
62 sudo umount /mnt/dev
63 sudo umount /mnt
64 cd
65 sudo umount /mnt/
66 ls
3、2把镜像文件挂载到一个目录下
在gem05055555目录下,创建一个临时文件夹
105 mkdir temdir
106 ls
107 sudo mount -o loop,offset=32256 disks/arm-ubuntu-natty-headless.img temdir // 把镜像文件挂载到这个文件夹下
108 ls
109 cd temdir/
110 ls
111 cd root
112 sudo cd root
113 ls root
114 cd
115 ls
116 cd -
117 ls
118 cp ~/hello.c root/
119 sudo cp ~/hello.c root/
120 ls
121 ls root
122 ls root/
123 sudo ls root