This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: How to handle it???





From: RandyLin@mxic.com.tw
To: ecos-discuss@sources.redhat.com
CC: wj_zheng10@hotmail.com
Subject: RE: [ECOS] How to handle it???
Date: Wed, 3 Dec 2003 17:16:43 +0800


It's nice to hear that you can use gdb to run the ap:) your mlt_arm_snds_ram.ldi and mlt_arm_snds_rom.ldi seems fine. I add the following to hal_arm_snds.cdl, copy from hal_arm_at91.cdl ================================== + cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + display "Work with a ROM monitor" + flavor booldata + legal_values { "Generic" "GDB_stubs" } + default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 } + parent CYGPKG_HAL_ROM_MONITOR + requires { CYG_HAL_STARTUP == "RAM" } + description " + Support can be enabled for different varieties of ROM monitor. + This support changes various eCos semantics such as the encoding + of diagnostic output, or the overriding of hardware interrupt + vectors. + Firstly there is \"Generic\" support which prevents the HAL + from overriding the hardware vectors that it does not use, to + instead allow an installed ROM monitor to handle them. This is + the most basic support which is likely to be common to most + implementations of ROM monitor. + \"GDB_stubs\" provides support when GDB stubs are included in + the ROM monitor or boot ROM." + } ==================================== and add the following to redboot_ROM.ecm, ======================== +cdl_option CYGSEM_HAL_USE_ROM_MONITOR { + inferred_value 0 0 +}; ======================== maybe you should recompile the redboot[ROM], and ap[RAM] then try again,good luck....^^



Thanks RandyLin:

here is my mlt_arm_snds_rom.ldi and mlt_arm_snds_ram.ldi which you want to
see:

mlt_arm_snds_ram.ldi:

#include <cyg/infra/cyg_type.inc>

MEMORY
{
    ram : ORIGIN = 0x000000, LENGTH = 0x01000000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
    SECTION_rom_vectors (ram, 0x50000, LMA_EQ_VMA)
    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
    SECTIONS_END
}

and mlt_arm_snds_rom.ldi:

#include <cyg/infra/cyg_type.inc>

MEMORY
{
    ram : ORIGIN = 0, LENGTH = 0x1000000
    rom : ORIGIN = 0x1800000, LENGTH = 0x80000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_rom_vectors (rom, 0x1800000, LMA_EQ_VMA)
    SECTION_text (rom, ALIGN (0x1), LMA_EQ_VMA)
    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
    SECTION_data (ram, 0x20000, FOLLOWING (.gcc_except_table))
    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
    SECTIONS_END
}

I did as you said(Only modified ROM and RAM config as above ),and using GDB

can load app and app works perfectly fine.But when loading app using
redboot
commands "load -m xmodem"("load -m tftp" is same),and using "go" to execute

app,redboot still will display strange string as

"$T0a0f:86000000;0d:80060200;#17$T0a0f:86000000;0d:80060200;
#17$T0a0f:86000000;0d:80060"

Even if added the macro "CYGSEM_HAL_USE_ROM_MONITOR" in file
hal_arm_snds.cdl,the result were same.What is your detail steps in your
successful executing app under redboot commands?

Thanks lot!

zheng




>From: RandyLin@mxic.com.tw
>To: ecos-discuss@sources.redhat.com
>CC: wj_zheng10@hotmail.com
>Subject: [ECOS] How to handle it???
>Date: Wed, 3 Dec 2003 10:05:08 +0800
>
>
>Can you use "load -m ymodem" or "load -m xmodem" to load ap??
>I saw your mlt_arm_snds_rom.ldi and mlt_arm_snds_ram.ldi....it may be
>wrong...
>I assume your redboot is ROM mode, so redboot's data section is at
0x20000
>when u use arm-elf-gdb to load ap(RAM mode), it overwrite the redboot's
>data section,
>because your mlt_arm_snds_ram.ldi locate the rom_vectors and following
>section to 0x20000
>so that's why u got the "Ignoring packet error, continuing..",
>I modify the SECTION_rom_vectors (ram, 0x00050000, LMA_EQ_VMA) in
>mlt_arm_snds_ram.ldi
>"-r" option is for binary data, your ap is elf format, don't use "-r"
>can u post the whole mlt_arm_snds_rom.ldi?
>I don't know why you got the message "0x20000 which is not in RAM"
>wish this help.
>
>
>
>
>Thanks RandyLin:
> Now my redboot can work,and I can use redboot command "load
>......-m
>
>tftp....."to download app to snds board.
> Howerer, if not using -r option,the error as displayed "***Abort!
>Attempt to load ELF data to address: 0x00020000 which is not in RAM".
> If using -r option,app looks like to be downloaded correctly,but
>the
>display is "Raw file loaded 0x00300000-0x003c6116, assumed entry at
>0x00300000",and then if using redboot command "go 0x00300000" to execute
>the app,the redboot will display some strange strings as
>"
>$T0a0f:86000000;0d:80060200;#17$T0a0f:86000000;0d:80060200;
>#17$T0a0f:8600"on
>console.
>
>to above,the config is SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA) and
>SECTION_rom_vectors (ram, 0x20000, LMA_EQ_VMA) in file
mlt_arm_snds_ram.ldi
>
>and SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA) and SECTION_data
(ram,
>
>0x20000, FOLLOWING (.gcc_except_table)) in mlt_arm_snds_rom.ldi
>
>If using arm-elf-gdb to download app,the steps is as following:
>1 [root@zheng root]#arm-elf-gdb
>2(gdb) target remote /dev/ttyS0
>Remote debugging using /dev/ttyS0
>0x01804b30 in ?? ()
>(gdb) load /tftpboot/hello
>Loading section .rom_vectors, size 0x40 lma 0x20000
>Loading section .text, size 0xfe00 lma 0x20040
>Ignoring packet error, continuing...
>Ignoring packet error, continuing...
>Ignoring packet error, continuing...
>
>and gdb use the same serial line as the hyperspatial,the baudrate is
38400.
>
>
>Why did these error happen?Can some one have good idea to handle it?
>
>Thanks a lot!
>
>_________________________________________________________________
>Help STOP SPAM with the new MSN 8 and get 2 months FREE*
>http://join.msn.com/?page=features/junkmail
>
>
>--
>Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
>and search the list archive: http://sources.redhat.com/ml/ecos-discuss
>
>
>
>
>
>
hi,RandyLin:
I don't know if you had done some other steps or made some other modification,but I did as what you had said,it seems no use.why?


Thanks lot!

zheng

>
>--
>Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
>and search the list archive: http://sources.redhat.com/ml/ecos-discuss
>

_________________________________________________________________
Winterize your home with tips from MSN House & Home.
http://special.msn.com/home/warmhome.armx







_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail



-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]