[ECOS] How to handle it???

RandyLin@mxic.com.tw RandyLin@mxic.com.tw
Wed Dec 3 09:21:00 GMT 2003


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
>
>
>
>
>
>
>
>--
>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







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



More information about the Ecos-discuss mailing list