⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc177x_8x_emc.c

📁 NXPl788上lwip的无操作系统移植,基于Embest开发板
💻 C
📖 第 1 页 / 共 4 页
字号:
        case 2:
            LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_CHIPPOLARITY_MASK;
            LPC_EMC->StaticConfig2 |=  pol_val&EMC_STATIC_CFG_CHIPPOLARITY_MASK;
            break;
            
        case 3:
            LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_CHIPPOLARITY_MASK;
            LPC_EMC->StaticConfig3  |=  pol_val&EMC_STATIC_CFG_CHIPPOLARITY_MASK;
            break;
	default:
            return EMC_FUNC_INVALID_PARAM;
    }
    return EMC_FUNC_OK;
}


/*********************************************************************//**
 * @brief         Configure the byte lane state
 *
 * @param[in]    index index number, should be from 0 to 3
 *
 * @param[in]     pb_val  Byte lane state, should be:
 *
 *                 - EMC_CFG_BYTELAND_READ_BITSHIGH: For reads all bits 
 *                in BLSn[3:0] are HIGH.
 *
 *                 - EMC_CFG_BYTELAND_READ_BITSLOW: For reads all bits 
 *                in BLSn[3:0] are LOW.
 *
 * @return         EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
 **********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigPB(uint32_t index , uint32_t pb_val)
{
    switch ( index)
    {
        case 0:
            LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
            LPC_EMC->StaticConfig0 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
            break;

        case 1:
            LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
            LPC_EMC->StaticConfig1 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
            break;

        case 2:
            LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
            LPC_EMC->StaticConfig2 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
            break;

        case 3:
            LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_BYTELAND_MASK;
            LPC_EMC->StaticConfig3 |= pb_val&EMC_STATIC_CFG_BYTELAND_MASK;
            break;
	default:
            return EMC_FUNC_INVALID_PARAM;
    }
    return EMC_FUNC_OK;
}

/*********************************************************************//**
 * @brief         Configure the extended wait value
 *
 * @param[in]    index index number, should be from 0 to 3
 *
 * @param[in]     ex_wait  Extended wait mode, should be:
 *
 *                - EMC_CFG_EW_DISABLED: Extended wait disabled.
 *
 *                - EMC_CFG_EW_ENABLED: Extended wait enabled.
 *
 * @return         EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
 **********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigEW(uint32_t index , uint32_t ex_wait)
{
    switch ( index)
    {
        case 0:
            LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
            LPC_EMC->StaticConfig0 |=  ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
            break;
        
        case 1:
            LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
            LPC_EMC->StaticConfig1 |=  ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
            break;
        
        case 2:
            LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
            LPC_EMC->StaticConfig2  |=  ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
            break;
        
        case 3:
            LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_EXTWAIT_MASK;
            LPC_EMC->StaticConfig3  |=  ex_wait&EMC_STATIC_CFG_EXTWAIT_MASK;
            break;
	default:
            return EMC_FUNC_INVALID_PARAM;
    }
    return EMC_FUNC_OK;
}

/*********************************************************************//**
 * @brief         Configure the buffer enable value
 *
 * @param[in]    index index number, should be from 0 to 3
 *
 * @param[in]     buf_val  Buffer mode, should be:
 *
 *                - EMC_CFG_BUF_DISABLED: Buffer disabled.
 *
 *                - EMC_CFG_BUF_ENABLED: Buffer enabled.
 *
 * @return         EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
 **********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigB(uint32_t index , uint32_t buf_val)
{    
    switch ( index)
    {
        case 0:
            LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
            LPC_EMC->StaticConfig0 |=  buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
            break;
        
        case 1:
            LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
            LPC_EMC->StaticConfig1  |=  buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
            break;
        
        case 2:
            LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
            LPC_EMC->StaticConfig2  |=  buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
            break;
        
        case 3:
            LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_BUFENABLE_MASK;
            LPC_EMC->StaticConfig3  |=  buf_val&EMC_STATIC_CFG_BUFENABLE_MASK;
            break;
	default:
            return EMC_FUNC_INVALID_PARAM;
    }
    return EMC_FUNC_OK;
}

/*********************************************************************//**
 * @brief         Configure the write permission
 *
 * @param[in]    index index number, should be from 0 to 3
 *
 * @param[in]     per_val  Permission mode, should be:
 *
 *                - EMC_CFG_WRITEPROTECT_DISABLED: Write not protected.
 *
 *                - EMC_CFG_WRITEPROTECT_ENABLED: Write protected.
 *
 * @return         EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
 **********************************************************************/
EMC_FUNC_CODE EMC_StaMemConfigpP(uint32_t index , uint32_t per_val)
{
    switch ( index)
    {
        case 0:
            LPC_EMC->StaticConfig0 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
            LPC_EMC->StaticConfig0  |=  per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
            break;
        
        case 1:
            LPC_EMC->StaticConfig1 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
            LPC_EMC->StaticConfig1  |=  per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
            break;
        
        case 2:
            LPC_EMC->StaticConfig2 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
            LPC_EMC->StaticConfig2  |=  per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
            break;
        
        case 3:
            LPC_EMC->StaticConfig3 &= ~EMC_STATIC_CFG_WRIEPROTECT_MASK;
            LPC_EMC->StaticConfig3  |=  per_val&EMC_STATIC_CFG_WRIEPROTECT_MASK;
            break;
	default:
            return EMC_FUNC_INVALID_PARAM;
    }
    return EMC_FUNC_OK;
}

/*********************************************************************//**
 * @brief         Set the value of LPC_EMC static memory registers
 *
 * @param[in]    index index number, should be from 0 to 3
 *
 * @param[in]     EMC_STA_MEM_PAR  Static register, should be:
 *
 *                - EMC_STA_MEM_WAITWEN: StaticWaitWen0 register
 *                - EMC_STA_MEM_WAITOEN: StaticWaitOen0 register
 *                - EMC_STA_MEM_WAITRD: StaticWaitRd0 register
 *                - EMC_STA_MEM_WAITPAGE: StaticWaitPage0 register
 *                - EMC_STA_MEM_WAITWR: StaticWaitWr0 register
 *                - EMC_STA_MEM_WAITTURN: StaticWaitTurn0 register
 *
 * @return         EMC_FUNC_OK/EMC_FUNC_INVALID_PARAM
 **********************************************************************/
EMC_FUNC_CODE EMC_SetStaMemoryParameter(uint32_t index ,EMC_STA_MEM_PAR par, uint32_t val)
{
    switch (index)
    {
        case 0:
            switch ( par)
            {
                case EMC_STA_MEM_WAITWEN:
                    LPC_EMC->StaticWaitWen0 = EMC_StaticWaitWen_WAITWEN(val);
                    break; 
                
                case EMC_STA_MEM_WAITOEN:
                    LPC_EMC->StaticWaitOen0 = EMC_StaticWaitOen_WAITOEN(val);
                    break;
                
                case EMC_STA_MEM_WAITRD:
                    LPC_EMC->StaticWaitRd0 = EMC_StaticWaitRd_WAITRD(val);
                    break;
                
                case EMC_STA_MEM_WAITPAGE:
                    LPC_EMC->StaticWaitPage0 = EMC_StaticwaitPage_WAITPAGE(val);
                    break;
                
                case EMC_STA_MEM_WAITWR:
                    LPC_EMC->StaticWaitWr0 = EMC_StaticWaitwr_WAITWR(val);
                    break;
                
                case EMC_STA_MEM_WAITTURN:
                    LPC_EMC->StaticWaitTurn0 =EMC_StaticWaitTurn_WAITTURN(val);
                    break;
	      default:
                    return EMC_FUNC_INVALID_PARAM;
            }
            break;
            
        case 1:
            switch ( par)
            {
                case EMC_STA_MEM_WAITWEN:
                    LPC_EMC->StaticWaitWen1 = EMC_StaticWaitWen_WAITWEN(val);
                    break;
                
                case EMC_STA_MEM_WAITOEN:
                    LPC_EMC->StaticWaitOen1 = EMC_StaticWaitOen_WAITOEN(val);
                    break;
                
                case EMC_STA_MEM_WAITRD:
                    LPC_EMC->StaticWaitRd1 = EMC_StaticWaitRd_WAITRD(val);
                    break;
                
                case EMC_STA_MEM_WAITPAGE:
                    LPC_EMC->StaticWaitPage1 = EMC_StaticwaitPage_WAITPAGE(val);
                    break;
                
                case EMC_STA_MEM_WAITWR:
                    LPC_EMC->StaticWaitWr1 = EMC_StaticWaitwr_WAITWR(val);
                    break;
                
                case EMC_STA_MEM_WAITTURN:
                    LPC_EMC->StaticWaitTurn1 =EMC_StaticWaitTurn_WAITTURN(val);
                    break;
	       default:
		 return EMC_FUNC_INVALID_PARAM;

            }
            break;
            
        case 2:
            switch ( par)
            {
                case EMC_STA_MEM_WAITWEN:
                    LPC_EMC->StaticWaitWen2 = EMC_StaticWaitWen_WAITWEN(val);
                    break;
                
                case EMC_STA_MEM_WAITOEN:
                    LPC_EMC->StaticWaitOen2 = EMC_StaticWaitOen_WAITOEN(val);
                    break;
                
                case EMC_STA_MEM_WAITRD:
                    LPC_EMC->StaticWaitRd2 = EMC_StaticWaitRd_WAITRD(val);
                    break;
                
                case EMC_STA_MEM_WAITPAGE:
                    LPC_EMC->StaticWaitPage2 = EMC_StaticwaitPage_WAITPAGE(val);
                    break;
                
                case EMC_STA_MEM_WAITWR:
                    LPC_EMC->StaticWaitWr2 = EMC_StaticWaitwr_WAITWR(val);
                    break;
                
                case EMC_STA_MEM_WAITTURN:
                    LPC_EMC->StaticWaitTurn2 =EMC_StaticWaitTurn_WAITTURN(val);
                    break;
	       default:
		 return EMC_FUNC_INVALID_PARAM;

            }
            break;
        
        case 3:
            switch ( par)
            {
                case EMC_STA_MEM_WAITWEN:
                    LPC_EMC->StaticWaitWen3 = EMC_StaticWaitWen_WAITWEN(val);
                    break;
                
                case EMC_STA_MEM_WAITOEN:
                    LPC_EMC->StaticWaitOen3 = EMC_StaticWaitOen_WAITOEN(val);
                    break;
                
                case EMC_STA_MEM_WAITRD:
                    LPC_EMC->StaticWaitRd3 = EMC_StaticWaitRd_WAITRD(val);
                    break;
                
                case EMC_STA_MEM_WAITPAGE:
                    LPC_EMC->StaticWaitPage3 = EMC_StaticwaitPage_WAITPAGE(val);
                    break;
                
                case EMC_STA_MEM_WAITWR:
                    LPC_EMC->StaticWaitWr3 = EMC_StaticWaitwr_WAITWR(val);
                    break;
                
                case EMC_STA_MEM_WAITTURN:
                    LPC_EMC->StaticWaitTurn3 =EMC_StaticWaitTurn_WAITTURN(val);
                    break;
	       default:
		return EMC_FUNC_INVALID_PARAM;
            }
            break;
    }
    return EMC_FUNC_OK;
}
/**
 * @}
 */
 
 /**
 * @}
 */
#endif /*_EMC*/






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -