我之前没有使用外部存储器或ARM核心微处理器;我使用的所有微处理器都有内部FLASH和独立的数据/程序地址空间。如果这些问题非常基本,请原谅我,但我可以使用“健全性检查”来确保我不会错过重要的事情:
我有一个现有的程序,当为一个micro编译时,它有以下内存表(IAR for Cortex M3): 40个620字节的只读代码存储器 1 215个字节的只读数据存储器 126 900字节的读写数据存储器
我正在转向没有内部闪存和128kB内部SRAM的微型计算机,因为它具有我需要的非常高的处理器速度。我的计划是使用外部NOR FLASH(假设参数为512kB)和至少一个DDR2外部RAM(再次假设参数为512kB +)。
我想在启动时将外部FLASH的内容复制到内部SRAM中(引导加载程序在单独的内部FLASH空间中提供),并从SRAM中执行代码。我还不清楚的是128kB的内部SRAM是否足以满足这一要求。我可以简单地使用DDR2外部RAM来存储所有“数据”,并从SRAM中执行程序代码吗?这种方式有速度妥协吗?速度是此应用程序中的首要任务。有没有办法做到这一点,这将导致更快的执行?
由于
答案 0 :(得分:2)
根据手臂与闪光灯,闪光灯,闪光灯的连接方式(闪光灯,闪光灯,闪光灯),您可以随意使用它们。运行你可以从sram有其他东西在dram。 dram一般比sram慢得多,但你可能有一个缓存来帮助和其他因素可能使一个或另一个内存变得更糟/更好。如果使用gnu工具,你当然可以制作一个链接器脚本和引导程序,它接受各种段.text,.data,.rodata等,并将它们设置在你想要的任何地方(sram,dram,每个中的特定位置等),以及那么让手臂就可以了......对于IAR我不太了解这一点但毫无疑问他们也有一些机制也可以做同样的事情。