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