OK6410内存及启动流程
一、内存
只是从大体上介绍,并没有涉及寄存器的操作
6410的系统资源为:256MB DDR 、2GB NANDFlash
如下图所示:
ROM是只读存储器,RAM是随机存储器。
区别:
1.ROM(Read Only Memory)掉电数据不丢失,但存储读取速度慢,所以常用作存放程序,存放bootloader,存放内核,存放文件系统。
2.RAM(Random Access Memory)掉电数据丢失,但存取速度快,常用作内存
3.RAM还分为SRAM静态随机存储器(不用不断刷新就可以读取数据,速度快但是造价也高和DRAM动态随机存储器(要不断刷新才能存储读取数据,造价相对较低)
4.DRAM还可以分为SDRAM、DDR、DDR2等,DDR的传输速率为SDRAM的2倍,而DDR2的传输速率为DDR的2倍。一般是2440板子用的SDRAM作为内存,6410板子用DDR作为内存,210板子用DDR2作为内存
5.nandflash不能运行程序,只能存储数据、动引导系统,而在 SDRAM 上执行主程序代码
二、启动
1.启动方式
6410支持很多种启动方式
可以看出,SROM(NORFLASH) 、oneNAND (一种特殊的NANDFlash(既具有norflash特性也具有nandFlash的特性)、MODEN
、IROM(intern rom)一共四种启动方式,其中IROM又可分为SD和NAND启动
2.下载
主要讲解从NANDFlash启动。
看下图
上图为6410的物理内存空间,从图中可以看出,DRAM的地址起始位0x5000000,当我们使用 #/home/dnw uboot.bin 0x50000000 命令下载uboot时候,会把uboot.bin下载到SDRAM中去,同时SDRAM又会uboo.bin拷贝到NANDFlash去,保存起来。
同时,发现一个很奇特现象,我输入的下载地址为50000000可是串口却显示下载到50008000这个地址去,为了试验,我分别把下载地址改为0x53000000和0x1000000,但是串口却依然显示下载地址为50008000,经过询问,才得知,当从SD卡启动下载uboot的时候,SD卡上的uboot是官方的,他们就将下载地址固定为50008000,所以你在虚拟机Linux中不管输入的地址为多少,下载的时候就会自动下到50008000这个地址去。
3.启动流程
和其他的芯片有些不同
1.上电的时候,iROM里面的内容先运行,iROM里面存放着芯片厂商固化好的程序
2.会有引导程序,把NAND里面前8KB的内容拷贝到Stepping stone,若uboot大于8KB,则uboot程序里面的一段程序会把大于8KB的内容从NAND拷贝到DDR去,在DDR中运行
4.内核启动地址
6410的内核下载命令一般为 #tftp uImage 0xc0008000
其中的c0008000为虚拟地址,是物理地址0x50008000映射过去的,前提是,你的uboot已经打开了MMU功能,若uboot没有打开MMU功能,则下载地址为0x50008000
OK6410内存及启动流程相关推荐
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 : -- u-boo ...
- JVM启动流程和内存结构
"Great haste makes great waste" JVM启动流程 JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自 ...
- [架构之路-25]:目标系统 - 系统软件 - bootloader uboot内存映射与启动流程
目录 第1章 uboot概述 1.1 概述 1.2 内存映射(案例) 1.3 uboot在嵌入式系统启动中的位置 第2章 uboot启动流程(源码分析) 2.1 入口函数:_start 2.3 执行流 ...
- 【嵌入式开发】ARM 代码搬移 ( ARM 启动流程 | 代码搬移 起点 终点 | 链接地址 | 汇编代码 )
文章目录 一. ARM 启动流程 1. 各种类型开发板启动流程 ( 1 ) 2440 开发板启动流程简介 ( ① Nand Flash 拷贝 4 KB -> SRAM 垫脚石 | ② PC 指向 ...
- Centos 6启动流程详解
author:JevonWei 版权声明:原创作品 Centos6 启动流程 POST开机自检 当按下电源键后,会启动ROM芯片中的CMOS程序检查CPU.内存等硬件设备是否正常运行,CMOS中的程序 ...
- 2014.4新版uboot启动流程分析
原文 http://blog.csdn.net/skyflying2012/article/details/25804209 此处转载有稍作修改 最近开始接触uboot,现在需要将2014.4版本ub ...
- 解析并符号 读取dll_Spring IOC容器之XmlBeanFactory启动流程分析和源码解析
一. 前言 Spring容器主要分为两类BeanFactory和ApplicationContext,后者是基于前者的功能扩展,也就是一个基础容器和一个高级容器的区别.本篇就以BeanFactory基 ...
- leveldb源码分析:Open启动流程
leveldb概述 Leveldb 是一个持久化的KV存储系统,主要将大部分数据存储在磁盘上,在存储数据的过程中,根据记录的key值有序存储,当然使用者也可以自定义Key大小比较函数,一个leveld ...
- Nginx源码分析:启动流程
nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> nginx简介 Nginx的作为服务端软件,表现的主要特点是更快.高扩展.高可靠性.低内存消 ...
- 嵌入式学习笔记之四 (uboot启动流程)
1.boot ROM阶段 CPU 上电之后执行的第一段代码并不是 uboot 代码,因为 uboot 存储在启动介质(存储介质),如eMMC Flash.NAND Flash.SD 卡,CPU 想要执 ...
最新文章
- silverlight bing maps sdk MapControl Sdk
- 计算机视觉摔倒检测,基于计算机视觉的室内跌倒检测
- linux第一季运维001
- JFinal model简单包装,版本2
- 认识FPGA触发器的亚稳态
- MDB!= JMS,反之亦然
- 浏览器访问pdf 的url怎么加密_怎么解决加密的pdf文件?
- python自动化是什么意思_浅谈 Python 自动化
- Google 的核心 Java 库 guava 常用工具类
- Java生成随机数原理_JAVA随机数生成的机制
- 平板电脑(台电x80HD)安装Ubuntu18.04教程- Z3735系列CPU通用
- 【汇编】2、从汇编源码逐步分析函数调用过程
- 苹果CMS采集,苹果MacCMS采集插件
- R语言画图教程之盒形图
- SEO人员应该突破的5大思想误区
- ubuntu 安装截图工具 Shutter,并设置快捷键 Ctrl+SuperL
- 小麦苗的微信公众号开通啦,欢迎大家扫码关注
- Android手机屏幕变化监听
- ArchSummit深圳2016优秀演讲公布,北京站专题抢先看
- 如何复制网页上不能复制的文本!!!
热门文章
- pat乙级【数列的片段和 (20分)】测试样例修改(第二个测试点)
- Android Fingerprint完全解析(二) :Fingerprint启动流程
- wincc安装服务器系统,wincc7.4安装硬件要求
- 多个txt文件合并成一个txt文件、多个csv文件合并成一个csv文件
- 通过tasker实现朗读微信QQ文字消息
- 芋道Docker部署
- Ubuntu18.04 Deb 包安装方法
- 苹果电脑一直密码错误_您可能一直都在犯的安全和密码错误
- 在QT界面中使用ico/png等图片文件,生成exe后不依赖外部文件
- php7.0项目在本地完美运行上传至服务器手机app不显示数据