[ECOS] Intel P30 FLASH Help

Benny Chen bennyc@itee.uq.edu.au
Wed Apr 5 04:59:00 GMT 2006


Hi Guys,
I am running Redboot on an Cirrus ARM9 board which used to use the Intel 
J3 flash.  I am in the mids of getting it to work on a Intel P30 flash.  

I have managed to change the download utility used by Cirrus to include 
attributes unique to the P30 flash
  - Asymmetric Block size
The download seems to work find and had completed successfully.

However, when my program executes using ROMRAM startup it stops at the 
cyg_hal_start_constructors() routine in vectors.S.  It seems that the 
only diag_printf statement that prints is the one before the for loop as 
per delow.

Is this due to my download utility not downloading the redboot.bin image 
properly?

One other thing is the P30 FLASH did state that XIP programs need to 
have their .text and .data sections separated into different Programming 
Region (8Mbit blocks) , as in the .data and .text section cannot both be 
in the same 8Mbit block.

I have not done this at the moment, because I am not sure how to and do 
I need it. 

When booting the Redboot via ROMRAM does that execute the startup code 
in FLASH or does it copy it to memory before it executes?

Any help is much appreciated.

Cheers,
Benny

void
cyg_hal_invoke_constructors (void)
{
#ifdef CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
    static pfunc *p = &__CTOR_END__[-1];

    cyg_hal_stop_constructors = 0;
    for (; p >= __CTOR_LIST__; p--) {
        (*p) ();
        if (cyg_hal_stop_constructors) {
            p--;
            break;
        }
    }
#else
    pfunc *p;
    *diag_printf("This print OK\n");*
    for (p = &__CTOR_END__[-1]; p >= __CTOR_LIST__; p--) {
        diag_printf("This didn't print\n");
        (*p) ();
    }
#endif
}


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



More information about the Ecos-discuss mailing list