public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: trollepi jj <jackoaway@hotmail.com>
Cc: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS] how work synthetic for exceptions
Date: Thu, 03 Apr 2008 12:38:00 -0000	[thread overview]
Message-ID: <47F4CCD3.8090104@mlbassoc.com> (raw)
In-Reply-To: <BAY121-W43C92BE891048CDF3A26E2ADF70@phx.gbl>

[-- Attachment #1: Type: text/plain, Size: 2293 bytes --]

trollepi jj wrote:
> Hi,
> I try do modify the execution of a thread for the synthetic target.
> I've done that for an at91 board (using SWI,exception hanler and HAL_SavedRegisters to store the context info).
> I put an exception handler for the CYG_HAL_SYS_SIGILL to see if i get the info pointers of the handler (3rd parameter of the function).
> I reach the exception handler and have this backtrace call from gdb
> 
> 
> #0  simple_syscall_handler (data=2, number=0, info=0) at main.c:56
> #1  0x01004c7c in Cyg_Exception_Control::deliver_exception (this=0x2004560, exception_number=0, 
>     exception_info=0) at /home/pitrolle/ecos/ecos/packages/kernel/current/src/common/except.cxx:235
> #2  0x010042bf in Cyg_Thread::deliver_exception (this=0x20004c0, exception_number=0, exception_info=0)
>     at /home/pitrolle/ecos/ecos/packages/kernel/current/src/common/thread.cxx:1013
> #3  0x01004ce0 in cyg_hal_deliver_exception (code=0, data=0)
>     at /home/pitrolle/ecos/ecos/packages/kernel/current/src/common/except.cxx:248
> #4  0x0100160d in synth_exception_sighandler (sig=4)
>     at /home/pitrolle/ecos/ecos/packages/hal/synth/arch/current/src/synth_intr.c:460
> #5  0x01002e18 in cyg_hal_sys_restore_rt ()
>     at /home/pitrolle/ecos/ecos/packages/hal/synth/i386linux/current/src/syscall-i386-linux-1.0.S:446
> #6  0x00000004 in ?? ()
> #7  0x0100418c in idle_thread_main (data=0)
>     at /home/pitrolle/ecos/ecos/packages/kernel/current/src/common/thread.cxx:1231
> #8  0x01004be0 in Cyg_HardwareThread::thread_entry (thread=0x20004c0)
>     at /home/pitrolle/ecos/ecos/packages/kernel/current/src/common/thread.cxx:95
> #9  0x00000000 in ?? ()
> 
> I have severals questions :
>  - What is the real aim of cyg_hal_sys_restore_rt?
>  - If I want to get the context of the thread on the exception handler (info about saved registers like previous pc,sp,...) , what can i process?

Note: if you're trying to use the SWI exception, then I think
you need to apply the attached patch (I've not had a chance to
try it as I don't have access to ARM hardware).

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

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 615 bytes --]

Index: hal/arm/arch/current/src/vectors.S
===================================================================
--- hal/arm/arch/current/src/vectors.S	(revision 3391)
+++ hal/arm/arch/current/src/vectors.S	(working copy)
@@ -539,7 +539,8 @@
         tst     r1,#CPSR_THUMB_ENABLE
         subeq   r0,lr,#4                // PC at time of SWI (ARM)
         subne   r0,lr,#2                // PC at time of SWI (thumb)
-        mov     r2,#CYGNUM_HAL_EXCEPTION_INTERRUPT
+        mov     r2,#CYGNUM_HAL_EXCEPTION_SOFTWARE_INTERRUPT
+        mov     r3,sp
         b       call_exception_handler
 
         .code   32


[-- Attachment #3: Type: text/plain, Size: 148 bytes --]

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

  reply	other threads:[~2008-04-03 12:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-03 12:26 trollepi jj
2008-04-03 12:38 ` Gary Thomas [this message]
2008-04-03 12:48   ` trollepi jj
2008-04-03 12:56 ` Andrew Lunn
2008-04-03 13:24   ` trollepi jj
  -- strict thread matches above, loose matches on Subject: below --
2008-04-03 12:01 trollepi jj
2008-04-03 14:08 ` Bart Veer
2008-04-09  9:10   ` trollepi jj
2008-04-09  9:46     ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47F4CCD3.8090104@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=ecos-discuss@ecos.sourceware.org \
    --cc=jackoaway@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).