The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*
AnnaBridge 171:3a7713b1edbc 2 * The Clear BSD License
AnnaBridge 171:3a7713b1edbc 3 * Copyright (c) 2016, Freescale Semiconductor, Inc.
AnnaBridge 171:3a7713b1edbc 4 * Copyright 2016-2017 NXP
AnnaBridge 171:3a7713b1edbc 5 * All rights reserved.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 8 * are permitted (subject to the limitations in the disclaimer below) provided
AnnaBridge 171:3a7713b1edbc 9 * that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * o Redistributions of source code must retain the above copyright notice, this list
AnnaBridge 171:3a7713b1edbc 12 * of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 13 *
AnnaBridge 171:3a7713b1edbc 14 * o Redistributions in binary form must reproduce the above copyright notice, this
AnnaBridge 171:3a7713b1edbc 15 * list of conditions and the following disclaimer in the documentation and/or
AnnaBridge 171:3a7713b1edbc 16 * other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 17 *
AnnaBridge 171:3a7713b1edbc 18 * o Neither the name of the copyright holder nor the names of its
AnnaBridge 171:3a7713b1edbc 19 * contributors may be used to endorse or promote products derived from this
AnnaBridge 171:3a7713b1edbc 20 * software without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
AnnaBridge 171:3a7713b1edbc 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
AnnaBridge 171:3a7713b1edbc 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
AnnaBridge 171:3a7713b1edbc 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
AnnaBridge 171:3a7713b1edbc 27 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
AnnaBridge 171:3a7713b1edbc 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
AnnaBridge 171:3a7713b1edbc 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
AnnaBridge 171:3a7713b1edbc 30 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
AnnaBridge 171:3a7713b1edbc 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
AnnaBridge 171:3a7713b1edbc 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 33 */
AnnaBridge 171:3a7713b1edbc 34
AnnaBridge 171:3a7713b1edbc 35 #ifndef _FSL_FMC_H_
AnnaBridge 171:3a7713b1edbc 36 #define _FSL_FMC_H_
AnnaBridge 171:3a7713b1edbc 37
AnnaBridge 171:3a7713b1edbc 38 #include "fsl_common.h"
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 /*!
AnnaBridge 171:3a7713b1edbc 41 * @addtogroup fmc
AnnaBridge 171:3a7713b1edbc 42 * @{
AnnaBridge 171:3a7713b1edbc 43 */
AnnaBridge 171:3a7713b1edbc 44
AnnaBridge 171:3a7713b1edbc 45 /******************************************************************************
AnnaBridge 171:3a7713b1edbc 46 * Definitions.
AnnaBridge 171:3a7713b1edbc 47 *****************************************************************************/
AnnaBridge 171:3a7713b1edbc 48
AnnaBridge 171:3a7713b1edbc 49 /*! @name Driver version */
AnnaBridge 171:3a7713b1edbc 50 /*@{*/
AnnaBridge 171:3a7713b1edbc 51 /*! @brief Driver version 2.0.0. */
AnnaBridge 171:3a7713b1edbc 52 #define FSL_FMC_DRIVER_VERSION (MAKE_VERSION(2U, 0U, 0U))
AnnaBridge 171:3a7713b1edbc 53 /*@}*/
AnnaBridge 171:3a7713b1edbc 54
AnnaBridge 171:3a7713b1edbc 55 /*!
AnnaBridge 171:3a7713b1edbc 56 * @addtogroup fmc_driver
AnnaBridge 171:3a7713b1edbc 57 * @{
AnnaBridge 171:3a7713b1edbc 58 */
AnnaBridge 171:3a7713b1edbc 59
AnnaBridge 171:3a7713b1edbc 60 /*!
AnnaBridge 171:3a7713b1edbc 61 * @brief fmc peripheral flag.
AnnaBridge 171:3a7713b1edbc 62 *
AnnaBridge 171:3a7713b1edbc 63 */
AnnaBridge 171:3a7713b1edbc 64 enum _fmc_flags
AnnaBridge 171:3a7713b1edbc 65 {
AnnaBridge 171:3a7713b1edbc 66 kFMC_SignatureGenerationDoneFlag = FMC_FMSTAT_SIG_DONE_MASK, /*!< Flash signature generation done. */
AnnaBridge 171:3a7713b1edbc 67 };
AnnaBridge 171:3a7713b1edbc 68
AnnaBridge 171:3a7713b1edbc 69 /*! @brief Defines the generated 128-bit signature. */
AnnaBridge 171:3a7713b1edbc 70 typedef struct _fmc_flash_signature
AnnaBridge 171:3a7713b1edbc 71 {
AnnaBridge 171:3a7713b1edbc 72 uint32_t word0; /* Signature bits [31:0]. */
AnnaBridge 171:3a7713b1edbc 73 uint32_t word1; /* Signature bits [63:32]. */
AnnaBridge 171:3a7713b1edbc 74 uint32_t word2; /* Signature bits [95:64]. */
AnnaBridge 171:3a7713b1edbc 75 uint32_t word3; /* Signature bits [127:96]. */
AnnaBridge 171:3a7713b1edbc 76 } fmc_flash_signature_t;
AnnaBridge 171:3a7713b1edbc 77
AnnaBridge 171:3a7713b1edbc 78 /*! @brief fmc config structure. */
AnnaBridge 171:3a7713b1edbc 79 typedef struct _fmc_config
AnnaBridge 171:3a7713b1edbc 80 {
AnnaBridge 171:3a7713b1edbc 81 uint8_t waitStates; /* flash timing value for flash signature generation. */
AnnaBridge 171:3a7713b1edbc 82 } fmc_config_t;
AnnaBridge 171:3a7713b1edbc 83
AnnaBridge 171:3a7713b1edbc 84 /*! @} */
AnnaBridge 171:3a7713b1edbc 85
AnnaBridge 171:3a7713b1edbc 86 /*******************************************************************************
AnnaBridge 171:3a7713b1edbc 87 * API
AnnaBridge 171:3a7713b1edbc 88 *******************************************************************************/
AnnaBridge 171:3a7713b1edbc 89
AnnaBridge 171:3a7713b1edbc 90 #if defined(__cplusplus)
AnnaBridge 171:3a7713b1edbc 91 extern "C" {
AnnaBridge 171:3a7713b1edbc 92 #endif
AnnaBridge 171:3a7713b1edbc 93
AnnaBridge 171:3a7713b1edbc 94 /*!
AnnaBridge 171:3a7713b1edbc 95 * @brief Initialize FMC module.
AnnaBridge 171:3a7713b1edbc 96 *
AnnaBridge 171:3a7713b1edbc 97 * This function initialize FMC module with user configuration
AnnaBridge 171:3a7713b1edbc 98 *
AnnaBridge 171:3a7713b1edbc 99 * @param base The FMC peripheral base address.
AnnaBridge 171:3a7713b1edbc 100 * @param config pointer to user configuration structure.
AnnaBridge 171:3a7713b1edbc 101 */
AnnaBridge 171:3a7713b1edbc 102 void FMC_Init(FMC_Type *base, fmc_config_t *config);
AnnaBridge 171:3a7713b1edbc 103
AnnaBridge 171:3a7713b1edbc 104 /*!
AnnaBridge 171:3a7713b1edbc 105 * @brief Deinit FMC module.
AnnaBridge 171:3a7713b1edbc 106 *
AnnaBridge 171:3a7713b1edbc 107 * This function De-initialize FMC module.
AnnaBridge 171:3a7713b1edbc 108 *
AnnaBridge 171:3a7713b1edbc 109 * @param base The FMC peripheral base address.
AnnaBridge 171:3a7713b1edbc 110 */
AnnaBridge 171:3a7713b1edbc 111 void FMC_Deinit(FMC_Type *base);
AnnaBridge 171:3a7713b1edbc 112
AnnaBridge 171:3a7713b1edbc 113 /*!
AnnaBridge 171:3a7713b1edbc 114 * @brief Provides default configuration for fmc module.
AnnaBridge 171:3a7713b1edbc 115 *
AnnaBridge 171:3a7713b1edbc 116 * This function provides default configuration for fmc module, the default wait states value is
AnnaBridge 171:3a7713b1edbc 117 * 5.
AnnaBridge 171:3a7713b1edbc 118 *
AnnaBridge 171:3a7713b1edbc 119 * @param config pointer to user configuration structure.
AnnaBridge 171:3a7713b1edbc 120 */
AnnaBridge 171:3a7713b1edbc 121 void FMC_GetDefaultConfig(fmc_config_t *config);
AnnaBridge 171:3a7713b1edbc 122
AnnaBridge 171:3a7713b1edbc 123 /*!
AnnaBridge 171:3a7713b1edbc 124 * @brief Generate hardware flash signature.
AnnaBridge 171:3a7713b1edbc 125 *
AnnaBridge 171:3a7713b1edbc 126 * This function generates hardware flash signature for specified address range.
AnnaBridge 171:3a7713b1edbc 127 *
AnnaBridge 171:3a7713b1edbc 128 * @note This function needs to be excuted out of flash memory.
AnnaBridge 171:3a7713b1edbc 129 * @param base The FMC peripheral base address.
AnnaBridge 171:3a7713b1edbc 130 * @param startAddress Flash start address for signature generation.
AnnaBridge 171:3a7713b1edbc 131 * @param length Length of address range.
AnnaBridge 171:3a7713b1edbc 132 * @param flashSignature Pointer which stores the generated flash signarue.
AnnaBridge 171:3a7713b1edbc 133 */
AnnaBridge 171:3a7713b1edbc 134 void FMC_GenerateFlashSignature(FMC_Type *base,
AnnaBridge 171:3a7713b1edbc 135 uint32_t startAddress,
AnnaBridge 171:3a7713b1edbc 136 uint32_t length,
AnnaBridge 171:3a7713b1edbc 137 fmc_flash_signature_t *flashSignature);
AnnaBridge 171:3a7713b1edbc 138
AnnaBridge 171:3a7713b1edbc 139 #if defined(__cplusplus)
AnnaBridge 171:3a7713b1edbc 140 }
AnnaBridge 171:3a7713b1edbc 141 #endif
AnnaBridge 171:3a7713b1edbc 142
AnnaBridge 171:3a7713b1edbc 143 /*! @}*/
AnnaBridge 171:3a7713b1edbc 144
AnnaBridge 171:3a7713b1edbc 145 #endif