/*FUNCTION********************************************************************** * * Function Name : MPU_DRV_Init * Description : MPU module init. * This function is used to initialize MPU regions. * *END**************************************************************************/ mpu_status_t MPU_DRV_Init(uint32_t instance, mpu_user_config_t *userConfigPtr, mpu_state_t *userStatePtr) { assert(instance < HW_MPU_INSTANCE_COUNT); uint32_t baseAddr = g_mpuBaseAddr[instance]; CLOCK_SYS_EnableMpuClock(instance); if(!userConfigPtr) { return kStatus_MPU_NullArgument; } MPU_HAL_Init(baseAddr); while(userConfigPtr) { MPU_DRV_RegionInit(instance, &(userConfigPtr->regionConfig)); userConfigPtr = userConfigPtr->next; } mpu_state_ptrs[instance] = userStatePtr; MPU_HAL_Enable(baseAddr); return kStatus_MPU_Success; }
/*FUNCTION********************************************************************** * * Function Name : MPU_DRV_Init * Description : MPU module init. * This function is used to initialize MPU regions. * *END**************************************************************************/ mpu_status_t MPU_DRV_Init(uint32_t instance, const mpu_user_config_t *userConfigPtr) { assert(instance < MPU_INSTANCE_COUNT); MPU_Type * base = g_mpuBase[instance]; if(!userConfigPtr) { return kStatus_MPU_NullArgument; } CLOCK_SYS_EnableMpuClock(instance); MPU_HAL_Init(base); while(userConfigPtr) { MPU_DRV_SetRegionConfig(instance, &(userConfigPtr->regionConfig)); userConfigPtr = userConfigPtr->next; } MPU_HAL_Enable(base); return kStatus_MPU_Success; }