打印

GDB调试STM32的奇怪现象

[复制链接]
2509|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangkef0904|  楼主 | 2011-5-16 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个帖子我已经在ARM版面发过一次了,没人回,在这里再发一次,希望有大虫下可以指教一下。问题如下:

我用GNU工具链 + JLink开发STM32,把代码编译、链接到片内SRAM,然后用GDB加载到SRAM,在GDB下运行却不能进入中断服务程序。在SRAM中跑时,除了不能进入中断外,其它一切正常。同一份程序,编译、链接到片内FLASH,用JFlash下载到FLAH,脱机跑却一切正常,不知道这是什么原因?下面分别是我的链接到SRAM和FLASH的链接脚本
链接到SRAM的链接脚本:
MEMORY
{
FLASH(rwx) : ORIGIN = 0x08000000, LENGTH = 64K
SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
SECTIONS
{
.text : AT (0x08000000)
{  
  KEEP(*(.vectors_sec))
  *(.text)
  *(.rodata)
  . = ALIGN(4);
  _etext = .;
} > SRAM

.data : AT (_etext)
{
  _sdata = .;
  *(.data)
  . = ALIGN(4);
  _edata = .;
} > SRAM

.bss (NOLOAD) :
{
  _sbss = .;
  *(.bss)
  *(COMMON)
  . = ALIGN(4);
  _ebss = .;
} > SRAM

_st_top = 0x20000000 + 20K;
}

链接到FLASH的链接脚本:
MEMORY
{
FLASH(rwx) : ORIGIN = 0x8000000, LENGTH = 64K
SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
SECTIONS
{
.text : AT (0x8000000)
{  
  KEEP(*(.vectors_sec))
  *(.text)
  *(.rodata)
  . = ALIGN(4);
  _etext = .;
} > FLASH

.data : AT (_etext)
{
  _sdata = .;
  *(.data)
  . = ALIGN(4);
  _edata = .;
} > SRAM

.bss (NOLOAD) :
{
  _sbss = .;
  *(.bss)
  *(COMMON)
  . = ALIGN(4);
  _ebss = .;
} > SRAM

_st_top = 0x20000000 + 20K;
}
沙发
zhangkef0904|  楼主 | 2013-12-2 13:23 | 只看该作者
升级JLink固件,搞定。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

36

帖子

1

粉丝