MINI2440 ram:4k , rom:没有
程序运行:sdram ,norflash
程序存放:nandflash,norflash
nandflash和norflash最大区别:norflash可以片上运行程序(并行总线,引脚多),nandflash不能(串行总线,引脚少)
通常linux操作系统存放在nandflash里面
nandflash启动模式:开发板上电时,nandflash控制器把前4K代码复制到2440的内部4ksram中,然后通过硬件机制把2440内部4ksram地址映射到为0的地址开始,程序开始执行这4k代码
这4k代码包含功能:初始化sdram,复制nandflash中的代码到sdram中,然后跳转到sdram中运行
noflash启动模式:norflash也有同样的最前面的4k代码,只不过不需要复制到2440内部4ksram这个过程,因为norflash可以片上执行程序
上面所说的4K代码也就是包含了启动代码
(其实启动代码可以小于4K或大于4K,但当大于4K时拷贝的4k代码里必须包含功能:初始化sdram,复制nandflash中的代码到sdram中,然后跳转到sdram中运行小于4k时复制的4k程序执行完启动代码后会跳转,剩下的空间不执行)
NANDFLASH的相关操作原理:
NANDFLASH的擦除操作
NANDFLASH坏区检测
ID号检测
坏区标识
任意地址区间的读写 :以前没有任意读写功能,现在升级了,但实际应用中读没问题,写可能会出错
读写校验
NandFlash的ECC校验过程总结:
写页操作: (8位的nandflash)
在写完一页数据后,硬件会自动产生4个字节的主区ECC,硬件自动存放到rNFMECC0里面,再编程保存(写)到Space区,
此时又会产生2个字节的Space区ECC,硬件自动存放在rNFSECC寄存器的低两字节里面 。再编程保存(写)到Space区,
读页操作: (8位的nandflash)
在读完一页数据后,也会产生四个字节的主区ECC,硬件自动存放到rNFMECC0里面, (等待与之前写数据的时候产生的主区ECC进行比较) 再读取之前保存在Space区的4个字节的主区ECC (mecc0=NF_RDDATA();这时读完操作后又会产生两个字节的Space区的ECC,硬件自动存放在rNFSECC的低两字节里面),放到寄存器rNFMECCD0和rNFMECCD1的bit0--7和bit16--23,放入后硬件会自动和读页操作时产生的主区ECC(放在NFMECC0寄存器里面)进行比较。再读取保存在Space区的两字节的Space区ECC(secc=NF_RDDATA();低2个字节为spare区的ECC值),放到寄存器rNFSECCD的bit0--7和bit16--23,放入后硬件又会自动和读操作时产生的Space区ECC(放在NFSECC寄存器里面的低两字节)进行比较,最后主区ECC、Space区ECC的比较结果可以通过NFESTAT0寄存器 的低四位来进行查询,判断读、写时分别产生的ECC是否相同,如果相同则说明读取数据成功,否则读取失败。
16位的nandflash操作过程与8位相似,只不过16位的nandflash主区ECC为8个字节,存放在rNFMECC0和rNFMECC1两个寄存器里面 Space区ECC有4个字节,也是存在rNFSECC寄存器里面(8位nandflash只用到了低两字节)
具体详情可以参考S3C2440的nandflash控制器部分内容
关键字:arm 存储知识 nandflash-norflash MINI2440平台
引用地址:
嵌入式arm学习总结(八)--存储知识-基于MINI244
推荐阅读最新更新时间:2024-10-30 14:30
基于ARM的装载机障碍物监测预警系统设计
1 引言 随着信息化、智能化、网络化的发展,嵌入式系统技术获得广阔的发展空间,工业控制领域也进行着一场巨大的变革,以32位高端处理器为平台的实时嵌入式软硬件技术将应用在工业控制的各个角落。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化 进程、提高生产率等方面起到了极其重要的推动作用 。 现今,国内外虽有部分车辆安装了超声波倒车防撞报警装置、基于DSP的智能车辆防撞系统、图像处理技术的汽车追尾预警系统等,但是用于像装载机这种广泛用于城建、矿山、公路等工程的工程机械的障碍物监测预警系统却没有发现。
[单片机]
S3C2440A时钟结构分析(ARM9架构)
一、时钟树分析 S3C2440A时钟树 从上图的左上角我们可以得知,S3C2440A支持两种外部时钟源输入,一种是通过接在XTIpll与XTOpll上的外部振荡电路(一般由晶振为核心组成),还有一种是通过将现成的时钟频率通过EXTCLK输入。 时钟输入芯片后,送到MPLL(主锁相环)与UPLL(USB锁相环)进行倍频。MPLL出来的时钟信号称之为FCLK,一般直接用于给CPU核心提供时钟信号;UPLL出来的时钟信号称为UCLK,一般用于给USB提供时钟信号。FCLK经过HDIVN与PDIVN分频后会产生HCLK与PCLK,前者一般用于给AHB高速总线与高速外设提供时钟信号,比如USB模块、NAND FLASH控制器等;
[单片机]
基于ARM的MPEG4视频解码器
摘 要 详细阐述了针对ARM平台的MPEG4视频解码算法的优化方法。实验数据表明,优化后的解码器性能得到了全面提升。还结合ARM7TDMI的Easy ARM2200开发平台,给出了嵌入式MPEG-4视频解码的实时实现。
关键词 ARM,MPEG4,嵌入系统,视频解码器
1 引 言
本文旨在研究基于ARM微处理器的MPEG-4视频解码技术,主要应用在手持移动设备中。利用嵌入式系统实现MPEG-4视频解码,处理器的选择是关键。在嵌入式系统中常用的RISC处理器是ARM核,主要是因为它具有体积小,功耗低,成本低,性价比高的特点,这对于移动应用领域非常重要。ARM7系列微处理器为低功耗的32位RISC处理器,最适合于对价位和
[手机便携]
Syntiant如何利用孵化器和Arm生态系统进行AI开发
本文编译自Arm官方博客,作者 Syntiant公司硬件副总裁Dave Garrett Syntiant成立于2017年,联合创始人兼首席执行官Kurt Busch经历了一个激动人心的时刻。当他观看孩子用iPad聊天时,他看到了一个商机,就是将人工智能(AI)和机器学习(ML)创新带入语音激活系统,并改变它们的交互方式。 截至2021年1月,Syntiant已向市场交付了两个AI芯片,出货量超过1000万个,其技术已在Amazon Alexa上获得认证,并在CES上获得殊荣。不到四年,该公司就从包括亚马逊,应用材料,博世,英特尔投资,微软和摩托罗拉在内的全球一些最大的投资者和公司筹集了超过6500万美元的风险投资。 这
[嵌入式]
Arm Neoverse路线图升级,服务器市场再迎曙光
日前,Arm基础设施事业部高级副总裁兼总经理Chris Bergey表示:“在基础设施领域,Neoverse技术已在新的服务器与系统级芯片设计中崭露头角,其中软件与工具的支持也相当丰富且完整。开发者不仅能看到Neoverse带来性能与效率的大幅提升,也能在基础设施部署体验上享受到更多的设计自由度与灵活性。“ 实际上,Arm一直以来都想在服务器和PC等市场占据一席之地,但这是一个格外漫长的旅程,经过多年的努力才得以实现。在经历了许多质疑和错误的尝试之后,到了2020年,再没有人可以忽视Arm在服务器市场的地位了。Arm不止具有竞争力,而且在多项指标上实际上处于领先地位。 Chris Bergey日前细数了Arm近两年所获得的
[网络通信]
基于ARM的嵌入式系统中从串配置FPGA的实现
1 引言 ARM(Advanced RISC Machines)既可以认为是一个公司。也可以认为是对一类微处理器的统称,还可以认为是一项技术。基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面 。到目前为止,ARM微处理器及技术已经广泛应用到各个领域,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等。 FPGA(Field Programmable Gate Array)是一种高密度现场可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置到器件内部的静态配置数据存储器(SRAM)来实现的。FPGA具有可重复编程性,能灵活实现各种逻辑功能。
[嵌入式]
Arm推出平台安全架构PSA为万亿互联设备建立行业通用框架
新闻要点: Arm全新的平台安全架构(PSA) 为互联设备定义安全基础 广受行业领先的云服务、硬件和芯片供应商支持 开源的Arm Trusted Firmware-M将支持PSA规范 全新安全IP提升基于Arm Cortex处理器的IoT芯片的安全性 Arm今日宣布推出首个行业通用框架——平台安全架构(PSA,Platform Security Architecture),用以打造安全的互联设备。该举措将为万物互联奠定可信基础,从而加速实现“2035年全球一万亿设备互联”的宏伟愿景。 实现该项愿景,不仅需要人们具备更多保护设备安全方面的知识,还需要人们信任科技行业正在竭尽所能地保护数据。这并非易事,因为这需要与黑客不断较量,而他们
[嵌入式]
ARM-Linux S5PV210 UART驱动(3)----串口核心层、关键结构体、接口关系
尽管一个特定的UART设备驱动完全可以按照tty驱动的设计方法来设计,即定义tty_driver并实现tty_operations其中的成员函数,但是Linux已经在文件serial_core.c中实现了UART设备的通用tty驱动层,称为串口核心层,这样,UART驱动的主要任务变成了实现serial_core.c中定义的一组uart_xxx接口而非tty_xxx接口。 uart设备是继tty_driver的又一层封装.实际上uart_driver就是对应tty_driver.在它的操作函数中,将操作转入uart_port.在写操作的时候,先将数据放入一个叫做circ_buf的环形缓存区.然后uart_port从缓存
[单片机]