QEMU中TCG翻译流程 |
您所在的位置:网站首页 › 罗技键盘双击怎么解决 › QEMU中TCG翻译流程 |
声明:本文使用的qemu源码版本为qemu-3.1.0-rc0 前言:qemu中采用事件驱动架构和并行架构相结合的方式来工作的。qemu中的线程主要有Vcpu线程,main_loop线程、I/O线程和workthread线程,其中main_loop属于主线程。 1. 翻译流程总体框架 2. 具体流程 1> 在vl.c的main函数中创建单板machine current_machine = MACHINE(object_new(object_class_get_name(OBJECT_CLASS(machine_class))));2> 在启动单板的过程中选择了单板的参数如: ./qemu-system-ppc -M mac99此时会调用mac99单板对应的模型,其建模过程对应qemu源码中的hw\ppc\mac_newworld.c文件 3> 初始化CPU(mac_newworld.c中调用) core99_machine_class_init->(mc->init=ppc_core99_init)mac_newworld.c函数中ppc_core_init函数创建CPU具体过程如下: for (i = 0; i < smp_cpus; i++) { cpu = POWERPC_CPU(cpu_create(machine->cpu_type)); env = &cpu->env; /* Set time-base frequency to 100 Mhz */ cpu_ppc_tb_init(env, TBFREQ); qemu_register_reset(ppc_core99_reset, cpu); }其中其中 cpu = POWERPC_CPU(cpu_create(machine->cpu_type))实现对于CPU的创建,其函数调用具体如下:(该函数原型位于cpu.c文件中) CPUState *cpu_create(const char *typename) { Error *err = NULL; CPUState *cpu = CPU(o |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |