s3c2440上的nor flash启动与nand flash启动的区别

2023-11-09

nor flash启动与nand flash启动的区别

1)接口区别:
NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。
NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。
通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。而且都是在一个总线完成的。
结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash.


2)性能区别

NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快很多。
● NAND的4ms擦除速度远比NOR的5s快。
● 大多数写入操作需要先进行擦除操作。
● NAND的擦除单元更小,相应的擦除电路更少。


===========================================


ARM的nor flash与nand flash启动过程区别


B,s3c2440启动过程详解
1 :地址空间的分配
2 :开发板上一般都用SDRAM做内存,flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线
3 :nandflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码)
4 :s3c2440总共有8个内存banks
  6个内存bank可以当作ROM或者SRAM来使用
  留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样)
  7个bank的起始地址是固定的,还有一个灵活的bank的内存地址,并且bank大小也可以改变
5 :s3c2440支持两种启动模式:NAND和非NAND(这里是nor flash)。
具体采用的方式取决于OM0、OM1两个引脚
OM[1:0所决定的启动方式
OM[1:0]=00时,处理器从NAND Flash启动
OM[1:0]=01时,处理器从16位宽度的ROM启动
OM[1:0]=10时,处理器从32位宽度的ROM启动。
OM[1:0]=11时,处理器从Test Mode启动。


当从NAND启动时
    cpu会自动从NAND flash中 读取前4KB 的数据放置在 片内SRAM里 (s3c2440是soc), 同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000) 。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行。


当从非NAND flash启动时
    nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

s3c2440上的nor flash启动与nand flash启动的区别 的相关文章

  • 使用 QEMU 模拟 Big Endian ARM 系统

    是否可以编译一些 Linux 内核并通过 QEMU 运行它 模拟一些 Big Endian ARM 处理器 如果 QEMU 无法做到这一点 我很想知道其他可以做到这一点的系统模拟器 我的基本目标是在尽可能多的本机环境中运行和调试专用的 Bi
  • Pandaboard 交叉编译 Qt

    我花了几周的时间尝试为我的 Panda 板交叉编译 Qt 但没办法 我无法通过 configure 如果有人能给我帮助 我将不胜感激 我的主机系统是Ubuntu 13 04 86 64位 在Virtualbox中运行 我的目标系统是 Pan
  • 理解这部分手臂的汇编代码

    syntax unified thumb cpu cortex m4 arch armv7e m fpu fpv4 sp d16 Changes from unprivileged to privileged mode thumb func
  • 将 ZeroMQ 交叉编译为 ARM,以便在 MonoTouch iPhone 应用程序配置设置中使用

    我正在尝试在使用 MonoTouch 用 C 开发的 iPhone 应用程序中使用 ZeroMQ 库 我几乎解决了所有的问题 却在最后一道坎倒下了 我正在使用 ZeroMQ 2 1 10 和 C CLR 绑定 包装器 并在 Mac OS X
  • 如何在 ARM 架构上从 RAM 运行代码

    我正在对 ARM Cortex R4 进行编程 并且有一些二进制文件 我想从 TCRAM 执行它们 只是为了看看性能的提升是否足够好 我知道我必须编写一个函数来将二进制文件复制到 RAM 这可以通过链接器脚本来完成 并且知道二进制文件的大小
  • 如何修改内核DTB文件

    Summary 我目前正在为定制板编译 Linux 内核 内核 模块和 DTB 以及一些定制驱动程序 有时 我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序正在寻找的内容 现在 我可以解决此问题的唯一方法是修改 DTS
  • 警告:可加载部分“my_section”位于 ELF 段之外

    我使用 Cortex R4 的 Arm Compiler v6 9 构建了一个 axf elf 文件 但是 当我使用 Arm MCU Eclipse J link GDB 插件将其加载到目标时 它无法加载我的段的初始化数据 如果我使用 Se
  • 用于 RHEL 的 gdb-multiarch

    我正在尝试寻找方法来运行gdb 多架构RHEL 中的命令 我已经安装了用于 ARM 处理的 QEMU 模拟器 我想安装GDB进行调试 我能够安装GDB 多体系结构在 Ubuntu 中运行命令成功 sudo apt get GDB multi
  • DSP 库 - RFFT - 奇怪的结果

    最近我一直在尝试在我的STM32F4 Discovery评估板上进行FFT计算 然后将其发送到PC 我已经调查了我的问题 我认为我对制造商提供的 FFT 函数做错了 我正在使用 CMSIS DSP 库 现在我一直在用代码生成样本 如果工作正
  • ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?

    MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
  • C 嵌入式应用程序中 time() 函数的问题

    我在用time 在 ARM 微控制器上 处理器一到达此函数就会重新启动 奇怪的是 当我处于调试模式时 代码运行得很好 但一旦我想将其应用到独立模式 我就会遇到重置 我是否忽略了什么 这个功能有替代品吗 代码部分是这样的 include
  • ARM 中只有两个操作数的 ADD 或 SUB

    我正在学习ARM汇编语言 我读过 ADD 应该有 3 个操作数 然而 我见过很多案例 现实中只有两种 例如 STR R1 SP 0x20 var 1C LDR R1 a lua 0x1DE4E6 MOVS R0 R4 haystack AD
  • 读取和打印手臂组件中的字符串

    我正在使用 ARMSim 刚刚开始学习汇编 所以如果我看起来一无所知 请原谅我 但我正在尝试从输入文件中读取字符串 然后将其打印到输出屏幕 到目前为止我有 equ SWI Open 0x66 open a file equ SWI Clos
  • 分析 Cortex-M7 (stm32f7) 上的 memcpy 性能

    简洁版本 从 GNU ARM 工具链中提取的 memcpy 的性能指标在 ARM Cortex M7 上对于不同的副本大小似乎差异很大 即使复制数据的代码始终保持不变 这可能是什么原因造成的 长版 我是使用 GNU Arm 工具链 11 2
  • 如何使用 Neon SIMD 将无符号字符转换为有符号整数

    如何转换变量的数据类型uint8 t to int32 t使用霓虹灯 我找不到执行此操作的任何内在因素 假设您想要将 16 x 8 位整数的向量转换为 4 个 4 x 32 位整数的向量 您可以通过首先解压缩为 16 位 然后再次解压缩为
  • 产生并处理软件中断

    有人可以告诉我如何在Linux下生成软件中断然后用request irq处理它吗 或者也许这是不可能的 您可以使用软中断来代替 您可以通过编辑 include linux interrupt h 来定义您的 sofirq 然后使用函数 ra
  • 是否可以将 SpaCy 安装到 Raspberry Pi 4 Raspbian Buster

    我一整天都在安装 SpaCy sudo pip install U spacy Looking in indexes https pypi org simple https www piwheels org simple Collectin
  • 在 Intel 机器上构建 Apple Silicon 二进制文件

    如何在 macOS 11 Intel 上编译 C 项目以在 Silicon 上运行 我当前的构建脚本很简单 configure make sudo make install 我尝试过使用 host and target标志与aarch64
  • AOSP 的“午餐”组合是什么意思?我需要选择什么?

    我是 Android 设备 ROM 开发的新手 无论如何 我现在正在为具有 64 位处理器的中国设备构建 AOSP 我按照 source android com 上的菜单进行操作 当我运行 午餐 命令时 终端显示 午餐菜单 选择一个组合 我
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor

随机推荐

  • 【Windows】VScode终端添加GitBash,终端直接调用git

    1 打开VScode 文件 gt gt 首选项 gt gt 设置 搜索 shell windows 点击settings json编辑 把下面的语句复制进去 terminal integrated profiles windows Powe
  • 台达b3伺服参数设置方法_台达伺服驱动器参数设置一览表

    台达伺服驱动器参数设置一览表 2020 12 23 台达伺服驱动器的参数设置分为八大群组 从P0到P7 参数群组定义如下 群组 0 监控参数 例 P0 xx 群组 1 基本参数 例 P1 xx 群组 2 扩展参数 例 P2 xx 群组 3
  • oracle 表 xml,详细分析Oracle XML数据

    在向大家详细介绍Oracle XML数据之前 首先让大家了解下Oracle 11g 然后全面介绍Oracle XML数据 在Oracle 11g可以使用CLOB及二进制两种方式保存XML信息 灵活性很高 Oracle 11g还支持针对XML
  • ElementUI/ElementPlus+笔记

    如何修改特定文件下使用的Element组件样式 在哪修改样式 在修改element样式时 最好在scoped中修改避免全局污染 如果在scoped中修改样式不生效就在全局中修改 但是在要修改的样式外面套一层class 避免修改了所有页面 使
  • EasyExcel读写Excel

    转载 侵删 原文链接 https mp weixin qq com s T xBuoYgj1NuM7 yHe084Q 最近读者小 H 在知识星球中给阿粉发来私信 阿粉 最近我在负责公司报表平台开发 需要导出报表到 Excel 中 每次使用
  • CenterNet姿势估计decode部分代码解读

    代码链接 https github com xingyizhou CenterNet blob 1085662179604dd4c2667e3159db5445a5f4ac76 src lib models decode py L497 代
  • npm和yarn的区别(包管理工具)

    包管理工具npm和yarn的一些区别 1 官网文档 npm https www npmjs cn yarn https yarn bootcss com 2 npm存在的一些不足 npm install的时候巨慢 特别是新的项目拉下来要等半
  • 留学文书可以彻底被AI取代吗?留学顾问是否会被AI逼到墙角?

    近日 ChatGPT再次 进化 其最新版本ChatGPT 4又掀高潮 其生产者OpenAI 称 ChatGPT 4是最先进的系统 能生产更安全和更有用的回复 和上一代相比 GPT 4拥有了更广的知识面和更强的解决问题能力 在创意 视觉输入和
  • Qt中图像的显示与基本操作

    Qt可显示基本的图像类型 利用QImage QPxmap类可以实现图像的显示 并且利用类中的方法可以实现图像的基本操作 缩放 旋转 1 Qt可显示的图像类型 参考Qt的帮助文档 可支持的类型 即可以直接读取并显示的格式有BMP GIF JP
  • Java Package 访问控制权限 相关

    Java Package 访问控制权限 1 1 关于java的包机制 1 2 带有package的java程序如何执行 1 3 访问控制权限 1 1 关于java的包机制 不同功能的类放到不同的软件包中 查找方便 解决类的重名问题 1 2
  • 实验2熟悉常用的HDFS操作

    1 实验目的 1 理解HDFS在Hadoop体系结构中的角色 2 熟练使用HDFS操作常用的Shell命令 3 熟悉HDFS操作常用的Java API 2 实验平台 1 操作系统 Linux 2 Hadoop版本 2 7 4 3 JDK版本
  • 详解ETL银行数据仓储抽取和加载流程概述

    ETL和ELT ETL是Extract Transfrom Load即抽取 转换 加载三个英文单词首字母的集合 E 抽取 从源系统 Souce 获取数据 T 转换 将源系统获取的数据进行处理加工 比如数据格式转化 数据精度转换 数据清洗 缺
  • python绘制小提琴图_Python:matplotlib 和 Seaborn 之热图、小提琴图和箱线图 (三十四)...

    热图 热图是直方图的二维版本 可以替代散点图 和散点图一样 要绘制的两个数字变量的值位于坐标轴上 和直方图类似 图形区域被划分为网格 并将每个网格的点数加起来 因为没有空间表示长条高度 因此用网格颜色表示计数 你可以通过 Matplotli
  • android module 之间引入出现manifest 冲突

    原因 manifest 文件中属性冲突 例如 原因是导入的库在build gradle中的minSdkVersion与你的应用的minSdkVersion不匹配导致的 app要求应用最小系统版本和库要求系统最小版本不一致 改成 样的就行了
  • 怎么提高团队的代码质量

    1 java代码规范 阿里巴巴IDEA代码规范包 安装和使用的方法 https www jianshu com p 8973b20f2de9 2 编写高质量的单元测试 开发人员能提交测试之前 通过单元测试完成自测 3 保证代码质量要做到持续
  • unity 鼠标点击在2D 物体上 和UI上

    unity 鼠标点击在2D 物体上 和UI上 1 鼠标是否点击在2D 物体上
  • Git的下载与安装教程

    一 Git下载 官网下载地址 Git git scm com 点击 Download for Windows 跳转至详细下载页面 以Windows64位安装版为例 点击 64 bit Git for Windows Setup 即可进行下载
  • 3分钟阿里云服务器网络收发包PPS性能详解

    阿里云服务器ECS网络收发包PPS是什么 云服务器PPS多少合适 网络收发包PPS是指云服务器每秒可以处理的网络数据包数量 单位是PPS即packets per second每秒发包数量 阿里云百科来详细说下阿里云服务器网络收发包PPS性能
  • 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    Unity学习笔记 Unity中文课堂教程 C 中级编程代码 最近想补一补C 基础 Unity官方的C 中级编程教程质量很高 于是开个帖子把跟着敲 记录了部分价讲解和我自己的理解的代码存在这 原课程链接 添加链接描述 https www b
  • s3c2440上的nor flash启动与nand flash启动的区别

    nor flash启动与nand flash启动的区别 1 接口区别 NOR FLASH地址线和数据线分开 来了地址和控制信号 数据就出来 NAND Flash地址线和数据线在一起 需要用程序来控制 才能出数据 通俗的说 就是光给地址不行