当前位置: 首页>>代码示例>>C++>>正文


C++ Loader::load_file方法代码示例

本文整理汇总了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
//.........这里部分代码省略.........
开发者ID:walafc0,项目名称:tsar,代码行数:101,代码来源:top.cpp


注:本文中的Loader::load_file方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。