gem5修改002

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  ls36  mkdir fs-image  // 创建全系统镜像37  ls38  cd fs-image/39  ls40  tar -xjf arm-system-2011-08.tar.bz2   //解压41  ls42  cd disks/43  ls44  sudo mount -o loop,offset=32256 arm-ubuntu-natty-headless.img /mnt  //挂载这个镜像到/mnt45  ls46  ls /mnt47  sudo mount --bind /proc /mnt/proc  // 把自己系统的proc文件bind到挂载的/mnt/proc,不然这里没有48  sudo mount --bind /dev /mnt/dev  // 同样还有这个dev49  sudo chroot .  //切成root用户失败50  sudo apt-get install qemu-user-static  // 安装模拟器51  sudo apt-get install qemu qemu-user qemu-system52  cd /mnt53  ifconfig54  sudo chroot .//切成root用户55  cd ~56  ls57  vim hello.c58  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.outsysbench --test=cpu --cpu-max-prime=100 run exit# 回到yym用户60  ls61  sudo umount /mnt/proc62  sudo umount /mnt/dev63  sudo umount /mnt64  cd65  sudo umount /mnt/66  ls

3、2把镜像文件挂载到一个目录下

在gem05055555目录下,创建一个临时文件夹

105  mkdir temdir106  ls107  sudo mount -o loop,offset=32256 disks/arm-ubuntu-natty-headless.img temdir  // 把镜像文件挂载到这个文件夹下108  ls109  cd temdir/110  ls111  cd root112  sudo  cd root113  ls root114  cd115  ls116  cd -117  ls118  cp ~/hello.c root/119  sudo cp ~/hello.c root/120  ls121  ls root122  ls root/123  sudo ls root