Port_Ci_Port_Ip.c 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496
  1. /*==================================================================================================
  2. * Project : RTD AUTOSAR 4.4
  3. * Platform : CORTEXM
  4. * Peripheral : PORT_CI
  5. * Dependencies : none
  6. *
  7. * Autosar Version : 4.4.0
  8. * Autosar Revision : ASR_REL_4_4_REV_0000
  9. * Autosar Conf.Variant :
  10. * SW Version : 1.0.0
  11. * Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
  12. *
  13. * (c) Copyright 2020-2021 NXP Semiconductors
  14. * All Rights Reserved.
  15. *
  16. * NXP Confidential. This software is owned or controlled by NXP and may only be
  17. * used strictly in accordance with the applicable license terms. By expressly
  18. * accepting such terms or by downloading, installing, activating and/or otherwise
  19. * using the software, you are agreeing that you have read, and that you agree to
  20. * comply with and are bound by, such license terms. If you do not agree to be
  21. * bound by the applicable license terms, then you may not retain, install,
  22. * activate or otherwise use the software.
  23. ==================================================================================================*/
  24. /**
  25. * @file Port_Ci_Port_Ip.c
  26. *
  27. * @addtogroup Port_IPL
  28. * @{
  29. */
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33. /*=================================================================================================
  34. * INCLUDE FILES
  35. * 1) system and project includes
  36. * 2) needed interfaces from external units
  37. * 3) internal and external interfaces from this unit
  38. =================================================================================================*/
  39. #include "Port_Ci_Port_Ip.h"
  40. #ifdef PORT_ENABLE_USER_MODE_SUPPORT
  41. #define USER_MODE_REG_PROT_ENABLED (PORT_ENABLE_USER_MODE_SUPPORT)
  42. #include "RegLockMacros.h"
  43. #include "OsIf_Internal.h"
  44. #endif
  45. #include "SchM_Port.h"
  46. /*=================================================================================================
  47. SOURCE FILE VERSION INFORMATION
  48. ==================================================================================================*/
  49. /**
  50. * @brief Parameters that shall be published within the Port driver header file and also in the
  51. * module description file
  52. * @details The integration of incompatible files shall be avoided.
  53. *
  54. */
  55. #define PORT_CI_PORT_IP_VENDOR_ID_C 43
  56. #define PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_C 4
  57. #define PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_C 4
  58. #define PORT_CI_PORT_IP_AR_RELEASE_REVISION_VERSION_C 0
  59. #define PORT_CI_PORT_IP_SW_MAJOR_VERSION_C 1
  60. #define PORT_CI_PORT_IP_SW_MINOR_VERSION_C 0
  61. #define PORT_CI_PORT_IP_SW_PATCH_VERSION_C 0
  62. /*=================================================================================================
  63. * FILE VERSION CHECKS
  64. =================================================================================================*/
  65. /* Check if the files Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h are of the same vendor */
  66. #if (PORT_CI_PORT_IP_VENDOR_ID_C != PORT_CI_PORT_IP_VENDOR_ID_H)
  67. #error "Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h have different vendor ids"
  68. #endif
  69. /* Check if the files Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h are of the same Autosar version */
  70. #if ((PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_C != PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_H) || \
  71. (PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_C != PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_H) || \
  72. (PORT_CI_PORT_IP_AR_RELEASE_REVISION_VERSION_C != PORT_CI_PORT_IP_AR_RELEASE_REVISION_VERSION_H) \
  73. )
  74. #error "AutoSar Version Numbers of Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h are different"
  75. #endif
  76. /* Check if the files Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h are of the same software version */
  77. #if ((PORT_CI_PORT_IP_SW_MAJOR_VERSION_C != PORT_CI_PORT_IP_SW_MAJOR_VERSION_H) || \
  78. (PORT_CI_PORT_IP_SW_MINOR_VERSION_C != PORT_CI_PORT_IP_SW_MINOR_VERSION_H) || \
  79. (PORT_CI_PORT_IP_SW_PATCH_VERSION_C != PORT_CI_PORT_IP_SW_PATCH_VERSION_H) \
  80. )
  81. #error "Software Version Numbers of Port_Ci_Port_Ip.c and Port_Ci_Port_Ip.h are different"
  82. #endif
  83. #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
  84. #ifdef PORT_ENABLE_USER_MODE_SUPPORT
  85. /* Check if the files Port_Ci_Port_Ip.c and RegLockMacros.h are of the same version */
  86. #if ((PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MAJOR_VERSION) || \
  87. (PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_C != REGLOCKMACROS_AR_RELEASE_MINOR_VERSION) \
  88. )
  89. #error "AutoSar Version Numbers of Port_Ci_Port_Ip.c and RegLockMacros.h are different"
  90. #endif
  91. /* Check if the files Port_Ci_Port_Ip.c and OsIf_Internal.h are of the same version */
  92. #if ((PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_C != OSIF_INTERNAL_AR_RELEASE_MAJOR_VERSION) || \
  93. (PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_C != OSIF_INTERNAL_AR_RELEASE_MINOR_VERSION) \
  94. )
  95. #error "AutoSar Version Numbers of Port_Ci_Port_Ip.c and OsIf_Internal.h are different"
  96. #endif
  97. #endif
  98. /* Check if the files Port_Ci_Port_Ip.c and SchM_Port.h are of the same version */
  99. #if ((PORT_CI_PORT_IP_AR_RELEASE_MAJOR_VERSION_C != SCHM_PORT_AR_RELEASE_MAJOR_VERSION) || \
  100. (PORT_CI_PORT_IP_AR_RELEASE_MINOR_VERSION_C != SCHM_PORT_AR_RELEASE_MINOR_VERSION) \
  101. )
  102. #error "AutoSar Version Numbers of Port_Ci_Port_Ip.c and SchM_Port.h are different"
  103. #endif
  104. #endif
  105. /*=================================================================================================
  106. * LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
  107. =================================================================================================*/
  108. /*=================================================================================================
  109. * LOCAL MACROS
  110. =================================================================================================*/
  111. /*=================================================================================================
  112. * LOCAL CONSTANTS
  113. =================================================================================================*/
  114. /*=================================================================================================
  115. * LOCAL VARIABLES
  116. =================================================================================================*/
  117. /*=================================================================================================
  118. * GLOBAL CONSTANTS
  119. =================================================================================================*/
  120. /*=================================================================================================
  121. GLOBAL VARIABLES
  122. =================================================================================================*/
  123. #define PORT_START_SEC_CONST_32
  124. #include "Port_MemMap.h"
  125. /**
  126. * @brief Base address array for PORT instances
  127. */
  128. PORT_Type * Port_au32PortCiPortBaseAddr[5] = IP_PORT_BASE_PTRS;
  129. /**
  130. * @brief Base address array for GPIO instances
  131. */
  132. GPIO_Type * Port_au32PortCiGpioBaseAddr[5] = IP_GPIO_BASE_PTRS;
  133. #define PORT_STOP_SEC_CONST_32
  134. #include "Port_MemMap.h"
  135. /*=================================================================================================
  136. * LOCAL FUNCTION PROTOTYPES
  137. =================================================================================================*/
  138. #define PORT_START_SEC_CODE
  139. #include "Port_MemMap.h"
  140. /*!
  141. * @brief Initializes the pins with the given configuration structure
  142. *
  143. * This function configures the pins with the options provided in the
  144. * given structure.
  145. *
  146. * @param[in] pinNumber the number of configured pins in structure
  147. * @param[in] config the configuration structure
  148. */
  149. static void Port_Ci_Port_Ip_PinInit(const Port_Ci_Port_Ip_PinSettingsConfig * config);
  150. /*==================================================================================================
  151. * LOCAL FUNCTIONS
  152. ==================================================================================================*/
  153. /*FUNCTION**********************************************************************
  154. *
  155. * Function Name : PINS_Init
  156. * Description : This function configures the pin feature with the options
  157. * provided in the given structure.
  158. *
  159. ******************************************************************************/
  160. static void Port_Ci_Port_Ip_PinInit(const Port_Ci_Port_Ip_PinSettingsConfig * config)
  161. {
  162. uint32 pinsValues = 0U;
  163. uint32 digitalFilters;
  164. PORT_CI_PORT_DEV_ASSERT((boolean)(config != NULL_PTR));
  165. PORT_CI_PORT_DEV_ASSERT((boolean)(config->pinPortIdx < 32));
  166. PORT_CI_PORT_DEV_ASSERT((boolean)((config->portBase->PCR[config->pinPortIdx]) & PORT_PCR_LK_MASK) == 0);
  167. if (config->pullConfig != PORT_INTERNAL_PULL_NOT_ENABLED)
  168. {
  169. pinsValues |= PORT_PCR_PE(1);
  170. pinsValues |= PORT_PCR_PS(config->pullConfig);
  171. }
  172. #ifdef FEATURE_PORT_CI_PORT_IP_HAS_DRIVE_STRENGTH
  173. pinsValues |= PORT_PCR_DSE(config->driveStrength);
  174. #endif /* FEATURE_PORT_CI_PORT_IP_HAS_DRIVE_STRENGTH */
  175. #ifdef FEATURE_PORT_CI_PORT_IP_HAS_LOCK_REGISTER
  176. pinsValues |= PORT_PCR_LK(config->lockRegister);
  177. #endif /* FEATURE_PORT_CI_PORT_IP_HAS_LOCK_REGISTER */
  178. pinsValues |= PORT_PCR_PFE(config->passiveFilter?1U:0U);
  179. pinsValues |= PORT_PCR_MUX(config->mux);
  180. /* Enter critical region */
  181. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_01();
  182. /* Read current digital filter of port */
  183. digitalFilters = (uint32)(config->portBase->DFER);
  184. digitalFilters &= ~(1UL << (config->pinPortIdx));
  185. digitalFilters |= (((uint32)(config->digitalFilter?1U:0U)) << (config->pinPortIdx));
  186. /* Write to digital filter enable register */
  187. config->portBase->DFER = digitalFilters;
  188. /* Configure initial value for GPIO pin in GPIO mux */
  189. if (PORT_MUX_AS_GPIO == config->mux)
  190. {
  191. /* Check if the direction of the pin is OUTPUT. In this case the driver needs to set the output level too */
  192. if (PORT_CI_PORT_PIN_OUT == config->direction)
  193. {
  194. if ((uint8)1 == config->initValue)
  195. {
  196. config->gpioBase->PSOR |= ((uint32)1 << (config->pinPortIdx));
  197. }
  198. else if ((uint8)0 == config->initValue)
  199. {
  200. config->gpioBase->PCOR |= ((uint32)1 << (config->pinPortIdx));
  201. }
  202. else
  203. {
  204. /* No action to be done */
  205. }
  206. /* Set the pin direction as output in the PDDR register of GPIO IP */
  207. config->gpioBase->PDDR |= (uint32)1 << (config->pinPortIdx);
  208. }
  209. /* The direction of pin is INPUT or HIGH Z */
  210. else
  211. {
  212. /* Clear the pin direction as input in the PDDR register of GPIO IP */
  213. config->gpioBase->PDDR &= ~((uint32)1 << (config->pinPortIdx));
  214. #ifndef FEATURE_PORT_CI_PORT_IP_S32K11X_DERIVATIVE
  215. /* Check if the pin is HIGH_Z. In this case the driver needs to disable port input in PIDR register of GPIO IP*/
  216. if (PORT_CI_PORT_PIN_HIGH_Z == config->direction)
  217. {
  218. config->gpioBase->PIDR |= ((uint32)1 << (config->pinPortIdx));
  219. }
  220. #endif
  221. }
  222. }
  223. /* Exit critical region */
  224. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_01();
  225. /* Write to Multiplexed Signal Configuration Register */
  226. config->portBase->PCR[config->pinPortIdx] = pinsValues;
  227. }
  228. /*==================================================================================================
  229. * GLOBAL FUNCTIONS
  230. ==================================================================================================*/
  231. /*FUNCTION**********************************************************************
  232. *
  233. * Function Name : Port_Ci_Port_Ip_ReadPCR
  234. * Description : This function supports to read value of the pin control register.
  235. *
  236. ******************************************************************************/
  237. uint32 Port_Ci_Port_Ip_ReadPCR(const PORT_Type * base, uint32 MscrInstance)
  238. {
  239. PORT_CI_PORT_DEV_ASSERT((boolean)(MscrInstance < 32));
  240. return base->PCR[MscrInstance];
  241. }
  242. /*FUNCTION**********************************************************************
  243. *
  244. * Function Name : Port_Ci_Port_Ip_SetPCR
  245. * Description : This function supports to write value of the pin control register.
  246. *
  247. ******************************************************************************/
  248. void Port_Ci_Port_Ip_SetPCR(PORT_Type * base, uint32 MscrInstance, uint32 value)
  249. {
  250. PORT_CI_PORT_DEV_ASSERT((boolean)(MscrInstance < 32));
  251. PORT_CI_PORT_DEV_ASSERT((boolean)((base->PCR[MscrInstance]) & PORT_PCR_LK_MASK) == 0);
  252. base->PCR[MscrInstance] = value;
  253. }
  254. /*FUNCTION**********************************************************************
  255. *
  256. * Function Name : Port_Ci_Port_Ip_SetPSOR
  257. * Description : This function supports to write value on the port set output register.
  258. *
  259. ******************************************************************************/
  260. void Port_Ci_Port_Ip_SetPSOR(GPIO_Type * base, uint32 Pin)
  261. {
  262. base->PSOR = (Pin);
  263. }
  264. /*FUNCTION**********************************************************************
  265. *
  266. * Function Name : Port_Ci_Port_Ip_SetPCOR
  267. * Description : This function supports to write value on the port clear output register.
  268. *
  269. ******************************************************************************/
  270. void Port_Ci_Port_Ip_SetPCOR(GPIO_Type * base, uint32 Pin)
  271. {
  272. base->PCOR = (Pin);
  273. }
  274. /*FUNCTION**********************************************************************
  275. *
  276. * Function Name : Port_Ci_Port_Ip_SetPDDR
  277. * Description : This function supports to set value on the port data direction register.
  278. *
  279. ******************************************************************************/
  280. void Port_Ci_Port_Ip_SetPDDR(GPIO_Type * base, uint32 Pin)
  281. {
  282. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_02();
  283. base->PDDR |= (Pin);
  284. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_02();
  285. }
  286. /*FUNCTION**********************************************************************
  287. *
  288. * Function Name : Port_Ci_Port_Ip_SetPDDR
  289. * Description : This function supports to clear value on the port data direction register.
  290. *
  291. ******************************************************************************/
  292. void Port_Ci_Port_Ip_ClearPDDR(GPIO_Type * base, uint32 Pin)
  293. {
  294. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_03();
  295. base->PDDR &= ~(Pin);
  296. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_03();
  297. }
  298. #ifndef FEATURE_PORT_CI_PORT_IP_S32K11X_DERIVATIVE
  299. /*FUNCTION**********************************************************************
  300. *
  301. * Function Name : Port_Ci_Port_Ip_SetPIDR
  302. * Description : This function supports to set value on the port input disable register.
  303. *
  304. ******************************************************************************/
  305. void Port_Ci_Port_Ip_SetPIDR(GPIO_Type * base, uint32 Pin)
  306. {
  307. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_04();
  308. base->PIDR |= (Pin);
  309. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_04();
  310. }
  311. #endif
  312. /*FUNCTION**********************************************************************
  313. *
  314. * Function Name : Port_Ci_Port_Ip_SetDFER
  315. * Description : This function supports to set value on the digital filter enable register.
  316. *
  317. ******************************************************************************/
  318. void Port_Ci_Port_Ip_SetDFER(PORT_Type * base, uint32 pinMask)
  319. {
  320. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_05();
  321. base->DFER |= pinMask;
  322. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_05();
  323. }
  324. /*FUNCTION**********************************************************************
  325. *
  326. * Function Name : Port_Ci_Port_Ip_Init
  327. * Description : This function configures the pins with the options provided
  328. * in the given structure.
  329. *
  330. * @implements Port_Ci_Port_Ip_Init_Activity
  331. ******************************************************************************/
  332. Port_Ci_Port_Ip_PortStatusType Port_Ci_Port_Ip_Init(uint32 pinCount,
  333. const Port_Ci_Port_Ip_PinSettingsConfig config[])
  334. {
  335. uint32 i;
  336. for (i = 0U; i < pinCount; i++)
  337. {
  338. Port_Ci_Port_Ip_PinInit(&config[i]);
  339. }
  340. return PORT_CI_PORT_SUCCESS;
  341. }
  342. /*FUNCTION**********************************************************************
  343. *
  344. * Function Name : Port_Ci_Port_Ip_SetMuxModeSel
  345. * Description : This function configures the pin muxing.
  346. *
  347. * @implements Port_Ci_Port_Ip_SetMuxModeSel_Activity
  348. ******************************************************************************/
  349. void Port_Ci_Port_Ip_SetMuxModeSel(PORT_Type * const base,
  350. uint32 pin,
  351. Port_Ci_Port_Ip_PortMux mux)
  352. {
  353. PORT_CI_PORT_DEV_ASSERT((boolean)(pin < PORT_PCR_COUNT));
  354. PORT_CI_PORT_DEV_ASSERT((boolean)((base->PCR[pin]) & PORT_PCR_LK_MASK) == 0);
  355. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_06();
  356. uint32 regValue = base->PCR[pin];
  357. regValue &= ~(PORT_PCR_MUX_MASK);
  358. regValue |= PORT_PCR_MUX(mux);
  359. base->PCR[pin] = regValue;
  360. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_06();
  361. }
  362. /*FUNCTION**********************************************************************
  363. *
  364. * Function Name : Port_Ci_Port_Ip_EnableDigitalFilter
  365. * Description : This function enables digital filter feature for digital pin muxing.
  366. *
  367. * @implements Port_Ci_Port_Ip_EnableDigitalFilter_Activity
  368. ******************************************************************************/
  369. void Port_Ci_Port_Ip_EnableDigitalFilter(PORT_Type * const base,
  370. uint32 pin)
  371. {
  372. PORT_CI_PORT_DEV_ASSERT((boolean)(pin < PORT_PCR_COUNT));
  373. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_07();
  374. base->DFER |= ((uint32)1U << pin);
  375. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_07();
  376. }
  377. /*FUNCTION**********************************************************************
  378. *
  379. * Function Name : Port_Ci_Port_Ip_DisableDigitalFilter
  380. * Description : This function disables digital filter feature for digital
  381. * pin muxing.
  382. *
  383. * @implements Port_Ci_Port_Ip_DisableDigitalFilter_Activity
  384. ******************************************************************************/
  385. void Port_Ci_Port_Ip_DisableDigitalFilter(PORT_Type * const base,
  386. uint32 pin)
  387. {
  388. PORT_CI_PORT_DEV_ASSERT((boolean)(pin < PORT_PCR_COUNT));
  389. SchM_Enter_Port_PORT_EXCLUSIVE_AREA_08();
  390. base->DFER &= ~((uint32)1U << pin);
  391. SchM_Exit_Port_PORT_EXCLUSIVE_AREA_08();
  392. }
  393. /*FUNCTION**********************************************************************
  394. *
  395. * Function Name : Port_Ci_Port_Ip_ConfigDigitalFilter
  396. * Description : This function configures digital filter for port with
  397. * given configuration.
  398. *
  399. * @implements Port_Ci_Port_Ip_ConfigDigitalFilter_Activity
  400. ******************************************************************************/
  401. void Port_Ci_Port_Ip_ConfigDigitalFilter(PORT_Type * const base,
  402. const Port_Ci_Port_Ip_DigitalFilterConfigType * config)
  403. {
  404. PORT_CI_PORT_DEV_ASSERT((boolean)(config->u8Width <= PORT_DFWR_FILT_MASK));
  405. base->DFCR = PORT_DFCR_CS(config->u8Clock);
  406. base->DFWR = PORT_DFWR_FILT(config->u8Width);
  407. }
  408. /*FUNCTION**********************************************************************
  409. *
  410. * Function Name : Port_Ci_Port_Ip_SetGlobalPinControl
  411. * Description : This function quickly configures multiple pins within the one port for
  412. * the same peripheral function with the same pin configuration. Supports up to 16 pins with
  413. * the lower or upper half of pin registers at the same port.
  414. *
  415. * @implements Port_Ci_Port_Ip_SetGlobalPinControl_Activity
  416. ******************************************************************************/
  417. void Port_Ci_Port_Ip_SetGlobalPinControl(PORT_Type * const base,
  418. uint16 pins,
  419. uint16 value,
  420. Port_Ci_Port_Ip_PortGlobalControlPins halfPort)
  421. {
  422. uint16 mask = 0;
  423. mask |= PORT_PCR_PS_MASK;
  424. mask |= PORT_PCR_PE_MASK;
  425. mask |= PORT_PCR_PFE_MASK;
  426. mask |= PORT_PCR_DSE_MASK;
  427. mask |= PORT_PCR_MUX_MASK;
  428. mask |= PORT_PCR_LK_MASK;
  429. mask &= value;
  430. switch (halfPort)
  431. {
  432. case PORT_GLOBAL_CONTROL_LOWER_HALF_PINS:
  433. base->GPCLR = (((uint32)pins) << PORT_GPCLR_GPWE_SHIFT) | (uint32)mask;
  434. break;
  435. case PORT_GLOBAL_CONTROL_UPPER_HALF_PINS:
  436. base->GPCHR = (((uint32)pins) << PORT_GPCLR_GPWE_SHIFT) | (uint32)mask;
  437. break;
  438. default:
  439. /* nothing to configure */
  440. PORT_CI_PORT_DEV_ASSERT((boolean)FALSE);
  441. break;
  442. }
  443. }
  444. #define PORT_STOP_SEC_CODE
  445. #include "Port_MemMap.h"
  446. #ifdef __cplusplus
  447. }
  448. #endif
  449. /** @} */