wince内存配置的一些体会

裸板之 DDR(双倍速率内存) 板子一上电,系统会把nand flash前8k的内容拷到6410内存(硬件实现刚好复制到0地址开始)上去执行,当内容超过8k时,程序执行错误。 阅读详情

注:以下分析是基于S3C2450的DRAMC控制器.

 

 1、CPU的BANK0到BANK5可以用于SROM(包括Norflash)、SRAM或其它外设的片选(片选信号nRCS),BANK6用于SDRAM、DDR内存(片选信号nSCS)。如果访问到不同BANK的地址范围DRAMC控制器则会激活对应的片选信号。关于此bank的最大访问是64MBytes目前不是很明白。找到一篇说明:http://blog.youkuaiyun.com/gooogleman/archive/2009/05/18/4197170.aspx

2、DRAMC控制器支持32位的SDRAM和16位的DDR,地址空间达到128MByte,这是由DRAMC所能用到的行列地址线根数所决定的(这是不是意味着只要是不超过128MBytes的内存,只需要改oemaddrtab_cfg.inc中的大小而不需要调整其它的值?我想如果按CPU的每个bank只能有64Mbytes的地址映射空间,那还是要改一下映射对应关系)。支持两个内存nCS(外部片选),对于DDR2支持4-bank,但是不支持8-bank(这个bank和第一条的bank含义不一样,有点象Nandflash的block,刷新用的单位),从Datasheet的例子来看,如果是接SDRAM,可以有2x16Bit、4x16Bit二种连接方式,前者是做位扩展,后者要用到两个片选;而接DDR2有1x16Bit、2x16bit二种连接方式,后者也要用到两个片选。

关于Bank的说明:

Bank (内存库) 在内存行业里,Bank至少有三种意思,所以一定要注意。 1、在SDRAM内存模组上,"bank 数"表示该内存的物理存储体的数量。(等同于"行"/Row) 2、Bank还表示一个SDRAM设备内部的逻辑存储库的数量。(现在通常是4个bank)。 3、它还表示DIMM 或 SIMM连接插槽或插槽组,例如bank 1 或 bank A。这里的BANK是内存插槽的计算单位(也叫内存库),它是电脑系统与内存之间数据总线的基本工作单位。只有插满一个BANK,电脑才可以正常开机。举个例子,奔腾系列的主板上,1个168线槽为一个BANK,而2个72线槽才能构成一个BANK,所以72线内存必须成对上。原因是,168线内存的数据宽度是64位,而72线内存是32位的。主板上的BANK编号从BANK0开始,必须插满BANK0才能开机,BANK1以后的插槽留给日后升级扩充内存用,称做内存扩充槽。

3、DRAMC的BANK访问空间是由它的相关属性来决定,如

支持SDRAM列地址线10,行地址线最大14,四个bank(刷新)

也就是最大访问空间=(2^14)*(2^10)*4*16Bit=1024Mbits/8=128Mbytes,做位扩展到32Bit可以达到256MBytes;如果还要做扩展就必须用到nSCS1了。

支持DDR2列地址线10,行地址线最大14,四个bank(刷新)

也就是最大访问空间=(2^14)*(2^10)*4*16Bit=1024Mbits/8=128Mbytes,如果还要做扩展就必须用到nSCS1了

注:因为2450只支持4bank的DDR2,似乎4bank的DDR2最大也只有64MBytes

4、开发板用的DDR2内存是K4T51163QC-ZC(L)D5,它是32MBx16(即64Mbytes)的内存,列地址线A0到A9,行地址线A0到A12(列和行地址这个应该是分时传送的),A14到A15用做片内bank选择。数据线用到D0到D15,DQM[0-4]、DQS[0-1]决定输出是高或低8/16位数据。
这样算下来  Memory Size=2^13  *  2^10  *  2^2  *  16 / 8 = 64MBytes
                                       行           行          bank      位

5、根据datasheet,S3C2450的DRAMC不支持32bit的DDR2;对于16bit的SDRAM则必须用两片进行扩展成32bit来访问。


问题:
(1)如果是2片连接呢?如何扩展内存?
对于SDRAM,目前市面上最大的16Bits单片内存是128Mbytes,两片连接成256Mbytes可进行32Bits的访问。因为它是位扩展所以只需要用到SCS0,如果要继续扩大就必须要用到nSCS1了。DRAMC根据访问地址来完成片选信号的激活。

(2)能不能达到512MBytes?

如果是这样,那根据配置其首地址为0x30000000,大小为0x20000000,岂不是和其它地址有冲突了?

(2)DQS0、DQS1是什么?
这个是DDR才有的(SDRAM没有),即数据选通信号,具体待了解。

 4、内存引脚定义(后面为2450对应的引脚) SDRAM和DDR2略有不同
CLK--时钟输入                                 SCLK
CKE--内部刷新时钟控制端             SCKE
CS--片选                     nSCS0/nSCS1
BA1,0--BANK的选择               A14、A15
A0--A11--地址线,包括行地址与列地址              A0-A12(最多可以到16位)
RAS--行地址选通                  nSRAS
CAS--列地址选通                                            nSCAS
WE--写使能                                                   nSWE
LDQM,UDQM--字节与字控制端                        DQM[0-3](如只有一片,则只用前两个)

DQ0--DQ15--数据端                                      D0-D15(如果做了位扩展,则D16-D31也用上)

 5、参考文章

http://blog.youkuaiyun.com/gooogleman/archive/2008/11/12/3283075.aspx

http://hi.baidu.com/to_qgq/blog/item/1a23118dea20b911b31bba18.html 

DRAM 存储阵列与读写时序解析:从 1T1C Cell 到 Burst Length 16 的演进 本文深入解析DRAM存储阵列与读写时序,从基础的1T1C存储单元到现代DDR4的Burst Length 16技术演进。详细介绍了DRAM的核心工作原理、差分感测放大器设计、层次化存储阵列组织以及Burst Length与预取技术的性能优化,为读者构建完整的DRAM知识体系。 阅读详情

相关推荐

DRAM存储单元设计揭秘:从1T1C到3T1C的演进与取舍

本文深入解析了DRAM存储单元设计的核心演进,从早期3T1C结构的非破坏性读取优势,到如今成为绝对主流的1T1C结构。文章揭示了这一技术路线变迁背后的关键工程权衡:在面积、成本、速度与可靠性之间,1T1C凭借其极致的简洁与高密度,最终胜出,奠定了现代DRAM的基础。

weixin_29201859的博客 760

什么是DRAM?

当今计算设备中使用了各种各样的易失性和非易失性内存单元,与静态随机存取存储器(SRAM)相比,动态随机存取存储器(DRAM)是最常用的架构之一,因为它具有成本效益。本文简要概述了不同类型的DRAM之间的主要区别,包括同步动态存取存储器(SDRAM)和各种类型双倍数据速率(DDR)。 什么是DRAM? DRAM由一系列电容器组成,旨在为随机存取存储器(RAM)存储单个比特。RAM是一种可以访问数据元素的存储器,无论其在序列中的位置如何。因此,从本质上讲,访问任何数据所需的时间是恒定的。 存取晶体管和存储

mcu0emmc的博客 2万+

从零搭建WINCE 6.0开发环境:基于VS2005与设备仿真器的完整指南

嵌入式操作系统是连接硬件与上层应用的关键软件层,它通过内核调度、驱动管理和资源抽象,为嵌入式设备提供稳定可靠的运行环境。其核心价值在于实现硬件资源的统一管理,并支持应用程序的跨平台移植。在工业控制、手持设备和物联网终端等场景中,嵌入式操作系统发挥着基石作用。本文聚焦于Windows Embedded CE 6.0这一经典系统,详细解析如何利用Visual Studio 2005和Platform Builder,从BSP选择、OS Design配置到系统镜像构建的全流程。内容涵盖设备仿真器的使用、组件依赖管

weixin_30363981的博客 369

访问DDR步骤

先初始化DRAMC{1.地址线设置 2.位宽 3.设置时序}

dgergeg的专栏 1004

i.MX31 MAX PDK嵌入式开发实战:从参考设计到产品定制的全流程解析

在嵌入式系统开发领域,参考设计平台是连接芯片原厂能力与终端产品实现的关键桥梁。其核心原理在于提供一套经过验证的硬件、软件和开发工具组合,将复杂的芯片功能模块化、接口标准化,从而大幅降低开发门槛和技术风险。这种平台的技术价值在于它能显著缩短产品从概念到原型的时间,使开发者能聚焦于应用创新而非底层调试。典型的应用场景包括便携式多媒体设备、工业人机界面和车载信息娱乐系统等。本文以经典的i.MX31 MAX PDK为例,深入剖析其独特的三板堆叠架构如何实现软硬件并行开发,并详解在显示驱动、音频系统、电源管理等关键模

weixin_30533109的博客 323

Windows CE模拟环境搭建与调试实战指南

嵌入式系统开发中,模拟环境是提高效率的关键工具。Windows CE作为经典的嵌入式操作系统,在工业控制、医疗设备等领域仍有广泛应用。通过Platform Builder(PB)工具链,开发者可以在x86架构PC上模拟ARM设备环境,显著降低硬件采购成本和调试难度。模拟器支持不同屏幕分辨率、内存配置和内核级调试,特别适合需要快速迭代的嵌入式项目。本文以工业自动化场景为例,详解PB模拟器的环境配置、ROM编译和性能优化技巧,包含触摸屏校准、网络连接等典型问题的解决方案,帮助开发者高效完成Windows CE应

weixin_34274029的博客 313

2440 按键中断

很开心,按键中断终于基本搞定了,下面将自己的心得分享下:中断驱动书写流程:   1.编写本驱动库的入口函数。DllEntry()。   2.设置物理地址到虚拟地址映射。原因wince启动后是对虚拟地址操作。EINT_InitializeAddresses。   3.配置中断引脚EINT_ConfigInterruptPin()。   4.创建一个线程,指定线程函数,并获得句柄。gEINTIntread=CreateThread().   5.根据ISR获得一个SYSINTR(逻辑中断),所用函数为:Kern

EmbeddedLong的专栏 2283

嵌入式Linux与Qt构建汽车智能中控:架构、实战与车规级开发全解析

嵌入式系统作为专用计算机系统,以其高可靠性、实时性和低功耗特性,成为工业控制、汽车电子等领域的核心基石。其工作原理在于通过裁剪的操作系统内核与硬件紧密耦合,实现对特定任务的精准控制。这一技术价值在于为资源受限的嵌入式设备提供了稳定、高效的软件运行环境。在汽车智能化浪潮中,嵌入式系统与图形界面框架的结合,成为开发车载信息娱乐系统(IVI)与人机交互界面(HMI)的关键。**嵌入式Linux**作为开源、可深度定制的操作系统,提供了坚实的底层支持;而**Qt框架**凭借其卓越的跨平台能力和丰富的图形组件库,极大

weixin_30740581的博客 281

在qemu中运行wince 5.0/6.0(2)

Qemu 模拟的Mainstone platform,内存是64M,而WinCE 6默认编译的时候内存设置为128M,故需要把mainstoneiii.bat文件中的这一行:REM set SDRAM_SIZE_64_MB=1改为:set SDRAM_SIZE_64_MB=1也即是把REM注释去掉. 管理员在2

云,无处不在 雾,是下一代 1021

C++与Qt实战:医院体检预约系统开发全流程解析

在软件开发领域,数据库设计与业务逻辑实现是构建稳定应用系统的基石。其核心原理在于通过合理的数据建模与高效的查询优化,确保数据一致性并支撑复杂的业务规则。从技术价值看,这不仅直接决定了系统的性能与可维护性,更是实现高并发处理与数据安全的关键。在诸如医疗、金融等对可靠性与实时性要求极高的行业应用场景中,一套健壮的后台系统尤为关键。本文将以一个具体的医院体检预约系统为例,深入探讨如何运用C++与Qt框架,结合MySQL数据库,从需求分析、架构设计、核心模块实现到性能优化,完整构建一个解决“预约难、排班难、统计难”

weixin_30439067的博客 381

MoE大模型激活机制揭秘:2%参数调用背后的工程真相

稀疏化大模型(如MoE)通过动态路由实现参数高效利用,其核心原理是将海量参数划分为多个专家子网络,每次仅激活Top-K个最相关专家参与计算。这种‘按需调用’机制显著降低显存占用与计算开销,提升推理吞吐与能效比,广泛应用于GPT-4、DeepSeek-R1等工业级模型。技术价值在于平衡模型能力、硬件资源与服务延迟三重约束,典型落地场景包括高并发API服务、长上下文生成与多模态推理。本文聚焦真实生产环境中的MoE激活比例(如‘2%’)、路由器设计、专家容量调控与分布式通信优化等关键工程实践。

weixin_30824599的博客 407

MC9328MX1微控制器实战解析:ARM920T架构与外设配置指南

在嵌入式系统开发中,片上系统(SoC)是集成了处理器核心、内存控制器及多种外设的关键组件。其核心原理在于通过高效的总线架构(如AHB和APB)连接各个模块,实现数据与控制信号的协调。这种设计的技术价值在于平衡了性能、功耗与成本,使得单一芯片能够胜任复杂的实时任务。从应用场景看,SoC广泛用于工业控制、消费电子和物联网设备,其中ARM架构因其生态与能效优势成为主流选择。以经典的MC9328MX1为例,它采用ARM920T核心,集成了SDRAM控制器、UART、RTC等模块,其详细的内存映射和寄存器配置为理解S

weixin_30776545的博客 420

别再为乱码头疼了!QT开发中QString与std::string互转的3种正确姿势(含编码避坑)

本文深入探讨了QT开发中QString与std::string互转的3种正确方法,包括UTF-8方案、本地编码方案和标准库方案,帮助开发者彻底解决字符串乱码问题。文章还提供了编码避坑地图和实战技巧,适用于跨平台开发和多语言支持场景。

weixin_30596343的博客 383

操作系统概述

1.1操作系统初步认识 桌面常见四大操作系统 linux操作系统目前在桌面上面也得到了广泛的应用 unix在服务器领域运用得更多一些 windows是絕大多是用户工作或学习上选择的操作系统 苹果操作系统 windows操作系统最早的一版 windows之windows1.0 微软公司首次在PC上尝试图形界面,1985发行 内核基于MS-DOS,在启动这个操作系统之前,要先启动MS-DOS windows之WIN XP 发行于2001年8月25日 家庭版(Home)和专业版(Professional

binbinhxx的博客 2657

wince系统内存清理工具

wince内存清理工具,定期内存清理,方便快捷

Openharmony 命令行工具hdc的获取与安装

OpenHarmony实战:命令行工具hdc安装应用指南_hdc工具-优快云博客t=N7T8。

Devlin_的博客 1万+

i.MX1/L/S与i.MX21平台开发环境搭建与镜像烧录实战指南

在嵌入式系统开发中,交叉编译是连接高性能宿主机与资源受限目标板的核心技术。其原理在于通过特定架构的编译工具链,将源代码转换为目标处理器(如ARM)可执行的机器码。这项技术的价值在于极大提升了开发效率,使开发者能在通用PC上为专用硬件构建复杂系统。它广泛应用于工业控制、消费电子及物联网设备等场景。本文聚焦于经典的飞思卡尔i.MX1/L/S与i.MX21处理器平台,针对其老旧的BSP和工具链,详细解析了从工具链安装、内核编译到Bootloader、内核及根文件系统烧录的全流程。文中特别强调了版本兼容性这一关键热

weixin_33756596的博客 272

使用Python爬虫抓取公共交通网站的时刻表

Python爬虫是一种通过自动化方式从网页中抓取数据的程序。爬虫通过模拟用户请求,获取网站的HTML页面内容,并通过解析这些HTML内容,提取出我们需要的信息。requests:用于向网站发送HTTP请求并获取响应。:用于解析HTML文档,提取数据。Selenium:用于处理动态加载的网页,模拟浏览器操作。pandas:用于数据处理和分析,方便存储和操作抓取到的数据。本文介绍了如何使用Python爬虫抓取公共交通网站的时刻表,并提取其中的关键信息。我们使用了requestsSelenium和。

2201_76125261的博客 1119

i.MX53芯片勘误实战:从硬件缺陷到软件规避的嵌入式系统稳定性保障

在嵌入式系统开发中,芯片勘误手册是揭示硬件设计局限性的关键文档,它记录了芯片在制造后无法修复的已知问题。其核心原理在于硬件设计与实际应用场景之间的细微偏差,这些偏差可能导致系统在特定条件下出现随机性故障,如数据异常、时钟毛刺或外设失效。理解并规避这些勘误的技术价值在于,它能迫使开发者超越简单的寄存器配置,深入探究硬件内部工作机制、时序边界及模块间交互协议,从而构建出真正稳健的系统。从应用场景看,无论是工业控制中对实时性的严苛要求,还是消费电子中对功耗与稳定性的平衡,亦或是使用NAND Flash作为主存储的

weixin_33704591的博客 395

如何完全卸载axure软件以及解决安装axure后打不开的问题【2023年】

如何完全卸载axure软件以及解决安装axure后打不开的问题【2023年】

念兮为美 5138

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责

本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1014

ARM9嵌入式设计实战:从LPC32x0动态特性到功耗与PCB布局优化

在嵌入式系统设计中,深入理解微控制器的动态特性与功耗管理是确保系统稳定高效运行的核心。动态特性涉及芯片在运行时的时序、信号完整性及外设交互行为,直接决定了系统性能上限与可靠性。其原理在于芯片内部时钟树、总线架构与IO接口的协同工作,需通过精确配置寄存器参数来满足数据手册规定的时序要求。掌握动态特性分析能力,对于优化系统性能、规避稳定性风险具有重要技术价值,尤其在高速存储接口(如SDRAM、NAND Flash)和模拟采集(如ADC)等场景中至关重要。功耗管理则通过动态电压频率调节(DVFS)、时钟门控等技术

weixin_30562507的博客 793

梯度提升决策树GBDT原理与代码实例讲解

梯度提升决策树GBDT原理与代码实例讲解 1.背景介绍 1.1 机器学习发展历程 机器学习是人工智能领域的一个重要分支,旨在使计算机具备学习和改进自身性能的能力。随着大数据时代的到来,海量的数据为机器学习算法提供了广阔的应用空间。在

AI天才研究院 1081
上一篇: wince内存分配及管理
下一篇: 驱动间的协调和管理
alien75
博客等级 码龄25年 195粉丝 116原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值