source: svn/trunk/newcon3bcm2_21bu/dst/dhl/api/include/DHL_COM.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 4.9 KB
Line 
1/**
2        @file
3                DHL_COM.h
4
5        @brief
6                PHOENIX HAL library
7
8        Communication API interface (UART, I2C, ..)
9
10        Copyright 2006~2010 Digital STREAM Technology, Inc.
11        All Rights Reserved
12*/
13
14
15#ifndef __DHL_COM_H__
16#define __DHL_COM_H__
17
18
19#include "DHL_OSAL.h"
20
21
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27
28
29#if COMMENT
30____Overview____(){}
31#endif
32
33/**
34        @file DHL_COM.h
35       
36        À̰÷¿¡ ÀÌ ¸ðµâ¿¡ ´ëÇØ ¼³¸íÀÌ ÇÊ¿äÇÑ °¢Á¾ ³»¿ë ±â¼ú..
37       
38        module overview
39                -
40                -
41
42        APIs
43       
44        implementations
45       
46        dependencies           
47       
48        nv parameters
49               
50       
51       
52        Å×À̺í, Ç¥, ±×¸² µîµµ ÇÊ¿äÇϸé ascii code¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¼º..
53        (Âü°í) Á¦´ë·Î º¸ÀÌ·Á¸é ¸Ç ¿ÞÂÊÀ» Á¦¿ÜÇϰí´Â TAB µîÀÇ »ç¿ëÀ» ÇÏÁö ¾Ê¾Æ¾ß ÇÔ.
54
55        example)
56        fifo queue diagram
57       
58            start  rp  wp      end
59                +------+---+------+
60                |      |XXX|      |        <--- API call
61                +------+---+------+
62                         
63
64        @todo
65                todo »çÇ×Àº ÄÚ¸àÆ® ¾î´À ºÎºÐÀ̵çÁö ÀÌ ¸í·É¾î¸¦ Ȱ¿ëÇÏÀÚ.
66*/
67
68
69#if COMMENT
70____Config____(){}
71#endif
72
73/*
74        ÀÌ ºÎºÐÀº º°µµÀÇ DHL_XXX_Config configuration file À»
75        Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°À½.
76*/
77
78
79#if COMMENT
80____Types____(){}
81#endif
82
83/*
84        ´Ù¸¥ ¸ðµâµé°ú °øÀ¯ µÇ´Â structure ¹× enumerations.
85*/
86
87
88#if COMMENT
89____Defines____(){}
90#endif
91
92
93/** @brief UART ³»ºÎ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¡·¯ °ªµé.
94
95        ±×·¯³ª API´Â ¸ðµÎ DHL_RESULT ŸÀÔÀ» »ç¿ëÇØ¾ß ÇϹǷÎ
96        Á÷Á¢ÀûÀ¸·Î À̵éÀ» »ç¿ëÇÒ ¼ö´Â ¾øÀ½.
97*/
98typedef enum
99{
100        eDHL_COM_US__OK,
101        eDHL_UART_ERROR,
102        eDHL_UART_AlreadyOpen,
103        eDHL_UART_OpenErr,
104        eDHL_UART_WriteErr,
105        eDHL_UART_UnknownCmd
106       
107} tDHL_COM_UartStatus;
108
109
110/** @brief µ¥ÀÌÅÍ ¼ö½Å Äݹé ÇÔ¼ö ŸÀÔ.
111
112*/
113typedef void (*tDHL_COM_RX_CB)(UINT8 *pData, UINT32 size);
114
115
116/** @brief Åë½Å Æ÷Æ® ¼³Á¤ ŸÀÔ.
117
118        DHL_COM_Config API ¿¡¼­ ¾î¶² ¼³Á¤À» ÇÒ °ÍÀÎÁö ÁöÁ¤.
119*/
120typedef enum 
121{
122        /**     Åë½Å ¼Óµµ ¼³Á¤. ÀÌ ¼³Á¤À» Çϱâ Àü±îÁö´Â ¼Û¼ö½ÅÀÌ Á¦ÇѵȴÙ.
123                ÀÎÀÚ: UINT32 baudrate.
124                        °ªÀº 9600, 19200, 115200 °ú °°ÀÌ ±×³É ¼ýÀÚ¸¦ »ç¿ëÇÑ´Ù.
125        */
126        eDHL_COM_CT_Baudrate,
127
128        /** Àü¼Û ¸ðµå ¼³Á¤.
129                ÀÎÀÚ: BOOL bAsyncTxMode.
130                        TRUE¸¦ ÁöÁ¤Çϸé async mode·Î Àü¼ÛÇÑ´Ù.
131        */
132        eDHL_COM_CT_AsyncTxMode,
133       
134       
135} tDHL_COM_ConfigType;
136
137
138/** @brief Åë½Å¿ë Æ÷Æ® ½Äº°ÀÚ.
139
140        ¸¹Àº APIµéÀÌ ÀÌ ½Äº°ÀÚ¸¦ ù¹øÂ° ÀÎÀÚ·Î ¿ä±¸ÇÑ´Ù.
141        º¸ÅëÀº ÇϳªÀÇ Åë½Å Æ÷Æ®¸¸ Á¦°øÇϴµ¥, ±×·² °æ¿ì ID´Â ¹«½ÃµÉ ¼ö ÀÖ´Ù.
142*/
143typedef UINT32 tDHL_COM_ID;
144
145
146
147#if COMMENT
148____API____(){}
149#endif
150
151/**
152        @brief Åë½Å ¸ðµâÀ» ÃʱâÈ­ ÇÑ´Ù.
153       
154        ÁÖÀÇ»çÇ×:
155                config api¸¦ È£ÃâÇÏ¿© Åë½Å ¼³Á¤ÀÌ ¿Ï·áµÇ±â Àü ±îÁö´Â ½ÇÁ¦ Åë½Å ÀÛ¾÷Àº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.
156*/
157void DHL_COM_Init(void);
158
159/**
160        @brief Åë½Å ¸ðµâÀ» ´Ý´Â´Ù.
161*/
162void DHL_COM_Uninit(void);
163
164
165/**
166        @brief Tx Àü¼ÛÀÌ Áö±Ý ¹Ù·Î °¡´ÉÇÑÁö üũÇÑ´Ù.
167
168        @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£.
169        @return
170                TRUE:  busy. ÇöÀç´Â Àü¼Û ºÒ°¡.
171                FALSE: not busy. Àü¼Û °¡´ÉÇÔ.
172*/
173BOOL DHL_COM_IsTxBusy(tDHL_COM_ID port);
174
175/**
176        @brief Åë½Å Æ÷Æ®¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù.
177       
178        ³»ºÎ ¿É¼Ç¿¡ µû¶ó blocking callÀÌ µÉ ¼öµµ ÀÖ°í,
179        ÀÎÅÍ·´Æ® ¶Ç´Â task¿¡¼­ Àü¼ÛÀÌ µÉ ¼öµµ ÀÖ´Ù.
180
181        Àü¼Û ¹æ½Ä ¿É¼ÇÀº eDHL_COM_CT_AsyncTxMode ¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù.
182
183        @param[in] port  »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£.
184        @param[in] pData Àü¼ÛÇÒ µ¥ÀÌÅÍ ¹öÆÛ.
185        @param[in] size  Àü¼ÛÇÒ µ¥ÀÌÅÍ ±æÀÌ. ¹ÙÀÌÆ® ´ÜÀ§.
186*/
187DHL_RESULT DHL_COM_StartTx(tDHL_COM_ID port, UINT8 *pData, UINT32 size);
188
189/**
190        @brief ÇöÀç Àü¼Û ÀÛ¾÷À» Áß´ÜÇÑ´Ù.
191       
192        Tx µ¿ÀÛÀÌ asynchrounous (non-blocking ¹æ½Ä) À̰í,
193        ÇöÀç Àü¼Û ÁßÀÎ ÆÐŶÀÌ ÀÖ´Ù¸é Àü¼ÛÀ» Áß´ÜÇÑ´Ù.
194       
195        Tx µ¿ÀÛÀÌ synchronous ¹æ½Ä (blocking call) À̶ó¸é ÀÌ ÇÔ¼ö´Â ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù.
196        (ÀÌ °æ¿ì ¼³·É ´Ù¸¥ task¿¡¼­ abort¸¦ ½ÃµµÇÏ´õ¶óµµ abort´Â ¾ÈµÊ)
197
198        firmware update µî¿¡¼­ ´ë·®ÀÇ Å« ÆÐŶÀ» º¸³»´Â Áß Áß´ÜÇÏ´Â °æ¿ì,
199        ÀÌ API°¡ »ç¿ëµÉ ¼ö ÀÖ´Ù.
200
201        @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£.
202*/
203void DHL_COM_AbortTx(tDHL_COM_ID port);
204
205
206/*
207
208*/
209BOOL DHL_COM_IsRxReady(tDHL_COM_ID port);
210
211/*
212
213*/
214void DHL_COM_Receive(tDHL_COM_ID port, UINT8 *pBuf, UINT32 nBufSize, UINT32 *pReadSize);
215
216
217/**
218        @brief ¼ö½Å µ¥ÀÌÅ͸¦ Àü´ÞÇØ ÁÖ´Â ÄÝ¹é µî·Ï.
219
220        µ¥ÀÌÅÍ ¼ö½Å¿¡ °üÇØ¼­´Â Á÷Á¢ Read, Receive µîÀÇ API´Â Á¦°øÇÏÁö ¾Ê´Â´Ù.
221        HAL ³»ºÎ¿¡¼­ µ¥ÀÌÅÍ ¼ö½ÅÇÑ ÈÄ¿¡ »óÀ§ °èÃþ¿¡ callbackÀ» ¿Ã·ÁÁØ´Ù.
222        ÆÐŶ Çϳª ÀüüÀÇ µ¥ÀÌÅͰ¡ ´Ù ¼ö½ÅµÈ ÀÌÈÄ¿¡ callbackÀÌ È£ÃâµÈ´Ù.
223
224        Æ÷Æ® ´ç ÇϳªÀÇ ÄÝ¹é ¸¸ µî·Ï °¡´ÉÇÏ´Ù.
225        ±âÁ¸¿¡ ¸ÕÀú µî·ÏµÈ ÄݹéÀÌ ÀÖ´Â °æ¿ì ±âÁ¸ Äݹé Á¤º¸´Â Áö¿öÁø´Ù.
226
227        @param[in] port     »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£.
228        @param[in] callback µî·ÏÇÒ callback ÇÔ¼ö.
229*/
230void DHL_COM_RegisterRxCallback(tDHL_COM_ID port, tDHL_COM_RX_CB callback);
231
232/**
233        @brief Åë½Å °ü·Ã °¢Á¾ ¼³Á¤.
234       
235        config api¸¦ È£ÃâÇÏ¿© Åë½Å ¼³Á¤ÀÌ ¿Ï·áµÇ±â Àü ±îÁö´Â ½ÇÁ¦ Åë½Å ÀÛ¾÷Àº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.
236
237        @param[in] port  ¼³Á¤À» ÇÒ Åë½Å Æ÷Æ®. global ÇÑ ¼³Á¤ÀÎ °æ¿ì ÀÌ °ªÀº ¹«½ÃµÈ´Ù.
238        @param[in] type  ¼³Á¤ Á¾·ù.
239        @param[in] data  ¼³Á¤ °ª. ¾Æ·¡¿¡´Â ŸÀÔÀÌ void* ¶ó°í µÇ¾î ÀÖÁö¸¸ type °ª¿¡ µû¶ó ½ÇÁ¦ ŸÀÔÀº ´Þ¶óÁø´Ù.
240*/
241void DHL_COM_Config(tDHL_COM_ID port, tDHL_COM_ConfigType type, void *data);
242
243/**
244
245*/
246void DHL_COM_Status(void);
247
248
249
250
251#ifdef __cplusplus
252} /* extern "C" */
253#endif
254
255
256
257#endif  /* __DHL_COM_H__ */
258
Note: See TracBrowser for help on using the repository browser.