目前,我正在将我的业余项目升级为使用 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 库(尚未完全工作)
- 恩智浦 LPC1766 Cortex M3
- Windows 8 64 位
- LPC1768 和 CMSIS 的 IAR 示例
- 来自 NXP 的示例:lpc17xx.cmsis.driver.library
有人可以帮助我了解 ROM 和 RAM 的不同用途,以及我应该如何设置我的编译器/makefile 以使用 ROM 和 RAM 内存。
最后,我希望能够将 ARM(我认为)编程到 ROM 中,这样我就可以关闭 ARM 而无需每次都重新编程。