센서보드 RF IRQ 테스트 중

Fork of stm-spirit1-rf-driver by ST

Committer:
jmhong
Date:
Thu Sep 20 04:46:49 2018 +0000
Revision:
85:4ca74d007fe7
Parent:
84:45b9ff78a066
Environmental test.. temp, etc...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 67:93bec0baf1de 1 /**
Wolfgang Betz 67:93bec0baf1de 2 ******************************************************************************
Wolfgang Betz 67:93bec0baf1de 3 * @file SPIRIT_Types.c
Wolfgang Betz 67:93bec0baf1de 4 * @author VMA division - AMS
Wolfgang Betz 67:93bec0baf1de 5 * @version 3.2.2
Wolfgang Betz 67:93bec0baf1de 6 * @date 08-July-2015
Wolfgang Betz 67:93bec0baf1de 7 * @brief File for SPIRIT types.
Wolfgang Betz 67:93bec0baf1de 8 * @details
Wolfgang Betz 67:93bec0baf1de 9 *
Wolfgang Betz 67:93bec0baf1de 10 * @attention
Wolfgang Betz 67:93bec0baf1de 11 *
Wolfgang Betz 67:93bec0baf1de 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
Wolfgang Betz 67:93bec0baf1de 13 *
Wolfgang Betz 67:93bec0baf1de 14 * Redistribution and use in source and binary forms, with or without modification,
Wolfgang Betz 67:93bec0baf1de 15 * are permitted provided that the following conditions are met:
Wolfgang Betz 67:93bec0baf1de 16 * 1. Redistributions of source code must retain the above copyright notice,
Wolfgang Betz 67:93bec0baf1de 17 * this list of conditions and the following disclaimer.
Wolfgang Betz 67:93bec0baf1de 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
Wolfgang Betz 67:93bec0baf1de 19 * this list of conditions and the following disclaimer in the documentation
Wolfgang Betz 67:93bec0baf1de 20 * and/or other materials provided with the distribution.
Wolfgang Betz 67:93bec0baf1de 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Wolfgang Betz 67:93bec0baf1de 22 * may be used to endorse or promote products derived from this software
Wolfgang Betz 67:93bec0baf1de 23 * without specific prior written permission.
Wolfgang Betz 67:93bec0baf1de 24 *
Wolfgang Betz 67:93bec0baf1de 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Wolfgang Betz 67:93bec0baf1de 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Wolfgang Betz 67:93bec0baf1de 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Wolfgang Betz 67:93bec0baf1de 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Wolfgang Betz 67:93bec0baf1de 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Wolfgang Betz 67:93bec0baf1de 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Wolfgang Betz 67:93bec0baf1de 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Wolfgang Betz 67:93bec0baf1de 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Wolfgang Betz 67:93bec0baf1de 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Wolfgang Betz 67:93bec0baf1de 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Wolfgang Betz 67:93bec0baf1de 35 *
Wolfgang Betz 67:93bec0baf1de 36 ******************************************************************************
Wolfgang Betz 67:93bec0baf1de 37 */
Wolfgang Betz 67:93bec0baf1de 38
Wolfgang Betz 67:93bec0baf1de 39 /* Includes ------------------------------------------------------------------*/
Wolfgang Betz 67:93bec0baf1de 40 #include "SPIRIT_Types.h"
Wolfgang Betz 67:93bec0baf1de 41 #include "MCU_Interface.h"
Wolfgang Betz 67:93bec0baf1de 42
Wolfgang Betz 67:93bec0baf1de 43
jmhong 84:45b9ff78a066 44 //180621 HJM : init 재시작을 위한 카운팅 변수
jmhong 84:45b9ff78a066 45 //static int iSpiritTypesErrorCounting = 0;
jmhong 85:4ca74d007fe7 46 #define MAX_ERROR_COUNTING 3
jmhong 84:45b9ff78a066 47 #define RETURN_ERROR_NUMBER 100
jmhong 84:45b9ff78a066 48
jmhong 84:45b9ff78a066 49
Wolfgang Betz 67:93bec0baf1de 50 /** @addtogroup SPIRIT_Libraries
Wolfgang Betz 67:93bec0baf1de 51 * @{
Wolfgang Betz 67:93bec0baf1de 52 */
Wolfgang Betz 67:93bec0baf1de 53
Wolfgang Betz 67:93bec0baf1de 54
Wolfgang Betz 67:93bec0baf1de 55 /** @addtogroup SPIRIT_Types
Wolfgang Betz 67:93bec0baf1de 56 * @{
Wolfgang Betz 67:93bec0baf1de 57 */
Wolfgang Betz 67:93bec0baf1de 58
Wolfgang Betz 67:93bec0baf1de 59
Wolfgang Betz 67:93bec0baf1de 60 /** @defgroup Types_Private_TypesDefinitions Types Private Types Definitions
Wolfgang Betz 67:93bec0baf1de 61 * @{
Wolfgang Betz 67:93bec0baf1de 62 */
Wolfgang Betz 67:93bec0baf1de 63
Wolfgang Betz 67:93bec0baf1de 64
Wolfgang Betz 67:93bec0baf1de 65 /**
Wolfgang Betz 67:93bec0baf1de 66 * @}
Wolfgang Betz 67:93bec0baf1de 67 */
Wolfgang Betz 67:93bec0baf1de 68
Wolfgang Betz 67:93bec0baf1de 69
Wolfgang Betz 67:93bec0baf1de 70
Wolfgang Betz 67:93bec0baf1de 71 /** @defgroup Types_Private_Defines Types Private Defines
Wolfgang Betz 67:93bec0baf1de 72 * @{
Wolfgang Betz 67:93bec0baf1de 73 */
Wolfgang Betz 67:93bec0baf1de 74
Wolfgang Betz 67:93bec0baf1de 75
Wolfgang Betz 67:93bec0baf1de 76 /**
Wolfgang Betz 67:93bec0baf1de 77 * @}
Wolfgang Betz 67:93bec0baf1de 78 */
Wolfgang Betz 67:93bec0baf1de 79
Wolfgang Betz 67:93bec0baf1de 80
Wolfgang Betz 67:93bec0baf1de 81
Wolfgang Betz 67:93bec0baf1de 82 /** @defgroup Types_Private_Macros Types Private Macros
Wolfgang Betz 67:93bec0baf1de 83 * @{
Wolfgang Betz 67:93bec0baf1de 84 */
Wolfgang Betz 67:93bec0baf1de 85
Wolfgang Betz 67:93bec0baf1de 86
Wolfgang Betz 67:93bec0baf1de 87 /**
Wolfgang Betz 67:93bec0baf1de 88 * @}
Wolfgang Betz 67:93bec0baf1de 89 */
Wolfgang Betz 67:93bec0baf1de 90
Wolfgang Betz 67:93bec0baf1de 91
Wolfgang Betz 67:93bec0baf1de 92
Wolfgang Betz 67:93bec0baf1de 93 /** @defgroup Types_Private_Variables Types Private Variables
Wolfgang Betz 67:93bec0baf1de 94 * @{
Wolfgang Betz 67:93bec0baf1de 95 */
Wolfgang Betz 67:93bec0baf1de 96
Wolfgang Betz 67:93bec0baf1de 97 /**
Wolfgang Betz 67:93bec0baf1de 98 * @brief Spirit Status global variable.
Wolfgang Betz 67:93bec0baf1de 99 * This global variable of @ref SpiritStatus type is updated on every SPI transaction
Wolfgang Betz 67:93bec0baf1de 100 * to maintain memory of Spirit Status.
Wolfgang Betz 67:93bec0baf1de 101 */
Wolfgang Betz 67:93bec0baf1de 102
Wolfgang Betz 67:93bec0baf1de 103 volatile SpiritStatus g_xStatus;
Wolfgang Betz 67:93bec0baf1de 104
Wolfgang Betz 67:93bec0baf1de 105 /**
Wolfgang Betz 67:93bec0baf1de 106 * @}
Wolfgang Betz 67:93bec0baf1de 107 */
Wolfgang Betz 67:93bec0baf1de 108
Wolfgang Betz 67:93bec0baf1de 109
Wolfgang Betz 67:93bec0baf1de 110
Wolfgang Betz 67:93bec0baf1de 111 /** @defgroup Types_Private_FunctionPrototypes Types Private FunctionPrototypes
Wolfgang Betz 67:93bec0baf1de 112 * @{
Wolfgang Betz 67:93bec0baf1de 113 */
Wolfgang Betz 67:93bec0baf1de 114
Wolfgang Betz 67:93bec0baf1de 115
Wolfgang Betz 67:93bec0baf1de 116
Wolfgang Betz 67:93bec0baf1de 117 /**
Wolfgang Betz 67:93bec0baf1de 118 * @}
Wolfgang Betz 67:93bec0baf1de 119 */
Wolfgang Betz 67:93bec0baf1de 120
Wolfgang Betz 67:93bec0baf1de 121
Wolfgang Betz 67:93bec0baf1de 122
Wolfgang Betz 67:93bec0baf1de 123 /** @defgroup Types_Private_Functions Types Private Functions
Wolfgang Betz 67:93bec0baf1de 124 * @{
Wolfgang Betz 67:93bec0baf1de 125 */
Wolfgang Betz 67:93bec0baf1de 126
Wolfgang Betz 67:93bec0baf1de 127 #ifdef SPIRIT_USE_FULL_ASSERT
Wolfgang Betz 67:93bec0baf1de 128 /**
Wolfgang Betz 67:93bec0baf1de 129 * @brief Reports the name of the source file and the source line number
Wolfgang Betz 67:93bec0baf1de 130 * where the assert_param error has occurred.
Wolfgang Betz 67:93bec0baf1de 131 * @param file pointer to the source file name
Wolfgang Betz 67:93bec0baf1de 132 * @param line assert_param error line source number
Wolfgang Betz 67:93bec0baf1de 133 * @retval : None
Wolfgang Betz 67:93bec0baf1de 134 */
jmhong 84:45b9ff78a066 135 int s_assert_failed(uint8_t* file, uint32_t line)
Wolfgang Betz 67:93bec0baf1de 136 {
Wolfgang Betz 67:93bec0baf1de 137 /* User can add his own implementation to report the file name and line number */
Wolfgang Betz 67:93bec0baf1de 138 printf("Wrong parameters value: file %s on line %d\r\n", file, (int)line);
Wolfgang Betz 67:93bec0baf1de 139
Wolfgang Betz 67:93bec0baf1de 140 /* Infinite loop */
jmhong 84:45b9ff78a066 141 //180621 HJM : 다시 init 하도록 수정
jmhong 84:45b9ff78a066 142 //while (1)
jmhong 84:45b9ff78a066 143 // {
jmhong 84:45b9ff78a066 144 // }
jmhong 84:45b9ff78a066 145 return RETURN_ERROR_NUMBER;
jmhong 84:45b9ff78a066 146
jmhong 84:45b9ff78a066 147
Wolfgang Betz 67:93bec0baf1de 148 }
Wolfgang Betz 67:93bec0baf1de 149 #elif SPIRIT_USE_VCOM_ASSERT
Wolfgang Betz 67:93bec0baf1de 150
Wolfgang Betz 67:93bec0baf1de 151 #include "SDK_EVAL_VC_General.h"
Wolfgang Betz 67:93bec0baf1de 152
Wolfgang Betz 67:93bec0baf1de 153 /**
Wolfgang Betz 67:93bec0baf1de 154 * @brief Reports the name of the source file and the source line number
Wolfgang Betz 67:93bec0baf1de 155 * where the assert_param error has occurred.
Wolfgang Betz 67:93bec0baf1de 156 * @param file pointer to the source file name
Wolfgang Betz 67:93bec0baf1de 157 * @param line assert_param error line source number
Wolfgang Betz 67:93bec0baf1de 158 * @param expression: string representing the assert failed expression
Wolfgang Betz 67:93bec0baf1de 159 * @retval : None
Wolfgang Betz 67:93bec0baf1de 160 */
jmhong 84:45b9ff78a066 161 int s_assert_failed(uint8_t* file, uint32_t line, char* expression)
Wolfgang Betz 67:93bec0baf1de 162 {
Wolfgang Betz 67:93bec0baf1de 163
Wolfgang Betz 67:93bec0baf1de 164 printf("\n\rVCOM DEBUG: Incorrect parameter. Please reboot.\n\r");
Wolfgang Betz 67:93bec0baf1de 165 printf("%s:%d \n\r",file,line);
Wolfgang Betz 67:93bec0baf1de 166 printf("The expression %s returned FALSE.\n\r", expression);
Wolfgang Betz 67:93bec0baf1de 167
Wolfgang Betz 67:93bec0baf1de 168 /* Infinite loop */
jmhong 84:45b9ff78a066 169 //180621 HJM : 다시 init 하도록 수정
jmhong 84:45b9ff78a066 170 //while (1)
jmhong 84:45b9ff78a066 171 // {
jmhong 84:45b9ff78a066 172 // }
jmhong 84:45b9ff78a066 173 return RETURN_ERROR_NUMBER;
jmhong 84:45b9ff78a066 174
Wolfgang Betz 67:93bec0baf1de 175 }
Wolfgang Betz 67:93bec0baf1de 176
Wolfgang Betz 67:93bec0baf1de 177 #elif SPIRIT_USE_FRAME_ASSERT
Wolfgang Betz 67:93bec0baf1de 178
Wolfgang Betz 67:93bec0baf1de 179 #include "SdkUsbProtocol.h"
Wolfgang Betz 67:93bec0baf1de 180
Wolfgang Betz 67:93bec0baf1de 181 /**
Wolfgang Betz 67:93bec0baf1de 182 * @brief Sends a notify frame with a payload indicating the name
Wolfgang Betz 67:93bec0baf1de 183 * of the assert failed.
Wolfgang Betz 67:93bec0baf1de 184 * @param expression: string representing the assert failed expression
Wolfgang Betz 67:93bec0baf1de 185 * @retval : None
Wolfgang Betz 67:93bec0baf1de 186 */
jmhong 84:45b9ff78a066 187 int s_assert_failed(char* expression)
Wolfgang Betz 67:93bec0baf1de 188 {
Wolfgang Betz 67:93bec0baf1de 189 char pcPayload[100];
Wolfgang Betz 67:93bec0baf1de 190 uint16_t i;
Wolfgang Betz 67:93bec0baf1de 191
Wolfgang Betz 67:93bec0baf1de 192 for(i = 0 ; expression[i]!='(' ; i++);
Wolfgang Betz 67:93bec0baf1de 193 expression[i]='\0';
Wolfgang Betz 67:93bec0baf1de 194
Wolfgang Betz 67:93bec0baf1de 195 strcpy(pcPayload, &expression[3]);
Wolfgang Betz 67:93bec0baf1de 196
Wolfgang Betz 67:93bec0baf1de 197 //sprintf(pcPayload, "The expression %s returned FALSE.\n\r", expression);
Wolfgang Betz 67:93bec0baf1de 198 SpiritNotifyAssertFailed(pcPayload);
Wolfgang Betz 67:93bec0baf1de 199
jmhong 84:45b9ff78a066 200 return RETURN_ERROR_NUMBER;
Wolfgang Betz 67:93bec0baf1de 201 }
Wolfgang Betz 67:93bec0baf1de 202
Wolfgang Betz 67:93bec0baf1de 203 #endif
Wolfgang Betz 67:93bec0baf1de 204
Wolfgang Betz 67:93bec0baf1de 205
Wolfgang Betz 67:93bec0baf1de 206 /**
Wolfgang Betz 67:93bec0baf1de 207 * @brief Updates the gState (the global variable used to maintain memory of Spirit Status)
Wolfgang Betz 67:93bec0baf1de 208 * reading the MC_STATE register of SPIRIT.
Wolfgang Betz 67:93bec0baf1de 209 * @param None
Wolfgang Betz 67:93bec0baf1de 210 * @retval None
Wolfgang Betz 67:93bec0baf1de 211 */
Wolfgang Betz 67:93bec0baf1de 212 void SpiritRefreshStatus(void)
Wolfgang Betz 67:93bec0baf1de 213 {
Wolfgang Betz 67:93bec0baf1de 214 uint8_t tempRegValue;
Wolfgang Betz 67:93bec0baf1de 215
Wolfgang Betz 67:93bec0baf1de 216 /* Reads the MC_STATUS register to update the g_xStatus */
Wolfgang Betz 67:93bec0baf1de 217 g_xStatus = SpiritSpiReadRegisters(MC_STATE1_BASE, 1, &tempRegValue);
Wolfgang Betz 67:93bec0baf1de 218 }
Wolfgang Betz 67:93bec0baf1de 219
Wolfgang Betz 67:93bec0baf1de 220
Wolfgang Betz 67:93bec0baf1de 221 /**
Wolfgang Betz 67:93bec0baf1de 222 * @}
Wolfgang Betz 67:93bec0baf1de 223 */
Wolfgang Betz 67:93bec0baf1de 224
Wolfgang Betz 67:93bec0baf1de 225
Wolfgang Betz 67:93bec0baf1de 226
Wolfgang Betz 67:93bec0baf1de 227 /**
Wolfgang Betz 67:93bec0baf1de 228 * @}
Wolfgang Betz 67:93bec0baf1de 229 */
Wolfgang Betz 67:93bec0baf1de 230
Wolfgang Betz 67:93bec0baf1de 231
Wolfgang Betz 67:93bec0baf1de 232
Wolfgang Betz 67:93bec0baf1de 233 /**
Wolfgang Betz 67:93bec0baf1de 234 * @}
Wolfgang Betz 67:93bec0baf1de 235 */
Wolfgang Betz 67:93bec0baf1de 236
Wolfgang Betz 67:93bec0baf1de 237
Wolfgang Betz 67:93bec0baf1de 238
Wolfgang Betz 67:93bec0baf1de 239 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/