Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arm 最大速度的外部存储器使用率_Arm - Fatal编程技术网

Arm 最大速度的外部存储器使用率

Arm 最大速度的外部存储器使用率,arm,Arm,我以前从未使用过外置存储器或ARM核心微型计算机;我用过的所有micro都有内部闪存和单独的数据/程序地址空间。如果这些问题很基本,请原谅,但我可以通过“理智检查”来确保我没有遗漏一些重要的东西: 我有一个现有的程序,当为一个micro编译时,有以下内存表(Cortex M3的IAR): 40620字节的只读代码存储器 1215字节的只读数据存储器 126 900字节的读写数据存储器 我正在转向一款没有内部闪存和128kB内部SRAM的微处理器,因为它有我所需要的非常高的处理器速度。我的计划是使

我以前从未使用过外置存储器或ARM核心微型计算机;我用过的所有micro都有内部闪存和单独的数据/程序地址空间。如果这些问题很基本,请原谅,但我可以通过“理智检查”来确保我没有遗漏一些重要的东西:

我有一个现有的程序,当为一个micro编译时,有以下内存表(Cortex M3的IAR): 40620字节的只读代码存储器 1215字节的只读数据存储器 126 900字节的读写数据存储器

我正在转向一款没有内部闪存和128kB内部SRAM的微处理器,因为它有我所需要的非常高的处理器速度。我的计划是使用外部NOR闪存(假设512kB用于论证)和至少一个DDR2外部RAM(同样,假设512kB+用于论证)

我希望在启动时将外部闪存的内容复制到内部SRAM中(在单独的内部闪存空间中提供引导加载程序),并从SRAM中执行代码。我仍然不清楚的是,128kB的内部SRAM是否足以实现这一点。我是否可以简单地使用DDR2外部RAM来存储所有“数据”,并从SRAM中执行程序代码?这样会有速度上的折衷吗?在此应用程序中,速度是我的首要任务。有没有一种方法可以加快执行速度


谢谢

根据arm与这些存储器(闪存、sram、dram)的连接方式,您可以随心所欲地使用它们。从sram运行您能运行的内容,并在dram中使用其他内容。dram通常比sram慢得多,但您可能有一个缓存来帮助您,以及其他可能使一个或另一个内存更差/更好的因素。如果使用gnu工具,您当然可以创建一个链接器脚本和引导加载程序,该脚本和引导加载程序将获取各种段.text、.data、.rodata等,并将它们设置在您需要的任何位置(sram、dram、每个段中的特定位置等),然后放开手臂……对我来说,我不太了解,但毫无疑问,他们也有做同样事情的机制。

再次感谢你,德韦尔奇。我主要关心的是我对内存大小有点困惑。如果我当前的程序有以下内存映射:40 620字节的只读代码内存1 215字节的只读数据内存126 900字节的读写数据内存,我不清楚我是否可以将代码复制到内部SRAM中,是否有足够的128kB的SRAM来存储数据。我搞不清楚R/W数据在哪里。如果是在外部DDR2中,我是否要为速度付出代价?我知道从外部RAM执行代码所花费的时间大约是内部闪存的10倍。我假设其中的一些代码是特定于该芯片的,所以会随着新芯片的出现而改变吗?除此之外,我会假设大小将在球场,可能有一些地方,本地加载/存储等将工作,但现在代码可能会进一步分开,需要一个额外的字,使它稍微大一点。没有理由不使用工具链设置并尝试为不同的内存映射构建现有代码,对吗?看看代码到底有多大。你是对的,但正如你在我的另一篇文章中所讨论的,我怀疑当使用同一个编译器时,从Cortex M3到Cortex A5的总体代码大小将非常相似。我知道由于库的原因可能会有一些差异。cortex ms上的闪存读取时间不一定快,因此我不会简单地假设外部ram较慢,这取决于处理器及其总线。如果你还不知道答案,或者粗略估计一下时间,你可能只需要等待硬件并对其进行基准测试。我希望外围设备库的大小不会有很大的变化,但在你查看或尝试之前,你永远不会知道。您现在应该开始尝试为另一个平台进行构建,看看事情会变得多大或多小。