public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] Failure to run application
@ 2004-06-10 10:29 Henrik Mau
  0 siblings, 0 replies; only message in thread
From: Henrik Mau @ 2004-06-10 10:29 UTC (permalink / raw)
  To: ecos-discuss

I have an ARM Integrator with an ARM7TDMI processor on it. Redboot has 
been built and seems to be running fine.
I have built the twothreads example using a default build of eCos for 
ARM Integrator 7TDMI.
After I have downloaded the program using Insight I step through the 
code using asm steps.

When executing the platform setup, setting up LED and control vectors, 
an exception occurs and the program counter starts executing code in 
Cyg_Scheduler::unlock in the application although the scheduler has not 
started yet. It finally ends in a SIGBUS error somewhere in the 
scheduler code.

When looking into the details of what the assembly code does I noticed 
some discrepancies between the source code in hal_platform_setup.h and 
the disassembled shown in Insight. Specifically, "mov" instructions 
shown in Insight are "ldr" instructions in the source code. Even 
stranger however, is that loading a value into a register using "mov" 
does not work. The value is not updated. Thinking that Insight might not 
be updating the contents of the register window properly I rewrote the 
exception handler for Redboot and dumped the registers to memory every 
time an exception happens. This showed that the registers do in fact not 
get updated.



    ldr     r0,=INTEGRATOR_DBG_BASE                                  
    ldr     r1,=0                                                    
    strb    r1, [r0, #INTEGRATOR_DBG_LEDS_OFFSET]                    
    ldr        r0, =INTEGRATOR_HDR_BASE                                 
    ldr        r1, [r0, #INTEGRATOR_HDR_CTRL_OFFSET]                    
    orr        r1, r1, #INTEGRATOR_HDR_CTRL_REMAP                     
    str     r1, [r0, #INTEGRATOR_HDR_CTRL_OFFSET]                    
    ldr        r1, =INTEGRATOR_IRQCONT_BASE                             
    ldr        r0, =0xFFFFFFFF                                          
    str        r0, [r1, #INTEGRATOR_IRQENABLECLEAR]                  
    str        r0, [r1, #INTEGRATOR_FIQENABLECLEAR]                  
    ldr     r0,=INTEGRATOR_DBG_BASE                                  
    ldr     r1,=0xF                                                  
    strb    r1, [r0, #INTEGRATOR_DBG_LEDS_OFFSET]
 
 
 
    mov        r0, #436207616 ; 0x1a000000                          r0 
retains the value 1
    mov        r1, #0                                                 
                r1 retains the value 1
    strb    r1, [r0, #4]
    mov        r0, #268435456 ; 0x10000000                         r0 
retains the value 1
    ldr        r1, [r0, #12]                                             
            r1 gets a new value, but not the expected one
    orr        r1, r1, #4                                             
                r1 becomes 0??
    str        r1, [r0, #12]
    mov        r1, #335544320 ; 0x14000000                         r1 
retains the value 0
    ldr        r0, [pc, #1224] ; 0x40530 <_eCos_id+20>        Exception 
happens when executing this instruction. Link register points to next 
instruction.
    str        r0, [r1, #12]
    str        r0, [r1, #44]
    mov        r0, #436207616 ; 0x1a000000
    mov        r1, #15
    strb    r1, [r0, #4]

 
The only explanation I can come up with is that the disassembled source 
code I shown is not correct and something entirely different takes place.
I am at a loss as to what else it could be and would appreciate any help 
I can get.

Kind regards,
Henrik


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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-06-10 10:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-06-10 10:29 [ECOS] Failure to run application Henrik Mau

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