8 #include "fsl_common.h"     9 #include "fsl_debug_console.h"    11 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED    12 #include "fsl_lpi2c.h"    14 #include "fsl_iomuxc.h"    31     if (CLOCK_GetMux(kCLOCK_UartMux) == 0) 
    33         freq = (CLOCK_GetPllFreq(kCLOCK_PllUsb1) / 6U) / (CLOCK_GetDiv(kCLOCK_UartDiv) + 1U);
    37         freq = CLOCK_GetOscFreq() / (CLOCK_GetDiv(kCLOCK_UartDiv) + 1U);
    53     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_02_USDHC1_CMD,
    54                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    55                             IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK |
    56                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) |
    57                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    58     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_03_USDHC1_CLK,
    59                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    60                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(0) |
    61                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    62     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_04_USDHC1_DATA0,
    63                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    64                             IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK |
    65                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) |
    66                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    67     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_05_USDHC1_DATA1,
    68                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    69                             IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK |
    70                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) |
    71                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    72     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_00_USDHC1_DATA2,
    73                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    74                             IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK |
    75                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) |
    76                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    77     IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_01_USDHC1_DATA3,
    78                         IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK |
    79                             IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK |
    80                             IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) |
    81                             IOMUXC_SW_PAD_CTL_PAD_DSE(strength));
    91 #if defined(__CC_ARM) || defined(__ARMCC_VERSION)    92     extern uint32_t Image$$RW_m_ncache$$Base[];
    94     extern uint32_t Image$$RW_m_ncache_unused$$Base[];
    95     extern uint32_t Image$$RW_m_ncache_unused$$ZI$$Limit[];
    96     uint32_t nonCacheStart = (uint32_t)Image$$RW_m_ncache$$Base;
    97     uint32_t 
size          = ((uint32_t)Image$$RW_m_ncache_unused$$Base == nonCacheStart) ?
    99                         ((uint32_t)Image$$RW_m_ncache_unused$$ZI$$Limit - nonCacheStart);
   100 #elif defined(__MCUXPRESSO)   101     extern uint32_t __base_NCACHE_REGION;
   102     extern uint32_t __top_NCACHE_REGION;
   103     uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION);
   104     uint32_t size          = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart;
   105 #elif defined(__ICCARM__) || defined(__GNUC__)   106     extern uint32_t __NCACHE_REGION_START[];
   107     extern uint32_t __NCACHE_REGION_SIZE[];
   108     uint32_t nonCacheStart = (uint32_t)__NCACHE_REGION_START;
   109     uint32_t size          = (uint32_t)__NCACHE_REGION_SIZE;
   114     if (SCB_CCR_IC_Msk == (SCB_CCR_IC_Msk & SCB->CCR))
   118     if (SCB_CCR_DC_Msk == (SCB_CCR_DC_Msk & SCB->CCR))
   171     MPU->RBAR = ARM_MPU_RBAR(0, 0x00000000U);
   172     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_NONE, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_4GB);
   175     MPU->RBAR = ARM_MPU_RBAR(1, 0x80000000U);
   176     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
   179     MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
   180     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
   182 #if defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)   184     MPU->RBAR = ARM_MPU_RBAR(3, 0x60000000U);
   185     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_RO, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_4MB);
   189     MPU->RBAR = ARM_MPU_RBAR(4, 0x00000000U);
   190     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
   193     MPU->RBAR = ARM_MPU_RBAR(5, 0x00000000U);
   194     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
   197     MPU->RBAR = ARM_MPU_RBAR(6, 0x20000000U);
   198     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
   201     MPU->RBAR = ARM_MPU_RBAR(7, 0x20200000U);
   202     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
   205     MPU->RBAR = ARM_MPU_RBAR(8, 0x80000000U);
   206     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);
   208     while ((size >> i) > 0x1U)
   216         assert(!(nonCacheStart % size));
   217         assert(size == (uint32_t)(1 << i));
   221         MPU->RBAR = ARM_MPU_RBAR(9, nonCacheStart);
   222         MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1);
   226     MPU->RBAR = ARM_MPU_RBAR(10, 0x40000000);
   227     MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_4MB);
   230     ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);
   237 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED   238 void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz)
   240     lpi2c_master_config_t lpi2cConfig = {0};
   252     LPI2C_MasterGetDefaultConfig(&lpi2cConfig);
   253     LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz);
   256 status_t BOARD_LPI2C_Send(LPI2C_Type *base,
   257                           uint8_t deviceAddress,
   259                           uint8_t subAddressSize,
   263     lpi2c_master_transfer_t xfer;
   265     xfer.flags          = kLPI2C_TransferDefaultFlag;
   266     xfer.slaveAddress   = deviceAddress;
   267     xfer.direction      = kLPI2C_Write;
   268     xfer.subaddress     = subAddress;
   269     xfer.subaddressSize = subAddressSize;
   271     xfer.dataSize       = txBuffSize;
   273     return LPI2C_MasterTransferBlocking(base, &xfer);
   276 status_t BOARD_LPI2C_Receive(LPI2C_Type *base,
   277                              uint8_t deviceAddress,
   279                              uint8_t subAddressSize,
   283     lpi2c_master_transfer_t xfer;
   285     xfer.flags          = kLPI2C_TransferDefaultFlag;
   286     xfer.slaveAddress   = deviceAddress;
   287     xfer.direction      = kLPI2C_Read;
   288     xfer.subaddress     = subAddress;
   289     xfer.subaddressSize = subAddressSize;
   291     xfer.dataSize       = rxBuffSize;
   293     return LPI2C_MasterTransferBlocking(base, &xfer);
   296 void BOARD_Accel_I2C_Init(
void)
   301 status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff)
   303     uint8_t 
data = (uint8_t)txBuff;
   308 status_t BOARD_Accel_I2C_Receive(
   309     uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
   311     return BOARD_LPI2C_Receive(
BOARD_ACCEL_I2C_BASEADDR, deviceAddress, subAddress, subaddressSize, rxBuff, rxBuffSize);
   314 void BOARD_Codec_I2C_Init(
void)
   319 status_t BOARD_Codec_I2C_Send(
   320     uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, 
const uint8_t *txBuff, uint8_t txBuffSize)
   326 status_t BOARD_Codec_I2C_Receive(
   327     uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
   329     return BOARD_LPI2C_Receive(
BOARD_CODEC_I2C_BASEADDR, deviceAddress, subAddress, subAddressSize, rxBuff, rxBuffSize);
 
#define BOARD_ACCEL_I2C_CLOCK_FREQ
 
#define BOARD_CODEC_I2C_CLOCK_FREQ
 
uint32_t BOARD_DebugConsoleSrcFreq(void)
 
#define BOARD_DEBUG_UART_BAUDRATE
 
#define BOARD_ACCEL_I2C_BASEADDR
 
void BOARD_SD_Pin_Config(uint32_t speed, uint32_t strength)
 
uint8_t data[FXLS8962_DATA_SIZE]
 
void BOARD_MMC_Pin_Config(uint32_t speed, uint32_t strength)
 
#define BOARD_DEBUG_UART_INSTANCE
 
#define BOARD_CODEC_I2C_BASEADDR
 
void BOARD_ConfigMPU(void)
 
void BOARD_InitDebugConsole(void)
 
#define BOARD_DEBUG_UART_TYPE