Motorola Coldfire delay() function
Charles Steaderman
charlies at poliac.com
Mon Dec 1 17:16:30 UTC 2003
I have a custom board based upon the mcf5206e Coldfire processor. I
based my custom bsp upon the excellent mcf5206elite bsp. I would like to
use a delay() function to signal an error via leds if a fatal error
occurs. There is a delay(microseconds) macro included with the
mcf5206elite bsp, but the assembly instructions that it uses are for a
full-blown M68K, not the Coldfire processor. The delay function is as
follows:
#define delay( microseconds ) \
{ register rtems_unsigned32 _delay=(microseconds); \
register rtems_unsigned32 _tmp=123; \
asm volatile( "0: \
nbcd %0 ; \
nbcd %0 ; \
dbf %1,0b" \
: "=d" (_tmp), "=d" (_delay) \
: "0" (_tmp), "1" (_delay) ); \
}
Does anyone know Coldfire assembly well enough to supply suitable,
replacement instructions for "nbcd" and "dbf"?
Thanks,
- Charlie
--
Charlie Steaderman
charlies at poliac.com
VP Engineering
Poliac Research Corporation
Phone: 952.707.6245
Cel: 612.242.6364
More information about the users
mailing list