]> git.sur5r.net Git - freertos/blob - Demo/uIP_Demo_IAR_ARM7/SrcIAR/dbgu.c
First version under SVN is V4.0.1
[freertos] / Demo / uIP_Demo_IAR_ARM7 / SrcIAR / dbgu.c
1 //*----------------------------------------------------------------------------\r
2 //*         ATMEL Microcontroller Software Support  -  ROUSSET  -\r
3 //*----------------------------------------------------------------------------\r
4 //* The software is delivered "AS IS" without warranty or condition of any\r
5 //* kind, either express, implied or statutory. This includes without\r
6 //* limitation any warranty or condition with respect to merchantability or\r
7 //* fitness for any particular purpose, or against the infringements of\r
8 //* intellectual property rights of others.\r
9 //*----------------------------------------------------------------------------\r
10 //* File Name           : dbgu.c\r
11 //* Object              : DBGU routines written in C\r
12 //* Creation            : JG   16/Aug/2004\r
13 //*----------------------------------------------------------------------------\r
14 \r
15 // Include Standard files\r
16 #include "Board.h"\r
17 \r
18 //*--------------------------1--------------------------------------------------\r
19 //* \fn    AT91F_DBGU_Printk\r
20 //* \brief This function is used to send a string through the DBGU channel (Very low level debugging)\r
21 //*----------------------------------------------------------------------------\r
22 void AT91F_DBGU_Printk( char *buffer)\r
23 {\r
24     AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
25     unsigned int temp;\r
26     \r
27     while(*buffer != '\0') \r
28     {\r
29         temp=0;\r
30         \r
31         while (temp==0)\r
32         {\r
33           if ( (pDbgu->DBGU_CSR & 0x0200) == 0)\r
34             temp=0;\r
35           else\r
36             temp=1;\r
37         }\r
38 \r
39         pDbgu->DBGU_THR = *buffer;\r
40         buffer++;\r
41     }\r
42 }\r
43 \r
44 \r
45 void Init_DBGU_CLK(void)\r
46 {\r
47   AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS));\r
48 }\r
49 \r
50 void Init_DBGU_BGR(unsigned short baud)\r
51 {\r
52   AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
53   \r
54   pDbgu->DBGU_BRGR = (unsigned short)baud;\r
55 }\r
56 \r
57 void DBGU_TX_Enable(void)\r
58 {\r
59   AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
60   \r
61   pDbgu->DBGU_CR = 0x00000040;\r
62 }\r
63 \r
64 void DBGU_RX_Enable(void)\r
65 {\r
66   AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
67   \r
68   pDbgu->DBGU_CR = 0x00000010;\r
69 }\r
70 \r
71 void DBGU_RX_TX_RST_DIS(void)\r
72 {\r
73   AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
74   pDbgu->DBGU_CR = 0x000000AC;\r
75 }\r
76 \r
77 void DBGU_Parity_Cfg(unsigned int par)\r
78 {\r
79   AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
80   \r
81   pDbgu->DBGU_MR = par << 9;\r
82 }\r
83 \r
84 \r
85 void Init_DBGU(void)\r
86\r
87   AT91F_DBGU_CfgPIO();\r
88   DBGU_RX_TX_RST_DIS();\r
89   Init_DBGU_BGR(26);  //26 <=> 115kBd\r
90   DBGU_Parity_Cfg(4);\r
91   DBGU_TX_Enable();   \r
92   DBGU_RX_Enable();\r
93 }\r
94 \r
95 \r