Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00045 #include <cfg/uart.h>
00046 #include <arch/arm/atmel/debug_at91.h>
00047
00048 #if defined(DBGU_BASE)
00049
00054
00055 #ifndef NUT_DEV_DEBUG_SPEED
00056 #ifdef UARTD_INIT_BAUDRATE
00057 #define NUT_DEV_DEBUG_SPEED UARTD_INIT_BAUDRATE
00058 #else
00059 #define NUT_DEV_DEBUG_SPEED 115200
00060 #endif
00061 #endif
00062
00063 #ifdef NUT_DEV_DEBUG_READ
00064
00065 #define NUT_DEV_DEBUG_ENA (US_RXEN | US_TXEN)
00066 #if defined (PA9_DRXD_A) && defined (PA10_DTXD_A)
00067 #define NUT_DEV_DEBUG_PINS (_BV(PA9_DRXD_A) | _BV(PA10_DTXD_A))
00068 #elif defined (PA27_DRXD_A) && defined (PA28_DTXD_A)
00069 #define NUT_DEV_DEBUG_PINS (_BV(PA27_DRXD_A) | _BV(PA28_DTXD_A))
00070 #elif defined (PB14_DRXD_A) && defined (PB15_DTXD_A)
00071 #define NUT_DEV_DEBUG_PINS (_BV(PB14_DRXD_A) | _BV(PB15_DTXD_A))
00072 #define NUT_DEV_DEBUG_PDR PIOB_PDR
00073 #endif
00074
00075 #else
00076
00077 #define NUT_DEV_DEBUG_ENA US_TXEN
00078 #if defined (PA10_DTXD_A)
00079 #define NUT_DEV_DEBUG_PINS _BV(PA10_DTXD_A)
00080 #elif defined (PA28_DTXD_A)
00081 #define NUT_DEV_DEBUG_PINS _BV(PA28_DTXD_A)
00082 #elif defined (PB15_DTXD_A)
00083 #define NUT_DEV_DEBUG_PINS _BV(PB15_DTXD_A)
00084 #define NUT_DEV_DEBUG_PDR PIOB_PDR
00085 #endif
00086
00087 #endif
00088
00089 #ifndef NUT_DEV_DEBUG_PDR
00090 #define NUT_DEV_DEBUG_PDR PIOA_PDR
00091 #endif
00092
00098 static int DebugInit(NUTDEVICE * dev)
00099 {
00100 #if NUT_DEV_DEBUG_PINS
00101
00102 outr(NUT_DEV_DEBUG_PDR, NUT_DEV_DEBUG_PINS);
00103 #endif
00104
00105
00106 outr(DBGU_CR, US_RSTRX | US_RSTTX | US_RXDIS | US_TXDIS);
00107
00108 outr(DBGU_IDR, 0xFFFFFFFF);
00109
00110 #if NUT_DEV_DEBUG_SPEED
00111
00112 outr(DBGU_BRGR, At91BaudRateDiv(NUT_DEV_DEBUG_SPEED));
00113 #endif
00114
00115
00116 outr(DBGU_MR, US_CHMODE_NORMAL | US_CHRL_8 | US_PAR_NO | US_NBSTOP_1);
00117
00118
00119 outr(DBGU_CR, NUT_DEV_DEBUG_ENA);
00120
00121 return 0;
00122 }
00123
00124 static NUTFILE dbgfile;
00125
00129 NUTDEVICE devDebug = {
00130 0,
00131 {'d', 'b', 'g', 'u', 0, 0, 0, 0, 0}
00132 ,
00133 0,
00134 DBGU_BASE,
00135 0,
00136 0,
00137 &dbgfile,
00138 DebugInit,
00139 At91DevDebugIOCtl,
00140 #ifdef NUT_DEV_DEBUG_READ
00141 At91DevDebugRead,
00142 #else
00143 0,
00144 #endif
00145 At91DevDebugWrite,
00146 At91DevDebugOpen,
00147 At91DevDebugClose,
00148 #ifdef NUT_DEV_DEBUG_READ
00149 At91DevDebugSize
00150 #else
00151 0
00152 #endif
00153 };
00154
00155 #endif
00156