zoukankan      html  css  js  c++  java
  • devicemaps_init

    devicemaps_init:

      1.  设置向量表映射:向boot_mem申请1page得到vectors=c0c3e000,映射的虚拟地址ffff0000,映射一个page,

             映射过程是先向boot_mem申请1page用于存储pte,这里一共1024个项512用于mmu(可映射2MB)另外512Linux维护

      2.  调用mdesc->map_io()  (soc层操作操作函数)将物理IO映射到虚拟地址,设置了时钟,gpio等

           smdkc110_map_io: arch/arm/mach-s5pv210/mach-x210

             s5p_init_io: 位于arch/arm/plat-s5p/cpu.c,(s5p系列层)IO初始化函数

               iotable_init(s5p_iodesc, ARRAY_SIZE(s5p_iodesc)):(s5p系列层)

                 映射s5p系列7块IO

                   https://www.cnblogs.com/genshu123/p/11330479.html

               idcode = __raw_readl(cpuid_addr);获取CHIPID:0x43110220

               s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids)):(s5p系列层)

                 获取s5p系列层到子层的接口cpu并调用cpu->map_io()(子层操作函数)

                 https://www.cnblogs.com/genshu123/p/11330575.html

                s3c24xx_init_clocks(24000000);(samsung层)

               调用子层的接口cpu(cpu->init_clocks)(24000000)初始化时钟

               https://www.cnblogs.com/genshu123/p/11331689.html

             s5pv210_gpiolib_init:gpio初始化

             s3c24xx_init_uarts:初始化串口

             s5p_reserve_bootmem 

               media_devs = smdkc110_media_devs;

               nr_media_devs = ARRAY_SIZE(smdkc110_media_devs)=10;

               为传进来的元素从boot_mem分配一定的内存

             s3c_device_nand.name = "s5pv210-nand";

             s5p_device_rtc.name = "smdkc110-rtc"

                  

             

  • 相关阅读:
    Java集合(容器)学习
    Java中最基本的集合接口:初识Collection
    Java中的Overload和Override有什么区别
    Java程序国际化学习代码一
    Java中的io流学习(了解四大基类和基本步骤)
    忘记电脑连过的WiFi的密码了,但又想知道,该怎么办?
    你真的理解了for循环吗?反正我是没有
    Java中的“==操作符”和equals方法有什么区别
    Java中final、finally、finalize有什么区别?
    Thread--线程工作万花筒
  • 原文地址:https://www.cnblogs.com/genshu123/p/11326590.html
Copyright © 2011-2022 走看看