• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > s3c6410_init()被調用的流程

    s3c6410_init()被調用的流程

    作者: 時間:2016-11-10 來源:網絡 收藏
    1.s3c6410_init()被調用的流程:
    cpu賦值流程:
    1).定義cpu, __mach_desc_MACH_TYPE_SMDK6410
    static struct cpu_table *cpu;

    #define MACHINE_START(_type,_name)
    static const struct machine_desc __mach_desc_##_type
    __used
    __attribute__((__section__(".arch.info.init"))) = {
    .nr = MACH_TYPE_##_type,
    .name = _name,

    #define MACHINE_END
    };

    static const struct machine_desc __mach_desc_SMDK6410
    .nr = MACH_TYPE_SMDK6410
    .name = "SMDK6410"

    2).
    machine_arch_type==MACH_TYPE_SMDK6410==1626

    MACHINE_START(SMDK6410, "SMDK6410")
    ......................,
    .init_irq = s3c_init_irq,
    .map_io = smdk6410_map_io,
    .fixup = smdk6410_fixup,
    .timer = &s3c_timer,
    .init_machine = smdk6410_machine_init,
    MACHINE_END

    start_kernel()==>setup_arch()===>
    1.mdesc=setup_machine(machine_arch_type)==>lookup_machine_types(MACH_TYPE_SMDK6410) == __mach_desc_SMDK6410
    2.paging_init(mdesc) ==>devicemaps_init(mdesc) ==> mdesc->map_io()==>__mach_desc_SMDK6410->map_io()
    ==>smdk6410_map_io() ==> s3c24xx_init_io() ==> cpu = s3c_lookup_cpu(idcode);

    調用流程:
    arch_initcall(s3c_arch_init)==>s3c_arch_init()==>(cpu->init)()==>s3c6410_init()


    關鍵詞: s3c6410init()被調

    評論


    技術專區

    關閉
    主站蜘蛛池模板: 成武县| 崇明县| 阳江市| 玉山县| 合作市| 岳西县| 福泉市| 大安市| 抚顺市| 丰城市| 大连市| 武强县| 肃宁县| 册亨县| 绵竹市| 苍梧县| 蚌埠市| 南涧| 冕宁县| 新泰市| 塔城市| 石屏县| 沙河市| 汾阳市| 新巴尔虎右旗| 庆安县| 祁东县| 河源市| 长子县| 西乌珠穆沁旗| 通江县| 安陆市| 福建省| 秦皇岛市| 六盘水市| 遂溪县| 剑川县| 清河县| 金寨县| 沁源县| 龙井市|