TINY4412 驱动开发学习笔记整理---内存管理篇
来源:互联网 发布:如何减腓肠肌 知乎 编辑:程序博客网 时间:2024/05/01 11:36
Exyons 4412内存管理
1)、RAM 随机访问存储器
(1)、SRAM 静态RAM(RAM 内容不需要刷新,数据会一直保存)
(2)、DRAM 动态RAM(RAM 内容需要动态刷新,要不然过一段时间,RAM里面的数据就会丢失)
(a)、SDRAM 同步DRAM,(同步的意思是对RAM的读写需要同步时钟)
(b)、DDRAM 双倍速率同步DRAM,(同步的意思是对RAM的读写需要同步时钟)
2)、ROM 只读存储器
(1)、PROM 一次性可编程ROM
(2)、EPROM 紫外线檫除ROM
(3)、EEPROM 电檫除ROM
3)、Exyons 4412 内存映射
0x0000_0000 0x0001_0000 64 KB iROM
0x0200_0000 0x0201_0000 64 KB iROM (mirror of 0x0 to 0x10000)
0x0202_0000 0x0206_0000 256 KB iRAM
0x0300_0000 0x0302_0000 128 KB Data memory or general purpose of Samsung Reconfigurable Processor SRP.
0x0302_0000 0x0303_0000 64 KB I-cache or general purpose of SRP.
0x0303_0000 0x0303_9000 36 KB Configuration memory (write only) of SRP
0x0381_0000 0x0383_0000 – AudioSS's SFR region
0x0400_0000 0x0500_0000 16 MB Bank0 of Static Read Only Memory Controller (SMC)(16-bit only)
0x0500_0000 0x0600_0000 16 MB Bank1 of SMC
0x0600_0000 0x0700_0000 16 MB Bank2 of SMC
0x0700_0000 0x0800_0000 16 MB Bank3 of SMC
0x0800_0000 0x0C00_0000 64 MB Reserved
0x0C00_0000 0x0CD0_0000 – Reserved
0x0CE0_0000 0x0D00_0000 – SFR region of Nand Flash Controller (NFCON)
0x1000_0000 0x1400_0000 – SFR region
0x4000_0000 0xA000_0000 1.5 GB Memory of Dynamic Memory Controller (DMC)-0
0xA000_0000 0x0000_0000 1.5 GB Memory of DMC-1
Exyons 4412 启动顺序
1)Exyons 4412 包含64Kb(IROM)与256Kb SRAM(iRAM) 内部内存
2)Exyons 4412 支持的启动设备
(1)NAND FLASH
(2)SD/MMC
(3)eMMC
(4)USB
3)当系统重启(reset),程序会从iROM开始执行
4)boot loader包含两个阶段
(1)IROM中包含简单的初始化soc程序
(2)First bootloader(BL1):程序存储在外部内存中
(3)Second bootloader(BL2):针对与特定平台,并存储在外部内存设备中
5)Exyons 4412启动过程
<Exyons 4412 datasheet>pg91
(1)当系统重启时会从iROM中执行,用来初始化最基本的系统功能,如时钟和堆栈
(2)iROM会从引导设备中加载BL1镜像到internal 256 KB SRAM,引导设备的选择由Operating Mode (OM) pins
(3)BL1阶段初始化系统时钟,DRAM控制器,在加载bootloader到DRAM中
(4)引导完成之后,会跳转到bootloader执行
Notes: pc程序计数器
(1)用于存放下一条指令的地址
(2)为了保证程序能够连续执行,cpu使用pc来完成
(3)程序开始执行之前,pc的值固定为0地址(reset之后)
(4)pc的内容是指令的地址,将指令所在的内存单元地址送入pc
(5)在执行指令时,cpu将自动修改pc的内容,增加的大小为指令的长度,即pc总是指向下一条指令的地址
后记:低层驱动的开发常常需要我们直接操作内存,那么就要了解4412是如何管理内存的,一起加油喽!
- TINY4412 驱动开发学习笔记整理---内存管理篇
- TINY4412 驱动开发学习笔记整理--环境搭建篇
- TINY4412 驱动开发学习笔记整理--ARM体系结构篇
- <学习笔记>Windows驱动开发技术详解__Windows内存管理
- <学习笔记>Windows驱动开发技术详解__Windows内存管理
- Android深度探索:HAL与驱动开发学习笔记--内存管理(学习重点)
- tiny4412开发板蜂鸣器驱动
- 驱动 内存管理 学习
- iOS学习笔记01_内存管理的整理
- C++-内存管理(整理笔记)
- C++内存管理(整理笔记)
- C++-内存管理(整理笔记)
- JVM内存管理学习整理
- JVM内存管理学习整理
- 第四十二天:Tiny4412模块驱动开发
- tiny4412开发板LED灯驱动写法
- ①tiny4412 Linux驱动开发之蜂鸣器
- ②tiny4412 Linux驱动开发之KEY
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- POJ 3080 Blue Jeans
- URAL 1551 Sumo Tournament
- apache中openssl,no ssl,ftp,还有fcgid的区别
- eclipse maven 插件
- TINY4412 驱动开发学习笔记整理---内存管理篇
- VB.NET版机房收费系统---外观层如何写
- CentOS下源码安装PostgreSQL
- tomcat 7 源码分析
- jQuery Fancybox插件使用参数详解
- 各种指针分类总结 + 指针间的赋值关系
- windows内核模式开发常用知识
- 统一D3D与OpenGL坐标系统
- Android的多媒体数据库