Trouble with IAP and Thumb-Interworking
2005-02-10 by firegenie1980
Hi,
I have been trying to get some IAP commands working with a program I
am developing.
I have got the IRQ disable/enable commands working fine, well the
system accepts the commands and runs them. However when my program
encounters an IAP command it just freezes the board so a restart is
needed.
This is the first time me or any of my collegues have used these
commands some Im in the dark really and asking for help! Can anyone
see any problems here? I have Thumb-Interworking checked in the
assembly settings, however when I get the following warnings for each
file:
Warning:
/cygdrive/c/Cygnus/Arm-Tools/Bin/../lib/gcc-lib/arm-thumb-elf/3.3.1/../../../../arm-thumb-elf/bin/ld:
Warning: flash_record.o does not support interworking, whereas
Scheduler.elf does
Also this is my code so far, only one IAP command is trying to be ran
at the moment. Commented out it works fine.
...
Previous_IRQ_States = DisableInterrupts(INTERRUPT_DISABLE_MASK);
...
IAP_Command[0] = 50;
Flash_Prepare(IAP_Command);
...
RestoreInterrupts(Previous_IRQ_States);
...
---------------
And the function Flash_Prepare:
void Flash_Prepare(unsigned int IAP_Command[])
{
// Start and end sector numbers
IAP_Command[1] = 14;
IAP_Command[2] = 14;
// Execute IAP commands
IAP_Entry (IAP_Command, IAP_Result);
}
Any ideas anyone as I am at a dead end and Im sure its just a simple
problem which I am overlooking. More than likely to do with the warnings.
Thanks,
FG