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
}