首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CM3编程到ROM & RAM中

将CM3编程到ROM & RAM中
EN

Stack Overflow用户
提问于 2014-04-06 11:25:42
回答 1查看 489关注 0票数 1

目前,我正在采取的步骤,以升级我的业余项目,使用ARM,而不是8位微芯片从微芯片。

但不幸的是,我遇到了一些问题:

我并不真正理解编程方式的不同:-将程序编写为ROM --将程序设计为RAM (在我的例子中只有32K )。

我已经在IAR中做了一些"hello world“测试,其中编译/编程是用我不担心的给定配置完成的。但是我不喜欢IDE和IAR编译器的32K限制,所以我决定设置一个新的环境(参见下面的配置)。

在设置Eclipse环境之后,使用IAR提供的示例,我设法将ARM编程到RAM中。但是当我想将ARM编程到ROM时,程序似乎什么也不做。我使用了一些示例makefile,我相信这些文件可以映射到ROM或RAM,我每次只需要定义其中的一个。

我知道ROM是只读存储器,在断电和RAM更快之后不会是空的,但是每次都需要下载程序到ARM。

我是否需要将我的程序划分为ROM和RAM的一部分,或者我是否可以将所有程序编程到ROM,以便ARM在启动时将代码重新映射到RAM?

目前,我正在使用以下配置:

  • GCC编源
  • Eclipse C/C++
  • Segger Jlink程序员(GDB服务器)
  • CMSIS或LPCOpen库(尚未完全工作)
  • NXP LPC1766 M3
  • Windows 8 64位
  • LPC1768和CMSIS的IAR实例
  • 来自NXP: lpc17xx.cmsis.driver.library的示例

请有人帮我了解ROM和RAM的不同用途,以及如何设置编译器/makefile来使用ROM和RAM内存。

在最后,我希望能够编程的ARM (我认为)到ROM的方式,我可以关闭手臂,而不必重新编程的每一次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-06 14:11:46

我认为您需要查看链接器地图文件提供的例子。这些文件将具有.ld扩展名,并且经常会在文件名中看到字母RAMROMFlash。链接器文件只是一个文本文件,所以您可以在Eclipse编辑器中检查它。重要的部分是.text部分位于ROM中。

GDB的启动程序还将有一个与其相关联的启动脚本。您可以在启动GDB的同一个Eclipse菜单项下使用Configure...选项编辑此选项。脚本需要以如下的行结尾

代码语言:javascript
复制
monitor flash device = LPC1343
monitor flash download = 1

GDB中的monitor命令将行的其余部分发送给GDB服务器。flash命令在JLink GDB服务器手册中解释。

编辑:.text部分是链接器用于可执行代码的默认部分。在我的gcc_arm.ld文件中,我有以下内容:

代码语言:javascript
复制
SECTIONS
{
    .text :
    {
        KEEP(*(.isr_vector))
        *(.text*)

    } > FLASH

我将重置和中断向量放在自己的部分中,并强制链接器将它们放在可执行代码的最开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22893357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档