Forums

LPC2468和GCC(或Segger J-Link)存在问题

开始于 lemartes86 2012年3月13日
我的LPC2468板有问题。我在Eclipse上使用Yargato并进行了配置 一切都与描述中一样。我更改了LPC系列的示例以适合 LPC2468。 (数量的闪光,公羊和地址)

编译没有任何错误。当我启动GDB时,segger控制台 says:
读取所有寄存器
读取4个字节@地址0x00000000(数据= 0xE59FF018)
目标字节序设置为“小字节序”
JTAG速度设置为30 kHz
错误:重置后,目标系统的PC具有意外值0x00000518。
重置目标(SAM7软重置)
睡眠10ms
在地址0xFFFFFD44上写入0x00008000
在地址0xFFFFFC20上写入0x00000601
睡眠10ms
在地址0xFFFFFC2C上写入0x00480A0E
睡眠10ms
在地址0xFFFFFC30上写入0x00000007
睡眠10ms
在地址0xFFFFFF60处写入0x00480100
睡眠100ms
JTAG速度设置为12000 kHz
在地址0x00000000处下载400字节
错误:地址为0x00000000的写存储器错误,字访问:核心错误。
在地址0x00000190处下载828字节
警告:无法读取地址为0x00000000的可缓存内存
读取4个字节@地址0x00000000(数据= 0x00000000)

我认为链接器文件中肯定有问题,但找不到。 (这是我的 第一次使用启动文件和链接器文件时,我只是复制了启动文件 和链接器文件,并且变化不大)

也许有人在此处理器上明确运行了此类文件,或者 不能帮助我。

LPC2100系列工程师指南

你好,

>我的LPC2468板有问题。我用Yargato on Eclipse and
已配置
>一切都与描述中一样。我改变了 LPC系列的示例
合身
>LPC2468。 (数量的闪光,公羊和地址)
>
>编译没有任何错误。当我启动GDB时,segger控制台
> says:
>读取所有寄存器
>读取4个字节@地址0x00000000(数据= 0xE59FF018)设置目标字节序

> "little endian"
>JTAG速度设置为30 kHz
>错误:重置后,目标系统的PC具有意外值0x00000518。
>重置目标(SAM7软重置)

LPC2468上的“ SAM7软复位”?

> Sleep 10ms
>在地址0xFFFFFD44上写入0x00008000
>在地址0xFFFFFC20上写入0x00000601
> Sleep 10ms
>在地址0xFFFFFC2C上写入0x00480A0E
> Sleep 10ms
>在地址0xFFFFFC30上写入0x00000007
> Sleep 10ms
>在地址0xFFFFFF60处写入0x00480100
> Sleep 100ms
>JTAG速度设置为12000 kHz
>在地址0x00000000处下载400字节
>错误:地址为0x00000000的写存储器错误,字访问:核心错误。
>在地址0x00000190处下载828字节
>警告:无法读取可缓存内存@地址0x00000000读取4个字节
@
>地址0x00000000(数据= 0x00000000)
>
>我认为链接器文件中肯定有问题,但找不到。
(它的
>我第一次使用启动和链接文件时, just copied the
启动
>文件和链接器文件,并且变化不大)

您不知道自己做了什么,因此需要首先弄清楚要做什么
你做完了。

-
保罗·柯蒂斯(Rowley Associates Ltd) http://www.rowley.co.uk
SolderCore正在运行Defender ... http://www.vimeo.com/25709426

我同意,尽管我不使用调试器。您的地址中显示的一些地址 LPC2468上不存在日志(它们可能用于jtag,但我对此表示怀疑)。所以我 认为问题可能出在调试器配置中。您可以尝试编程 通过ISP LPC2468(需要串行端口)。如果您的程序运行,那么它 必须是jtag配置错误。

--在...中,《保罗·柯蒂斯》写道:
>
> Hi,
>
> >我的LPC2468板有问题。我在Eclipse上使用Yargato
> configured
> >一切都与描述中一样。我将LPC系列的示例更改为
> fit
> >LPC2468。 (数量的闪光,公羊和地址)
> >
> >编译没有任何错误。当我启动GDB时,segger控制台
> > says:
> >读取所有寄存器
> >读取4个字节@地址0x00000000(数据= 0xE59FF018)目标字节 set
> to
> > "little endian"
> >JTAG速度设置为30 kHz
> >错误:目标系统的PC在之后具有意外值0x00000518 reset.
> >重置目标(SAM7软重置)
>
>LPC2468上的“ SAM7软复位”?
>
> > Sleep 10ms
> >在地址0xFFFFFD44上写入0x00008000
> >在地址0xFFFFFC20上写入0x00000601
> > Sleep 10ms
> >在地址0xFFFFFC2C上写入0x00480A0E
> > Sleep 10ms
> >在地址0xFFFFFC30上写入0x00000007
> > Sleep 10ms
> >在地址0xFFFFFF60处写入0x00480100
> > Sleep 100ms
> >JTAG速度设置为12000 kHz
> >在地址0x00000000处下载400字节
> >错误:地址为0x00000000的写存储器错误,字访问:核心错误。
> >在地址0x00000190处下载828字节
> >警告:无法读取可缓存内存@地址0x00000000读取4 bytes
> @
> >地址0x00000000(数据= 0x00000000)
> >
> >我认为链接器文件中肯定有问题,但找不到。
> (it's
> >我第一次使用启动和链接文件时,我只是复制了
> startup
> >文件和链接器文件,并且变化不大)
>
>您不知道自己做了什么,因此需要首先弄清楚要做什么
> you have done.
>
> --
>保罗·柯蒂斯(Rowley Associates Ltd) http://www.rowley.co.uk
>SolderCore正在运行Defender ... http://www.vimeo.com/25709426
>

你好,
如何通过ISP编程控制器?板上有一个串行端口,即 没问题。但是我不知道如何通过ISP在控制器上获取任何东西,是 有什么好方法吗?

我的GDB服务器执行以下操作:
#
#此配置文件已通过J-Link GDB Server v4.10i进行了测试
#

#在此PC的tcp端口2331上侦听命令
目标远程本地主机:2331

#启用Flash下载和Flash断点。
#Flash下载和Flash断点是以下功能
#需要单独许可证的J-Link软件
#来自SEGGER。

#选择闪存设备
监视器闪存设备= LPC2468

#启用FlashDL和FlashBP
显示器Flash下载= 1
监控器闪存断点= 1

#设置gdb服务器为小端
监视字节序小

#将JTAG速度设置为自适应
监控速度自适应

#重置芯片使其进入已知状态
监视器重置0

#设置目标
#将前64个字节重新映射到内部闪存
监控写u16 0xE01FC040 = 0x0001
监视器写u16 0xE01FC040

#加载
#break主要
#继续
我的链接器文件:(与我阅读的所有手臂几乎相同,只是更改了 我在数据表中找到的地址。
OUTPUT_FORMAT(“ elf32-littlearm”,“ elf32-bigarm”,“ elf32-littlearm”)
OUTPUT_ARCH(手臂)
ENTRY(_start)

MEMORY {/ * LPC2468的内存映射* /
ROM(rx):原始= 0x00000000,长度= 512k
RAM(rwx):原始= 0x40000000,长度= 64k
}

/ *应用程序使用的堆栈大小。注意:您需要调整 */
C_STACK_SIZE = 512;
IRQ_STACK_SIZE = 0;
FIQ_STACK_SIZE = 0;
SVC_STACK_SIZE = 0;
ABT_STACK_SIZE = 0;
UND_STACK_SIZE = 0;
部分{

.reset : {
* startup.o(.text)/ *启动代码(ARM向量和重置处理程序) */
. = ALIGN(0x4);
} >ROM

.ramvect:{/ *用于重新映射到RAM的向量 */
__ram_start = .;
. = 0x40;
} >RAM

.fastcode : {
__fastcode_load = LOADADDR(.fastcode);
__fastcode_start =。;

*(。glue_7t)*(。glue_7)
*isr.o (.text.*)
*(.text.fastcode)
*(。text.Blinky_dispatch)
/ *在此处添加其他模块... * /

. = ALIGN (4);
__fastcode_end = .;
} >RAM AT>ROM

.text : {
CREATE_OBJECT_SYMBOLS
*(。text .text。* .gnu.linkonce.t。*)
*(.plt)
*(.gnu.warning)
*(。glue_7t)*(。glue_7)/ *注意:已放在.fastcode中 */

. = ALIGN (4);
/ *这些是ELF下的静态构造函数和析构函数* /
保持(* crtbegin.o(.ctors))
保持(*(EXCLUDE_FILE(* crtend.o).ctors))
保持(*(SORT(.ctors。*)))
保持(* crtend.o(.ctors))
保持(* crtbegin.o(.dtors))
保持(*(EXCLUDE_FILE(* crtend.o).dtors))
保持(*(SORT(.dtors。*)))
保持(* crtend.o(.dtors))

*(。rodata .rodata。* .gnu.linkonce.r。*)

*(。ARM.extab * .gnu.linkonce.armextab。*)
*(.gcc_except_table)
*(.eh_frame_hdr)
*(.eh_frame)

*(.init)
*(.fini)

PROVIDE_HIDDEN(__preinit_array_start =。);
保持(*(。preinit_array))
PROVIDE_HIDDEN(__preinit_array_end =。);
PROVIDE_HIDDEN(__init_array_start =。);
保持(*(SORT(.init_array。*)))
保持(*(。init_array))
PROVIDE_HIDDEN(__init_array_end =。);
PROVIDE_HIDDEN(__fini_array_start =。);
保持(*(。fini_array))
保持(*(SORT(.fini_array。*)))
PROVIDE_HIDDEN(__fini_array_end =。);
} >ROM

/ * .ARM.exidx已排序,因此必须进入其自己的输出部分。 * /
.ARM.exidx : {
__exidx_start = .;
*(。ARM.exidx * .gnu.linkonce.armexidx。*)
__exidx_end = .;
} >ROM
_etext = .;

.data : {
__data_load = LOADADDR(.data);
__data_start = .;
KEEP(*(.jcr))
*(.got.plt) *(.got)
*(.shdata)
*(。data .data。* .gnu.linkonce.d。*)
. = ALIGN (4);
_edata = .;
} >RAM AT>ROM

.bss : {
__bss_start__ = . ;
*(.shbss)
*(。bss .bss。* .gnu.linkonce.b。*)
*(COMMON)
. = ALIGN (8);
__bss_end__ = .;
} >RAM

.stack : {
__stack_start__ =。 ;

. += IRQ_STACK_SIZE;
. = ALIGN (4);
__irq_stack_top__ =。 ;

. += FIQ_STACK_SIZE;
. = ALIGN (4);
__fiq_stack_top__ =。 ;

. += SVC_STACK_SIZE;
. = ALIGN (4);
__svc_stack_top__ =。 ;

. += ABT_STACK_SIZE;
. = ALIGN (4);
__abt_stack_top__ =。 ;

. += UND_STACK_SIZE;
. = ALIGN (4);
__und_stack_top__ =。 ;

. += C_STACK_SIZE;
. = ALIGN (4);
__c_stack_top__ =。 ;

__stack_end__ = .;
} >RAM

_end = . ;
__end = . ;
PROVIDE(end = .);

.stab 0 (NOLOAD) : {
*(.stab)
}

.stabstr 0(NOLOAD):{
*(.stabstr)
}

/ * DWARF调试部分。
* DWARF调试部分中的符号是相对于开头的
*部分,因此我们从0开始。
*/
/* DWARF 1 */
.debug 乐橙云app。debug)}
.line 乐橙云app。line)}
/ * GNU DWARF 1扩展* /
.debug_srcinfo 乐橙云app。debug_srcinfo)}
.debug_sfnames 乐橙云app。debug_sfnames)}
/ * DWARF 1.1和DWARF 2 * /
.debug_aranges 乐橙云app。debug_aranges)}
.debug_pubnames 乐橙云app。debug_pubnames)}
/* DWARF 2 */
.debug_info 乐橙云app。debug_info .gnu.linkonce.wi。*)}
.debug_abbrev 乐橙云app。debug_abbrev)}
.debug_line 乐橙云app。debug_line)}
.debug_frame 乐橙云app。debug_frame)}
.debug_str 乐橙云app。debug_str)}
.debug_loc 乐橙云app。debug_loc)}
.debug_macinfo 乐橙云app。debug_macinfo)}
/ * SGI / MIPS DWARF 2扩展* /
.debug_weaknames 乐橙云app。debug_weaknames)}
.debug_funcnames 乐橙云app。debug_funcnames)}
.debug_typenames 乐橙云app。debug_typenames)}
.debug_varnames 乐橙云app。debug_varnames)}
.note.gnu.arm.ident 0:{保持(*(。note.gnu.arm.ident))}
.ARM.attributes 0:{保持(*(。ARM.attributes))}
/ DISCARD /:{*(。note.GNU-stack)}
}

/ *** EOF *** /

没有其他配置,我也不知道所有的行是什么 做。读完这篇文章后,我没有发现写在 beginning...
--在《 ...》中,“凯文”写道:
>
>我同意,尽管我不使用调试器。您的地址中显示的一些地址 LPC2468上不存在日志(它们可能用于jtag,但我对此表示怀疑)。所以我 认为问题可能出在调试器配置中。您可以尝试编程 通过ISP LPC2468(需要串行端口)。如果您的程序运行,那么它 必须是jtag配置错误。
>
>---在...中,《保罗·柯蒂斯》写道:
> >
> > Hi,
> >
> > >我的LPC2468板有问题。我在Eclipse上使用Yargato
> > configured
> > >一切都与描述中一样。我更改了LPC系列的示例 to
> > fit
> > >LPC2468。 (数量的闪光,公羊和地址)
> > >
> > >编译没有任何错误。当我启动GDB时,隔离器 console
> > > says:
> > >读取所有寄存器
> > >读取4个字节@地址0x00000000(数据= 0xE59FF018)目标字节 set
> > to
> > > "little endian"
> > >JTAG速度设置为30 kHz
> > >错误:目标系统的PC在之后具有意外值0x00000518 reset.
> > >重置目标(SAM7软重置)
> >
> >LPC2468上的“ SAM7软复位”?
> >
> > > Sleep 10ms
> > >在地址0xFFFFFD44上写入0x00008000
> > >在地址0xFFFFFC20上写入0x00000601
> > > Sleep 10ms
> > >在地址0xFFFFFC2C上写入0x00480A0E
> > > Sleep 10ms
> > >在地址0xFFFFFC30上写入0x00000007
> > > Sleep 10ms
> > >在地址0xFFFFFF60处写入0x00480100
> > > Sleep 100ms
> > >JTAG速度设置为12000 kHz
> > >在地址0x00000000处下载400字节
> > >错误:地址@ 0x00000000,字访问的写存储器错误:内核 error.
> > >在地址0x00000190处下载828字节
> > >警告:无法读取可缓存内存@地址0x00000000读取4 bytes
> > @
> > >地址0x00000000(数据= 0x00000000)
> > >
> > >我认为链接器文件中肯定有问题,但找不到。
> > (it's
> > >我第一次使用启动和链接文件时,我只是复制了
> > startup
> > >文件和链接器文件,并且变化不大)
> >
> >您不知道自己做了什么,因此需要先弄清楚 what
> > you have done.
> >
> > --
> >保罗·柯蒂斯(Rowley Associates Ltd) http://www.rowley.co.uk
> >SolderCore正在运行Defender ... http://www.vimeo.com/25709426
>

对于ISP,请使用“嵌入式系统学院”提供的免费工具“ Flash Magic”

--在l ...中,“ lemartes86”写道:
>
> Hi,
>如何通过ISP编程控制器?板上有一个串行端口, 没问题但是我不知道如何通过ISP在控制器上获取任何东西,是 有什么好方法吗?
>
>我的GDB服务器执行以下操作:
> #
>#此配置文件已通过J-Link GDB Server v4.10i进行了测试
> #
>
>#在此PC的tcp端口2331上侦听命令
>目标远程本地主机:2331
>
>
>#Flash下载和Flash断点是以下功能
>#需要单独许可证的J-Link软件
> # from SEGGER.
>
>#选择闪存设备
>监视器闪存设备= LPC2468
>
>#启用FlashDL和FlashBP
>显示器Flash下载= 1
>监控器闪存断点= 1
>
>#设置gdb服务器为小端
>监视字节序小
>
>#将JTAG速度设置为自适应
>监控速度自适应
>
>#重置芯片使其进入已知状态
> monitor reset 0
>
> # Setup target,
>#将前64个字节重新映射到内部闪存
>监控写u16 0xE01FC040 = 0x0001
>监视器写u16 0xE01FC040
>
> #load
> #break main
> #continue
>
>
>我的链接器文件:(与我阅读的所有手臂几乎相同,只是更改了 我在数据表中找到的地址。
>OUTPUT_FORMAT(“ elf32-littlearm”,“ elf32-bigarm”,“ elf32-littlearm”)
> OUTPUT_ARCH(arm)
> ENTRY(_start)
>
>MEMORY {/ * LPC2468的内存映射* /
>ROM(rx):原始= 0x00000000,长度= 512k
>RAM(rwx):原始= 0x40000000,长度= 64k
> }
>
>/ *应用程序使用的堆栈大小。注意:您需要调整 */
>C_STACK_SIZE = 512;
> IRQ_STACK_SIZE = 0;
> FIQ_STACK_SIZE = 0;
> SVC_STACK_SIZE = 0;
> ABT_STACK_SIZE = 0;
> UND_STACK_SIZE = 0;
>
>
> SECTIONS {
>
> .reset : {
>* startup.o(.text)/ *启动代码(ARM向量和重置处理程序) */
>。 = ALIGN(0x4);
> } >ROM
>
>.ramvect:{/ *用于重新映射到RAM的向量 */
>__ram_start =。;
> . = 0x40;
> } >RAM
>
> .fastcode : {
>__fastcode_load = LOADADDR(.fastcode);
>__fastcode_start =。;
>
>*(。glue_7t)*(。glue_7)
>* isr.o(.text。*)
>*(。text.fastcode)
>*(。text.Blinky_dispatch)
>/ *在此处添加其他模块... * /
>
>。 =对齐(4);
>__fastcode_end =。;
> } >RAM AT>ROM
>
> .text : {
>CREATE_OBJECT_SYMBOLS
>*(。text .text。* .gnu.linkonce.t。*)
> *(.plt)
>*(。gnu.warning)
>*(。glue_7t)*(。glue_7)/ *注意:已放在.fastcode中 */
>
>。 =对齐(4);
>/ *这些是ELF下的静态构造函数和析构函数* /
>保持(* crtbegin.o(.ctors))
>保持(*(EXCLUDE_FILE(* crtend.o).ctors))
>保持(*(SORT(.ctors。*)))
>保持(* crtend.o(.ctors))
>保持(* crtbegin.o(.dtors))
>保持(*(EXCLUDE_FILE(* crtend.o).dtors))
>保持(*(SORT(.dtors。*)))
>保持(* crtend.o(.dtors))
>
>*(。rodata .rodata。* .gnu.linkonce.r。*)
>
>*(。ARM.extab * .gnu.linkonce.armextab。*)
>*(。gcc_except_table)
>*(。eh_frame_hdr)
>*(。eh_frame)
>
> *(.init)
> *(.fini)
>
>PROVIDE_HIDDEN(__preinit_array_start =。);
>保持(*(。preinit_array))
>PROVIDE_HIDDEN(__preinit_array_end =。);
>PROVIDE_HIDDEN(__init_array_start =。);
>保持(*(SORT(.init_array。*)))
>保持(*(。init_array))
>PROVIDE_HIDDEN(__init_array_end =。);
>PROVIDE_HIDDEN(__fini_array_start =。);
>保持(*(。fini_array))
>保持(*(SORT(.fini_array。*)))
>PROVIDE_HIDDEN(__fini_array_end =。);
> } >ROM
>
>/ * .ARM.exidx已排序,因此必须进入其自己的输出部分。 * /
> .ARM.exidx : {
>__exidx_start =。;
>*(。ARM.exidx * .gnu.linkonce.armexidx。*)
>__exidx_end =。;
> } >ROM
> _etext = .;
>
> .data : {
>__data_load = LOADADDR(.data);
>__data_start =。;
>保持(*(。jcr))
>*(。got.plt)*(。got)
> *(.shdata)
>*(。data .data。* .gnu.linkonce.d。*)
>。 =对齐(4);
> _edata = .;
> } >RAM AT>ROM
>
> .bss : {
>__bss_start__ =。 ;
> *(.shbss)
>*(。bss .bss。* .gnu.linkonce.b。*)
> *(COMMON)
>。 =对齐(8);
>__bss_end__ =。;
> } >RAM
>
> .stack : {
>__stack_start__ =。 ;
>
>。 + = IRQ_STACK_SIZE;
>。 =对齐(4);
>__irq_stack_top__ =。 ;
>
>。 + = FIQ_STACK_SIZE;
>。 =对齐(4);
>__fiq_stack_top__ =。 ;
>
>。 + = SVC_STACK_SIZE;
>。 =对齐(4);
>__svc_stack_top__ =。 ;
>
>。 + = ABT_STACK_SIZE;
>。 =对齐(4);
>__abt_stack_top__ =。 ;
>
>。 + = UND_STACK_SIZE;
>。 =对齐(4);
>__und_stack_top__ =。 ;
>
>。 + = C_STACK_SIZE;
>。 =对齐(4);
>__c_stack_top__ =。 ;
>
>__stack_end__ =。;
> } >RAM
>
> _end = . ;
> __end = . ;
>提供(end =。);
>
>.stab 0(NOLOAD):{
> *(.stab)
> }
>
>.stabstr 0(NOLOAD):{
> *(.stabstr)
> }
>
>/ * DWARF调试部分。
>* DWARF调试部分中的符号是相对于开头的
>*部分,因此我们从0开始。
> */
> /* DWARF 1 */
>.debug 乐橙云app。debug)}
>.line 乐橙云app。line)}
>/ * GNU DWARF 1扩展* /
>.debug_srcinfo 乐橙云app。debug_srcinfo)}
>.debug_sfnames 乐橙云app。debug_sfnames)}
>/ * DWARF 1.1和DWARF 2 * /
>.debug_aranges 乐橙云app。debug_aranges)}
>.debug_pubnames 乐橙云app。debug_pubnames)}
> /* DWARF 2 */
>.debug_info 乐橙云app。debug_info .gnu.linkonce.wi。*)}
>.debug_abbrev 乐橙云app。debug_abbrev)}
>.debug_line 乐橙云app。debug_line)}
>.debug_frame 乐橙云app。debug_frame)}
>.debug_str 乐橙云app。debug_str)}
>.debug_loc 乐橙云app。debug_loc)}
>.debug_macinfo 乐橙云app。debug_macinfo)}
>/ * SGI / MIPS DWARF 2扩展* /
>.debug_weaknames 乐橙云app。debug_weaknames)}
>.debug_funcnames 乐橙云app。debug_funcnames)}
>.debug_typenames 乐橙云app。debug_typenames)}
>.debug_varnames 乐橙云app。debug_varnames)}
>.note.gnu.arm.ident 0:{保持(*(。note.gnu.arm.ident))}
>.ARM.attributes 0:{保持(*(。ARM.attributes))}
>/ DISCARD /:{*(。note.GNU-stack)}
> }
>
> /*** EOF ***/
>
>没有其他配置,我也不知道所有的行是什么 做。读完这篇文章后,我没有发现写在 beginning...
>
>
>---在《 ...》中,“凯文”写道:
> >
> >我同意,尽管我不使用调试器。在中显示的一些地址 您的日志在LPC2468上不存在(它们可能用于jtag,但我对此表示怀疑)。 因此,我认为问题可能出在调试器配置中。你可以试试 并通过ISP对LPC2468进行编程(需要串行端口)。如果你的程序 运行,则必须是jtag config错误。
> >
> >---在...中,《保罗·柯蒂斯》写道:
> > >
> > > Hi,
> > >
> > > >我的LPC2468板有问题。我在Eclipse上使用Yargato
> > > configured
> > > >一切都与描述中一样。我更改了LPC系列的示例 to
> > > fit
> > > >LPC2468。 (数量的闪光,公羊和地址)
> > > >
> > > >编译没有任何错误。当我启动GDB时,隔离器 console
> > > > says:
> > > >读取所有寄存器
> > > >读取4个字节@地址0x00000000(数据= 0xE59FF018)目标字节 set
> > > to
> > > > "little endian"
> > > >JTAG速度设置为30 kHz
> > > >错误:目标系统的PC在之后具有意外值0x00000518 reset.
> > > >重置目标(SAM7软重置)
> > >
> > >LPC2468上的“ SAM7软复位”?
> > >
> > > > Sleep 10ms
> > > >在地址0xFFFFFD44上写入0x00008000
> > > >在地址0xFFFFFC20上写入0x00000601
> > > > Sleep 10ms
> > > >在地址0xFFFFFC2C上写入0x00480A0E
> > > > Sleep 10ms
> > > >在地址0xFFFFFC30上写入0x00000007
> > > > Sleep 10ms
> > > >在地址0xFFFFFF60处写入0x00480100
> > > > Sleep 100ms
> > > >JTAG速度设置为12000 kHz
> > > >在地址0x00000000处下载400字节
> > > >错误:地址@ 0x00000000,字访问的写存储器错误:内核 error.
> > > >在地址0x00000190处下载828字节
> > > >警告:无法读取可缓存内存@地址0x00000000读取4 bytes
> > > @
> > > >地址0x00000000(数据= 0x00000000)
> > > >
> > > >我认为链接器文件中肯定有问题,但是我找不到 it.
> > > (it's
> > > >我第一次使用启动和链接文件时,我只是复制了
> > > startup
> > > >文件和链接器文件,并且变化不大)
> > >
> > >您不知道自己做了什么,因此需要先弄清楚 what
> > > you have done.
> > >
> > > --
> > >保罗·柯蒂斯(Rowley Associates Ltd) http://www.rowley.co.uk
> > >SolderCore正在运行Defender ... http://www.vimeo.com/25709426
> > >
>

Il 13/03/2012 11:11,lemartes86 ha scritto:
>
>
>我的LPC2468板有问题。我在Eclipse上使用Yargato
>按照说明配置所有内容。我改变了一个例子
>LPC系列适合LPC2468。 (数量的闪光,公羊和地址)
>
J-Link能够识别核心,但是如果您使用的是GDB服务器 it
取决于.gdbinit文件(Segger将其称为.jlink或.gdb)。
您必须对其进行编辑以适应您的硬件。
这是来自Jlink-lite安装(文件夹GDBInit)的示例
对于LPC2378,所以我认为它也可以与LPC2478一起使用:

#连接到J-Link gdb服务器
目标远程本地主机:2331
#选择闪存设备
监视器闪存设备= LPC2378
#设置gdb服务器为小端
监视字节序小
#将速度设置为JTAG速度自适应
监控速度自适应
#重置目标
监视器重置0
#映射内部闪存的前64个字节
监控长0xE01FC040 = 0x00000001
打破主要
#加载ELF文件
加载
#让应用程序运行到main()
继续
>编译没有任何错误。当我开始 GDB, the segger
> console says:
>读取所有寄存器
>读取4个字节@地址0x00000000(数据= 0xE59FF018)
>目标字节序设置为“小字节序”
>JTAG速度设置为30 kHz
>错误:重置后,目标系统的PC具有意外值0x00000518。
>重置目标(SAM7软重置)
> Sleep 10ms
>在地址0xFFFFFD44上写入0x00008000
>在地址0xFFFFFC20上写入0x00000601
> Sleep 10ms
>在地址0xFFFFFC2C上写入0x00480A0E
> Sleep 10ms
>在地址0xFFFFFC30上写入0x00000007
> Sleep 10ms
>在地址0xFFFFFF60处写入0x00480100
> Sleep 100ms
>JTAG速度设置为12000 kHz
>在地址0x00000000处下载400字节
>错误:地址为0x00000000的写存储器错误,字访问:核心错误。
>在地址0x00000190处下载828字节
>警告:无法读取地址为0x00000000的可缓存内存
>读取4个字节@地址0x00000000(数据= 0x00000000)
>
>我认为链接器文件中肯定有问题,但是我找不到
>它。 (这是我第一次使用启动文件和链接器文件,我只是
>复制了启动文件和链接器文件,并没有太大变化)
>
>也许有人在这些文件上明确运行了这些文件
>处理器或无法帮助我。