本文整理汇总了C++中Loader::load_file方法的典型用法代码示例。如果您正苦于以下问题:C++ Loader::load_file方法的具体用法?C++ Loader::load_file怎么用?C++ Loader::load_file使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Loader
的用法示例。
在下文中一共展示了Loader::load_file方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _main
int _main(int argc, char *argv[])
{
#ifdef _OPENMP
omp_set_dynamic(false);
omp_set_num_threads(5);
std::cerr << "Built with openmp version " << _OPENMP << std::endl;
#endif
struct param_s param = PARAM_INITIALIZER;
/* parse arguments */
args_parse(argc, argv, param);
/*
* mapping tables
*/
/* data mapping table */
MappingTable maptabp(32, IntTab(0, 16), IntTab(0, srcid_width), 0xF0000000);
/* ram */
maptabp.add(Segment("mc_m", MEMC_BASE, MEMC_SIZE, IntTab(0, 0), true));
maptabp.add(Segment("boot", BOOT_BASE, BOOT_SIZE, IntTab(0, 1), true));
/* uncached peripherals */
maptabp.add(Segment("xicu", XICU_BASE, XICU_SIZE, IntTab(0, 2), false));
maptabp.add(Segment("tty", MTTY_BASE, MTTY_SIZE, IntTab(0, 3), false));
maptabp.add(Segment("bd", BD_BASE, BD_SIZE, IntTab(0, 4), false));
maptabp.add(Segment("fb", FB_BASE, FB_SIZE, IntTab(0, 5), false));
std::cout << maptabp << std::endl;
/* xram mapping table */
MappingTable maptabx(32, IntTab(8), IntTab(8), 0x30000000);
maptabx.add(Segment("xram", MEMC_BASE, MEMC_SIZE, IntTab(0), false));
std::cout << maptabx << std::endl;
/*
* components
*/
Loader loader;
loader.load_file(param.rom_path);
loader.memory_default(0x5c);
#ifdef CONFIG_GDB_SERVER
typedef GdbServer<Mips32ElIss> proc_iss;
proc_iss::set_loader(loader);
#else
typedef Mips32ElIss proc_iss;
#endif
if (param.dummy_boot == true)
{
/* boot linux image directly */
uint64_t entry_addr = loader.get_entry_point_address();
std::cout << "setResetAdress: " << std::hex << entry_addr << std::endl << std::endl;
proc_iss::setResetAddress(entry_addr);
}
VciCcVCacheWrapper<vci_param, dspin_cmd_width, dspin_rsp_width, proc_iss > **proc;
proc = new VciCcVCacheWrapper<vci_param, dspin_cmd_width, dspin_rsp_width,
proc_iss >*[param.nr_cpus];
for (size_t i = 0; i < param.nr_cpus; i++)
{
std::ostringstream o;
o << "ccvache" << "[" << i << "]";
proc[i] = new VciCcVCacheWrapper<vci_param, dspin_cmd_width,
dspin_rsp_width, proc_iss >(
o.str().c_str(), // name
i, // proc_id
maptabp, // direct space
IntTab(0, i), // srcid_d
i, // cc_global_id
8, 8, // itlb size
8, 8, // dtlb size
4, 64, 16, // icache size
4, 64, 16, // dcache size
4, 4, // wbuf size
0, 0, // x, y Width
MAX_FROZEN_CYCLES, // max frozen cycles
param.trace_start_cycle,
param.trace_enabled);
}
VciSimpleRam<vci_param_ext> xram("xram", IntTab(0), maptabx, loader);
VciSimpleRam<vci_param> rom("rom", IntTab(0, 1), maptabp, loader);
VciMemCache<vci_param, vci_param_ext, dspin_rsp_width, dspin_cmd_width>
memc("memc",
maptabp, // direct space
maptabx, // xram space
IntTab(0), // xram srcid
IntTab(0, 0), // direct tgtid
0, 0, // x, y width
16, 256, 16, // cache size
3, // max copies
4096, 8, 8, 8, // HEAP size, TRT size, UPT size, IVT size
//.........这里部分代码省略.........