LS1021a and Codewarrior: Is it possible to debug a codewarrior bare board project on on-chip ram?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LS1021a and Codewarrior: Is it possible to debug a codewarrior bare board project on on-chip ram?

1,089 次查看
patrickmorrow
Contributor III

Is it possible to debug a codewarrior bare board project on on-chip ram on an LS1021A?

 

We've stripped our code to be less than the 64 KB size of the on-chip ram, but it appears that when we step through our project our instructions are still running at addresses that would be associated with DRAM (0x80000000 and beyond).  Do we need to edit the .mem and .tcl files?  Also, how does one edit the .mem and .tcl files and not break anything?

 

Patrick

标签 (1)
0 项奖励
回复
3 回复数

883 次查看
lunminliang
NXP Employee
NXP Employee

Hello Patrick Morrow,

I think no you do not want to edit the .tcl and .mem files for this purpose.

As .tcl file is used to initialize registers, memory locations, and other components on a target board. And .mem file is used to define the rules the debugger follows when accessing a target board's memory.

Instead, this is the work of linker. Please check in your .map file if .text section is located in DRAM (0x80000000). The .map file is locate in the same path as .elf file. And try to add/modify your .ld file(this is the liker files for project, which tell how to build), to put those sections you would like into OCRAM as below:

/* Specify the memory areas */

MEMORY

{

    ocram0      (rx) : ORIGIN = 0x10000000, LENGTH = 64K

    ocram1      (rx) : ORIGIN = 0x10010000, LENGTH = 64K

    m_ram        (rx) : ORIGIN = 0x80000000, LENGTH = 512M

}

/* Define output sections */

SECTIONS

{

  /* The program code and other data goes into RAM */

  .text :

  {

    . = ALIGN(4);

    *(.text)          /* .text sections (code) */

    *(.text*)          /* .text* sections (code) */

    *(.rodata)        /* .rodata sections (constants, strings, etc.) */

    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */

    *(.glue_7)        /* glue arm to thumb code */

    *(.glue_7t)        /* glue thumb to arm code */

    *(.eh_frame)

    KEEP (*(.init))

    KEEP (*(.fini))

    . = ALIGN(4);

    _etext = .;        /* define a global symbols at end of code */

  } > ocram0

...

}


Have a great day,

Lunmin

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

883 次查看
patrickmorrow
Contributor III

Thanks Lunmin, that seems to be the solution we were looking for.

Patrick

0 项奖励
回复

883 次查看
addiyi
NXP Employee
NXP Employee

Hi Patrick,

Yes, is possible to debug an app loaded in ocram. You have to modify the ld file, to set the address where ocram begin and also on init.tcl you should comment the DDR init function.

Adrian

0 项奖励
回复