This is the mail archive of the ecos-discuss@sourceware.org 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: data abort exception (SWI)


trollepi jj wrote:
Hi,
What do you mean by "standard tests"?
I configure ecos with the minimal packages (hal+infra+kernel) and without swi it's work fine. (2 tasks with semaphore)
So, now i try to manage swi handler without ecos, just a simple syscall implementation.
Best regards.
ps : what is "standard tests?"

Read the documentation :-( There are a complete set of unit tests for all components in eCos. Until they run, you don't have a functional base system. http://ecos.sourceware.org/docs-latest/user-guide/running-an-ecos-test-case.html

----------------------------------------
Date: Fri, 21 Mar 2008 06:20:23 -0600
From: gary@mlbassoc.com
To: jackoaway@hotmail.com
CC: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS] data abort exception (SWI)

trollepi jj wrote:
Hi,
So your patch can't work, because, the program never reach the routine software_interrupt, it always goes on abort_prefetch. This is the sample of my .ld (I do a entirely RAM project). We must not use RedBoot.
Have you tried running the standard tests with your configuration?
Until those work, you can't really proceed.

MEMORY
{
      ram  : ORIGIN = 0x04000000, LENGTH = 0x00080000
}

SECTIONS
{
SECTIONS_BEGIN SECTION_rom_vectors (ram, 0x04000000, LMA_EQ_VMA)
SECTION_fixed_vectors (ram, ALIGN (0x04), 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
}
We need swi to implement syscall like linux. So we make a swi to enter on the exception handler and after modify the fields of the info parameter (cast in HAL_SavedRegisters) to point
on a function we define(modify pc, sp). We need after all the stuff do return on the calling thread but it never goes. Thank for future help
Best regards
----------------------------------------
Date: Thu, 20 Mar 2008 10:11:33 -0600
From: gary@mlbassoc.com
To: jackoaway@hotmail.com
CC: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS] data abort exception (SWI)

trollepi jj wrote:
Hi,
I try to make a ecos project without Redboot for an atmel AT91M55800A (phycore). So it's a RAM project. I compile and debug an application without any problems.
When i try to generate a SWI (with asm("swi")), the application reach the exeption handler that I define but the number of the exception is not CYGNUM_HAL_VECTOR_SOFTWARE_INTERRUPT (number 2 that i give on cyg_exception_set_handler) but CYGNUM_HAL_VECTOR_ABORT_PREFETCH (number 3) . Maybe I might modify vector.S to do the remap (like hal_platform_setup.h ). If anybody have an idea? I search on your mailing and nothing fit well.
Why are you trying to use the SWI instruction?

In any case, it looks like there is a typo in the SWI handler.
I'm pretty sure no one has ever actually used this path!

Please try the attached patch and let me know if it fixes
your problem.

-- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------

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


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