//*---------------------------------------------------------------------------- //* ATMEL Microcontroller Software Support - ROUSSET - //*---------------------------------------------------------------------------- //* The software is delivered "AS IS" without warranty or condition of any //* kind, either express, implied or statutory. This includes without //* limitation any warranty or condition with respect to merchantability or //* fitness for any particular purpose, or against the infringements of //* intellectual property rights of others. //*---------------------------------------------------------------------------- //* File Name : dbgu.c //* Object : DBGU routines written in C //* Creation : JG 16/Aug/2004 //*---------------------------------------------------------------------------- // Include Standard files #include "Board.h" //*--------------------------1-------------------------------------------------- //* \fn AT91F_DBGU_Printk //* \brief This function is used to send a string through the DBGU channel (Very low level debugging) //*---------------------------------------------------------------------------- void AT91F_DBGU_Printk( char *buffer) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; unsigned int temp; while(*buffer != '\0') { temp=0; while (temp==0) { if ( (pDbgu->DBGU_CSR & 0x0200) == 0) temp=0; else temp=1; } pDbgu->DBGU_THR = *buffer; buffer++; } } void Init_DBGU_CLK(void) { AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS)); } void Init_DBGU_BGR(unsigned short baud) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; pDbgu->DBGU_BRGR = (unsigned short)baud; } void DBGU_TX_Enable(void) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; pDbgu->DBGU_CR = 0x00000040; } void DBGU_RX_Enable(void) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; pDbgu->DBGU_CR = 0x00000010; } void DBGU_RX_TX_RST_DIS(void) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; pDbgu->DBGU_CR = 0x000000AC; } void DBGU_Parity_Cfg(unsigned int par) { AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; pDbgu->DBGU_MR = par << 9; } void Init_DBGU(void) { AT91F_DBGU_CfgPIO(); DBGU_RX_TX_RST_DIS(); Init_DBGU_BGR(26); //26 <=> 115kBd DBGU_Parity_Cfg(4); DBGU_TX_Enable(); DBGU_RX_Enable(); }