【发布时间】:2014-04-06 11:25:42
【问题描述】:
目前我正在着手将我的业余项目升级为使用 ARM 而不是 Microchip 的 8 位微控制器。
但不幸的是我遇到了一些问题:
我不太了解编程方式的差异: - 编程到 ROM - 编程到 RAM(在我的情况下只有 32K)
我已经使用 IAR IDE 进行了一些“hello world”测试,其中编译/编程是使用我不担心的给定配置完成的。但我不喜欢 IAR IDE 和 IAR 编译器的 32K 限制,所以我决定建立一个新环境(见下面的配置)。
设置好 Eclipse 环境后,使用 IAR 提供的示例,我设法将 ARM 编程到 RAM 中。但是当我想将 ARM 编程为 ROM 时,该程序似乎没有做任何事情。我使用了我认为对 ROM 或 RAM 进行了某种映射的示例 makefile,我每次只需要定义其中一个。
我知道ROM是只读存储器,断电后不会为空,而且RAM速度更快,但每次都需要将程序下载到ARM中。
我是否需要将我的程序分成 ROM 和 RAM 的一部分,或者我是否可以将所有内容编程到 ROM 中,以便 ARM 在通电时将代码重新映射到 RAM?
目前我正在使用以下配置:
- 代码源 GCC
- Eclipse C/C++
- Segger Jlink 程序员(GDB 服务器)
- CMSIS 或 LPCOpen 库(尚未完全正常工作)
- NXP LPC1766 Cortex M3
- Windows 8 64 位
- LPC1768 和 CMSIS 的 IAR 示例
- 来自 NXP 的示例:lpc17xx.cmsis.driver.library
有人可以帮助我了解 ROM 和 RAM 的不同用途,以及我应该如何设置编译器/makefile 以使用 ROM 和 RAM 内存。
最后,我希望能够将 ARM(我认为)编程到 ROM 中,这样我就可以关闭 ARM 而无需每次都重新编程。
【问题讨论】:
标签: arm ram rom lpc codesourcery