S5PV210简介
S5PV210是基于ARM Crotex-A8架构32位CPU的微处理器。
内部拥有32根地址线和32位数据线,32根地址线决定了CPU的地址空间最大为4G,这4G的内存空间如何分配,就是内存映射
S5PV210内存映射
S5PV210 datasheet中section 01_02章节 MEMORY MAP有讲。
内存分布图如下
内存分布表如下
专业名词解释
ROM : Read Only Memory 只读存储器(只不能直接通过地址总线更改数据的存储器)
RAM : Ramdom Access Memory 随机访问存储器 (随机存储器,指可以随便在任何一个地址读写数据,例如内存;与之对应的是顺序存储器,必须按照顺序进行读写,想读取第二个数据,必须先读出第一个数据,再读出第二个数据,例如Flash)
IROM : Internal ROM 内部ROM,集成在SOC上的ROM
IRAM : Internal RAM 内部RAM,集成在SOC上的RAM
DRAM : dynamic RAM 动态RAM(电容式存储,需要不断刷新才能保存数据)
SRAM : static RAM 静态RAM(具有静态存取功能,不需要刷新电路)
DRAM和SRAM的区别:
SRAM优点:速度快,使用简单,不需要刷新,静态功耗极低。
缺点:元件数多,集成度低,运行功耗大。
DRAM优点:集成度远高于SRAM,功耗低,价格便宜
缺点:需要刷新,外围电路复杂,刷新也使存取速度较慢。
SDRAM : synchronous dynamic random access memory 同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
SROMC_BANK0 : SROM contrler BANK0 (SROM 控制器单元0)。
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。
S5PV210内存映射讲解
DRAM0 DRAM1 说明S5PV210能够外接两块内存芯片,支持的最大地址空间分别是 512MB和1GB,也就是说最大支持1.5G的内存。
SROMC_BANK0 - SROMC_BANK5,是六个SROM控制器单元,能够外接六个SROM器件,如 网卡芯片等。
此外还有两个 IROM&IRAM,具体分布情况如下
零地址处 IROM&IRAM,其实并不存在,而是映射自0xD000_0000 - 0xD800_0000的IROM&IRAM,或者SROM_BANK0-SROM_BANK5,从而可以选择多种启动方式。
关键字:ARM裸机 S5PV210 内存映射
引用地址:
朱老师ARM裸机学习笔记(二):S5PV210的内存映射
推荐阅读最新更新时间:2024-03-16 15:35
Linux之ARM(IMX6U)裸机汇编LED驱动实验--驱动编写
1. I.MX6ULL的初始化 ①、使能时钟 使能时钟。CCGR0–CCGR6这七个寄存器控制着I.MX6ULL所有外设时钟的使能,为了简单,设置CCGR0–CCGR6这七个寄存器全部为0xFFFFFFFF,相当于使能所有的外设时钟 CCGR0: CCGR1: CCGR2: CCGR3: CCGR4: CCGR5: CCGR6: 汇编使能所有的外设时钟: ②、配置 GPIO_I003 PIN的复用为GPIO 将IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3-0,设置为0101,这样GPIO_IO03就复用为GPIO 汇编实现: ③、配置 IOMUXC_SW_P
[单片机]
朱老师ARM裸机学习笔记(七):汇编写启动代码之调用C语言
实验环境说明 硬件平台:飞凌嵌入式OK210开发板(S5PV210) 说明:开发板已经刷入OK210原厂u-boot,本文程序直接下载进CPU iRAm中运行 软件平台:Ubuntu15.10 + arm-linux-gcc 4.4.3 初始化栈 1、C语言运行需要栈空间来存储临时变量和函数调用时的所占用的空间。我们在操作系统下写的应用程序以及其他一些单片机程序不需要设置栈是因为,操作系统或者单片机内置的代码已经初始化过栈空间,所以我们可以直接使用,但是ARM需要我们自己初始化栈。 2、栈又分为,满减栈,满增栈,空增栈和空减栈之分。而ATPCS(ARM-THUMB procedure call standard(ARM-Thum
[单片机]
【ARM裸机】 - 中断与异常
中断与异常 这节重点理解,对于一个CPU,如S3C2440,它的中断控制器所起的硬件作用,即当中断触发时,硬件本身会强迫CPU到异常向量表的地址处执行其中一条,这是硬件强行完成的跳转操作;之后跳转到中断处理程序,此部分由程序员来实现,一般需要做:1、保护现场 2、执行处理程序 3、回复现场。 理解中断带来的好处,节省了CPU资源,是操作系统中的基础。 ARM的7中工作模式 ARM的2种状态:ARM指令集与Thumb指令集的区别 1、中断控制器 一个事件的处理往往有两种方式: 中断方式 轮询方式 轮询方式比较简单,在死循环中没隔一定时间,进行一次判断事件是否发生,比较耗费资源。 中断方式相对复杂一点,但是节省资源
[单片机]
S5PV210(TQ210)学习笔记——系统时钟和串口
TQ210的系统时钟配置和串口配置非常简单,本文从TQ210的系统时钟配置开始讨论。 TQ210的时钟配置跟2440/6410的时钟配置差不多,只是锁相环的个数略有不同,配置步骤是一样的。配置系统时钟,无非要经过以下几个步骤: (1)设置系统PLL锁定时间 (2)配置PLL (3)配置各模块分频系数 (4)切换到PLL时钟 简单的看着四步似乎没有头绪,但是看到手册中的 S5PV210时钟生成线路图 就可以理解了,现在截图如下: 上图中无非就三种模块,PLL、MUX和DIV,MUX控制时钟源选择,PLL负责生成PLL时钟,DIV负责分频。 为了系统稳定,在设计电路时我们一般不会使用太高频率的晶振(避免高频线间/层间干
[单片机]
STM32从写内存到寄存器映射点亮LED
写内存 寄存器映射(1) 通过绝对地址的强制类型转换。 寄存器映射(2) 定义寄存器结构体,把外设基地址通过强制类型转换,转换成相应外设的结构体指针。这样就可以通过外设基地址访问结构体成员来操作外设寄存器。 寄存器映射(3) 提高可读性,编写端口的置位复位函数,两个形参。 寄存器映射(4) 定义初始化结构体,把能够涉及到配置到的寄存器参数全部枚举出,例如速度、模式。使用时可以把枚举出的变量写到初始化结构体里,最后调用外设的初始化函数 ,把结构体里配置好的成员写到相应的寄存器里,实现配置寄存器。 宏定义提高可移植性。
[单片机]
纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)
说明:我也是调试u-boot,在win下OK了,基于这里,然后为了完全在linux下便有了下边转载的内容。下文会对照我自己的操作进行结果补充!感觉补充的多于转载的就改为原创了,让更多人看到! 一直想摆脱windows环境,在纯linux下进行arm裸机开发,但是由于一直不知道JLink如何在linux下运行和配置,一直无法进行下去。以前都是windows+AXD调试。包括本人用的FL2440开发板和JLink调试器也没有提供在linux调试的文档。前些天由于想研究下U-BOOT的源代码,不得不在linux下编译,就google到了众多大牛的帖子,且找到了JLink的官方linux版。综合各位大牛的经验,最终成功的在纯lin
[单片机]
ARM裸机篇(二)——i.MX6ULL启动过程
一、 i.MX6ULL启动流程 I.MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 i.MX6UL完整的启动流程如下图所示,完成启动任务的代码位于0x0000 0000 地址处的Boot ROM。 启动流程过程大致可分为六步。①检查CPU的ID ,②检查复 位状态,③获取启动方式,④加载程序映像,⑤校验映像,⑥跳转到映像去执行。 i.MX6ULL有四个启动模式,如下表,具体使用哪种启动模式通过内部寄存器 BOOT_MODE 中的值来选择,如图: 当 BOOT_MODE 设置为内部 BOOT 模式以后,所谓“内部”是相对于“Serial Down
[单片机]
S5PV210(TQ210)学习笔记——Nand驱动之HWECC
前几天匆忙间发了一篇关于S5PV210的8位HWECC驱动的文章,但是后来发现存在严重的Bug,就将原来那篇文章删除了,这里先说声抱歉,但是,HWECC能有效的节省CPU占用量,我仔细调试了S5PV210的HWECC部分,现在刚调好1位的HWECC,为了表示误发原来那篇文章的歉意,现在将代码放在这里,与大家分享: #include linux/module.h #include linux/platform_device.h #include linux/clk.h #include linux/io.h #include linux/slab.h #include linux/mtd/mtd.h
[单片机]