You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.4 KiB
C
96 lines
2.4 KiB
C
19 years ago
|
//*----------------------------------------------------------------------------
|
||
|
//* 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();
|
||
|
}
|
||
|
|
||
|
|