devicemaps_init

发布者:幸福的人生最新更新时间:2025-01-08 来源: cnblogs关键字:s5pv210 手机看文章 扫描二维码
随时随地手机看文章


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'


关键字:s5pv210 引用地址:devicemaps_init

上一篇:5.4.10.linux内核的gpiolib学习2
下一篇:ARM启动顺序

推荐阅读最新更新时间:2026-03-21 11:00

S5PV210 三个Camera Interface/CAMIF/FIMC的区别
S5PV210有三个CAMIF单元,分别为CAMIF0 CAMIF1和CAMIF2。对应着驱动中的fimc0, fimc1, fimc2。在三星datasheet和驱动代码中CAMIF和FIMC(Fully Interactive Mobile Camera)这两个术语基本上可以互换的,后面我们都用FIMC代替CAMIF。这两个术语的称呼有很强的模糊性,尤其刚刚接触三星平台,会觉得这三个接口设备都是用来控制camera,实际上三个接口并不局限于只控制camera。 我们先看下datasheet中定义的CAMIF feature - 输入支持 1. ITU-R BT601/656/709 mode 2. DMA模式 3.
[单片机]
S5PV210 移植无线wifi网卡 MT7601
一、准备工作 1、MT7601驱动下载 点击下载 2、插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱动的厂家设备信息 3、解压源码到linux下,确认USB的VID和PID,在rtusb_dev_id.c中 USB_DEVICE_ID rtusb_dev_id = { #ifdef RT6570 {USB_DEVICE(0x148f,0x6570)}, /* Ralink 6570 */ #endif /* RT6570 */ {USB_DEVICE(0x148f, 0x7650)}, /* MT7650 */ #ifdef
[单片机]
<font color='red'>S5PV210</font> 移植无线wifi网卡 MT7601
【ARM裸机s5pv210】Makefile
Linux命令行中输入 make 命令: 1、make 会在当前目录下找名字叫“Makefile”或“makefile”的文件。 2、如果找到,它会找文件中的第一个目标文件(target),并把这个文件作为最终的目标文件。 3、如果 目标文件不存在,或是 目标文件所依赖的后面的 .o 文件的文件修改时间要比 目标文件 这个文件新,那么,他就会执行后面所定义的命令来生成 edit 这个文件。 4、如果 目标文件所依赖的.o 文件也存在,那么 make 会在当前文件中找目标为.o 文件的依 赖性,如果找到则再根据那一个规则生成.o 文件。(这有点像一个堆栈的过程) 5、当然,你的 C 文件和 H 文件是存在的啦,于是 make
[单片机]
【ARM裸机s5pv210 】旧版本交叉编译工具链配置
旧版本交叉编译工具链的安装 1.cd /usr/local/ mkdir arm tar -jxvf arm-2009q3.tar.bz2 cd /usr/local/arm/arm-2009q3/bin bash mk-arm-linux-.sh sudo gedit ~/.bashrc 添加 export PATH=/usr/local/arm/arm-2009q3/bin:$PATH source ~/.bashrc 2.安装32位库 sudo apt-get update apt-get update sudo apt-get install lib32ncurses5-dev 3./usr/local/arm/arm
[单片机]
【ARM裸机s5pv210 】时钟配置
clock.c // 时钟控制器基地址 #define ELFIN_CLOCK_POWER_BASE 0xE0100000 // 时钟相关的寄存器相对时钟控制器基地址的偏移值 #define APLL_LOCK_OFFSET 0x00 #define MPLL_LOCK_OFFSET 0x08 #define APLL_CON0_OFFSET 0x100 #define APLL_CON1_OFFSET 0x104 #define MPLL_CON_OFFSET 0x108 #define CLK_SRC0_OFFSET 0x200 #define CL
[单片机]
S5PV210之beep驱动从linux2.6.35.7移植到linux3.0.8
beep驱动从linux2.6.35.7内核移植到linux3.0.8,修改的部分为:   '='后面的为修改后的   .ioctl  =  .unlocked_ioctl   static int beep_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)   = static int beep_ioctl(struct file *file, unsigned int cmd, unsigned long arg)   beep_ioctl函数中struct inode *inode去掉,原因是b
[单片机]
S5PV210时钟,看门狗定时器
晶振:时钟源(操作主要有两个,倍频,分频) A8的时钟源: 时钟域,每个时钟域(不同的最高频率和最低频率)管理着不同的电路模块: 不同的时钟域对应不同电路模块表 时钟电路:懂得看时钟电路(时钟源选择开关配置(MUX_apll),倍频的配置(APLL),分频的配置(DIV_apll)) 更具体可参看arm,007笔记 ----------------------------------------------------------------------------------------------- 看门狗定时器: 功能: 1、定时器:设置一个定时器基准频率,设置一个超时数据值,数据值根据频率来不断减1,减为0
[单片机]
<font color='red'>S5PV210</font>时钟,看门狗定时器
S5pv210 之sate210 android4.0 linux kernel 触摸屏通道选择
sate210 用的是触摸屏通道1,看一下数据手册有说明 TSSEL Touch screen selection 0 = Touch screen 0 (AIN2~AIN5) 1 = Touch screen 1 (AIN6~AIN9) This bit exists only in TSADCCON0. Note: An access to TSADCCON1 bits is prohibited when TSSEL bit is 0, and an access to TSADCCON0 bits except TSSEL is prohibited when TSSEL bit is 1. An access to T
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved