新聞中心

        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()被調

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西青区| 河池市| 武山县| 凤城市| 平阳县| 永仁县| 东至县| 万州区| 西宁市| 山丹县| 丰原市| 永嘉县| 锡林浩特市| 昭觉县| 乌鲁木齐县| 乌拉特中旗| 葫芦岛市| 兴化市| 互助| 麻栗坡县| 桃源县| 梅河口市| 承德县| 新兴县| 新建县| 辛集市| 丰都县| 临江市| 靖西县| 准格尔旗| 璧山县| 城步| 南汇区| 郑州市| 拉孜县| 英超| 孝义市| 包头市| 兴国县| 上虞市| 湖北省|