ConOpSys V2970  P004.07
ANVILEX control operating system
FPGA_P017_39_KG3_CB.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file FPGA_P017_39_KG3_CB.h
3 //! @brief FPGA driver calss header file for P017_39_KG3_CB.
4 //! @copyright ANVILEX GmbH
5 //! @attention No special attention requered.
6 //! $HeadURL: https://192.168.3.4:8443/svn/P004_07/ConOpSys/Hardware/P017_39_KG3_CB/FPGA_P017_39_KG3_CB.h $
7 //! $Revision: 2053 $
8 //! $Date: 2020-09-06 02:16:27 +0500 (So, 06 Sep 2020) $
9 //! $Author: minch $
10 //
11 // Copyright(C) 2004-2020 ANVILEX GmbH
12 //
13 // Redistribution and use in source and binary forms, with or without
14 // modification, are permitted provided that the following conditions are met:
15 //
16 // 1. Redistributions of source code must retain the above copyright notice,
17 // this list of conditions and the following disclaimer.
18 //
19 // 2. Redistributions in binary form must reproduce the above copyright notice,
20 // this list of conditions and the following disclaimer in the documentation
21 // and/or other materials provided with the distribution.
22 //
23 // 3. Neither the name of ANVILEX nor the names of its contributors may be
24 // used to endorse or promote products derived from this software without
25 // specific prior written permission.
26 //
27 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
31 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 // POSSIBILITY OF SUCH DAMAGE.
38 //
39 //------------------------------------------------------------------------------
40 
41 #pragma once
42 
43 //------------------------------------------------------------------------------
44 // Include standard libraries header files
45 //------------------------------------------------------------------------------
46 
47 //------------------------------------------------------------------------------
48 // Include thrid party header files
49 //------------------------------------------------------------------------------
50 
51 //------------------------------------------------------------------------------
52 // Include ConOpSys header files
53 //------------------------------------------------------------------------------
54 
55 #include "FPGA_Base.h"
56 
57 //------------------------------------------------------------------------------
58 // Include ConOpSys application header files
59 //------------------------------------------------------------------------------
60 
61 //------------------------------------------------------------------------------
62 // Global defines
63 //------------------------------------------------------------------------------
64 
65 //------------------------------------------------------------------------------
66 // Global macros
67 //------------------------------------------------------------------------------
68 
69 //------------------------------------------------------------------------------
70 // Class declaration
71 //------------------------------------------------------------------------------
72 
73 //! @brief FPGA hardware dependent driver class for P017_39_KG3_CB
75 {
76 
77  //----------------------------------------------------------------------------
78  // Public defines, methods and variables
79  //----------------------------------------------------------------------------
80 
81  public:
82 
83  //--------------------------------------------------------------------------
84  // Public enumerators
85  //--------------------------------------------------------------------------
86 
87  //--------------------------------------------------------------------------
88  // Public structures
89  //--------------------------------------------------------------------------
90 
91  //!-------------------------------------------------------------------------
92  //! @brief FPGA base class constructor method.
93  //! @note None
94  //! \par Override
95  //! Not allowed
96  //! @attention Don't call this method directly.
97  //--------------------------------------------------------------------------
98 
100 
101  //!-------------------------------------------------------------------------
102  //! @brief FPGA base class destructor method.
103  //! @note None
104  //! \par Override
105  //! Not allowed
106  //! @attention Don't call this method directly.
107  //--------------------------------------------------------------------------
108 
109  virtual ~TFPGA_P017_39_KG3_CB();
110 
111  //!-------------------------------------------------------------------------
112  //! @brief FPGA interrupt processing method.
113  //! @note None
114  //! @return None
115  //! \par Override
116  //! Not allowed
117  //! @attention Don't call this method directly.
118  //--------------------------------------------------------------------------
119 
120  VOID Interrupt();
121 
122  //!-------------------------------------------------------------------------
123  //! @brief Configure FPGA method.
124  //! @note None
125  //! @return BOOL - Return FPGA present status
126  //! @retval false - Load FPGA configuration failed
127  //! @retval true - Load FPGA configuration sucessed
128  //! \par Override
129  //! Not allowed
130  //! @attention None
131  //--------------------------------------------------------------------------
132 
133  virtual BOOL Configure();
134 
135  //!-------------------------------------------------------------------------
136  //! @brief Enable FPGA interrupt method.
137  //! @note None
138  //! @param [in] u32_TickPriority - Priority
139  //! @return None
140  //! \par Override
141  //! Not allowed
142  //! @attention None
143  //--------------------------------------------------------------------------
144 
145  virtual VOID Interrupt_Enable( U32 u32_TickPriority );
146 
147  //!-------------------------------------------------------------------------
148  //! @brief Disable FPGA interrupt method.
149  //! @note None
150  //! @return None
151  //! \par Override
152  //! Not allowed
153  //! @attention None
154  //--------------------------------------------------------------------------
155 
156  virtual VOID Interrupt_Disable();
157 
158  //!-------------------------------------------------------------------------
159  //! @brief Get FPGA PROG pin status method.
160  //! @note None
161  //! @return BOOL - Return FPGA PROG pin status
162  //! @retval false - FPGA PROG pin is low
163  //! @retval true - FPGA PROG pin is high
164  //! \par Override
165  //! Not allowed
166  //! @attention None
167  //--------------------------------------------------------------------------
168 
169  virtual BOOL FPGA_PROG_Pin_Status();
170 
171  //!-------------------------------------------------------------------------
172  //! @brief Get FPGA DONE pin status method.
173  //! @note None
174  //! @return BOOL - Return FPGA DONE pin status
175  //! @retval false - FPGA DONE pin is low
176  //! @retval true - FPGA DONE pin is high
177  //! \par Override
178  //! Not allowed
179  //! @attention None
180  //--------------------------------------------------------------------------
181 
182  virtual BOOL FPGA_DONE_Pin_Status();
183 
184  //!-------------------------------------------------------------------------
185  //! @brief Send boot ststus information message about FPGA driver over communication link protocol
186  //! @note This method sends boot ststus information about FPGA driver over specified communication link protocol.
187  //! @param [in] *object_Protocol - Pointer to the communication link protocol
188  //! @return None
189  //! \par Override
190  //! Not allowed
191  //! @attention None
192  //--------------------------------------------------------------------------
193 
194  virtual VOID Send_Boot_Information( TProtocol_Base *object_Protocol );
195 
196  //----------------------------------------------------------------------------
197  // Protected defines, methods and variables
198  //----------------------------------------------------------------------------
199 
200  protected:
201 
202  //--------------------------------------------------------------------------
203  // Protected enumerators
204  //--------------------------------------------------------------------------
205 
206  //--------------------------------------------------------------------------
207  // Public structures
208  //--------------------------------------------------------------------------
209 
210  //--------------------------------------------------------------------------
211  // Protected variables
212  //--------------------------------------------------------------------------
213 
214  //----------------------------------------------------------------------------
215  // Private defines, methods and variables
216  //----------------------------------------------------------------------------
217 
218  private:
219 
220  //--------------------------------------------------------------------------
221  // Private enumerators
222  //--------------------------------------------------------------------------
223 
224  //--------------------------------------------------------------------------
225  // Private structures
226  //--------------------------------------------------------------------------
227 
228  //--------------------------------------------------------------------------
229  // Private variables
230  //--------------------------------------------------------------------------
231 
232 };
233 
234 //------------------------------------------------------------------------------
235 // End Of File
236 //------------------------------------------------------------------------------
237 
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
FPGA chip base class implementation file.
FPGA base class.
Definition: FPGA_Base.h:81
FPGA hardware dependent driver class for P017_39_KG3_CB.
Definition: FPGA_P017_39_KG3_CB.h:75
virtual BOOL FPGA_PROG_Pin_Status()
Get FPGA PROG pin status method.
Definition: FPGA_P017_39_KG3_CB.cpp:1065
virtual BOOL Configure()
Configure FPGA method.
Definition: FPGA_P017_39_KG3_CB.cpp:134
virtual VOID Interrupt_Disable()
Disable FPGA interrupt method.
Definition: FPGA_P017_39_KG3_CB.cpp:1143
TFPGA_P017_39_KG3_CB()
FPGA base class constructor method.
Definition: FPGA_P017_39_KG3_CB.cpp:103
virtual BOOL FPGA_DONE_Pin_Status()
Get FPGA DONE pin status method.
Definition: FPGA_P017_39_KG3_CB.cpp:1077
virtual ~TFPGA_P017_39_KG3_CB()
FPGA base class destructor method.
Definition: FPGA_P017_39_KG3_CB.cpp:111
virtual VOID Interrupt_Enable(U32 u32_TickPriority)
Enable FPGA interrupt method.
Definition: FPGA_P017_39_KG3_CB.cpp:1129
virtual VOID Send_Boot_Information(TProtocol_Base *object_Protocol)
Send boot ststus information message about FPGA driver over communication link protocol.
Definition: FPGA_P017_39_KG3_CB.cpp:1089
VOID Interrupt()
FPGA interrupt processing method.
Definition: FPGA_P017_39_KG3_CB.cpp:119
Definition: Protocol_Base.h:57