/*******************************************************/ /* file: ports.h */ /* abstract: This file contains extern declarations */ /* for providing stimulus to the JTAG ports.*/ /*******************************************************/ #ifndef ports_dot_h #define ports_dot_h #include "mcf5xxx.h" #include "mcf523x.h" static char *__IPSBAR=(char*) 0x40000000; #define JTAG_TMS_ON (MCF_GPIO_PPDSDR_TIMER=MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER5) #define JTAG_TMS_OFF (MCF_GPIO_PCLRR_TIMER=~MCF_GPIO_PCLRR_TIMER_PCLRR_TIMER5) #define JTAG_TDI_ON (MCF_GPIO_PPDSDR_TIMER=MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER4) #define JTAG_TDI_OFF (MCF_GPIO_PCLRR_TIMER=~MCF_GPIO_PCLRR_TIMER_PCLRR_TIMER4) #define JTAG_TCK_ON (MCF_GPIO_PPDSDR_TIMER=MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER2) #define JTAG_TCK_OFF (MCF_GPIO_PCLRR_TIMER=~MCF_GPIO_PCLRR_TIMER_PCLRR_TIMER2) #define JTAG_TDO (((MCF_GPIO_PPDSDR_TIMER&MCF_GPIO_PCLRR_TIMER_PCLRR_TIMER3)!=0)&1) #define TMS MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER5 #define TDI MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER4 #define TCK MCF_GPIO_PPDSDR_TIMER_PPDSDR_TIMER2 #define MCU_JTAG MCF_GPIO_PODR_TIMER #define MCU_JTAG_SET MCF_GPIO_PPDSDR_TIMER #define MCU_JTAG_CLEAR MCF_GPIO_PCLRR_TIMER #define USLEEP(usec) {if(usec>1)usec <<= 2; for(;usec;usec--);} /* set the port "p" (TCK, TMS, or TDI) to val (0 or 1) */ extern void setPort(short p, short val); /* read the TDO bit and store it in val */ extern unsigned char readTDOBit(); /* make clock go down->up->down*/ extern void pulseClock(); /* read the next byte of data from the xsvf file */ extern void jtag_setFile(char *fptr); extern void readByte(unsigned char *data); extern void waitTime(long microsec); #endif