summaryrefslogtreecommitdiffstats
path: root/uc_str912/prj_blinky_complex_startup/src/91x_emi.c
diff options
context:
space:
mode:
authorBert Lange <b.lange@fzd.de>2011-11-07 15:41:50 +0100
committerBert Lange <b.lange@fzd.de>2011-11-07 15:41:50 +0100
commitd190f1c37139ec38667a3d6e566dbe1b0549f84d (patch)
tree7885f39318cb7852afc24992dd08cb6bb953ac03 /uc_str912/prj_blinky_complex_startup/src/91x_emi.c
parentacc2681723f43b3c8ccb29055bec9d63cb863c78 (diff)
downloadzpu-d190f1c37139ec38667a3d6e566dbe1b0549f84d.zip
zpu-d190f1c37139ec38667a3d6e566dbe1b0549f84d.tar.gz
initial commit
Diffstat (limited to 'uc_str912/prj_blinky_complex_startup/src/91x_emi.c')
-rw-r--r--uc_str912/prj_blinky_complex_startup/src/91x_emi.c167
1 files changed, 167 insertions, 0 deletions
diff --git a/uc_str912/prj_blinky_complex_startup/src/91x_emi.c b/uc_str912/prj_blinky_complex_startup/src/91x_emi.c
new file mode 100644
index 0000000..deadae8
--- /dev/null
+++ b/uc_str912/prj_blinky_complex_startup/src/91x_emi.c
@@ -0,0 +1,167 @@
+/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
+* File Name : 91x_emi.c
+* Author : MCD Application Team
+* Date First Issued : 05/18/2006 : Version 1.0
+* Description : This file provides all the EMI software functions.
+********************************************************************************
+* History:
+* 05/24/2006 : Version 1.1
+* 05/18/2006 : Version 1.0
+********************************************************************************
+* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
+* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
+* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
+* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
+* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+*******************************************************************************/
+
+/* Includes ------------------------------------------------------------------*/
+#include "91x_emi.h"
+#include "91x_scu.h"
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+
+/* These constant variables are used as masks to handle the EMI registers. */
+
+#define EMI_PageModeRead_TL_Mask 0xFFFFF3FF
+#define EMI_PageModeRead_Sel_Mask 0xFFFFFEFF
+#define EMI_MemWidth_Mask 0xFFFFFFCF
+#define EMI_WriteProtect_Mask 0xFFFFFEF7
+
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Registers reset value */
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************
+* Function Name : EMI_DeInit
+* Description : Deinitializes the EMI peripheral registers to their default
+* reset values.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+
+void EMI_DeInit(void)
+{
+
+ SCU_AHBPeriphReset(__EMI, ENABLE); /* EMI peripheral under Reset */
+ SCU_AHBPeriphReset(__EMI,DISABLE ); /* EMI not under Reset */
+
+}
+
+/*******************************************************************************
+* Function Name : EMI_StructInit
+* Description : Fills the EMI_InitTypeDef structure member with its reset
+* value.
+* Input : EMI_InitStruct : pointer to a EMI_InitTypeDef structure
+* which will be initialized.
+* Output : None
+* Return : None
+*******************************************************************************/
+
+void EMI_StructInit( EMI_InitTypeDef *EMI_InitStruct)
+{
+
+ /* Number of bus turnaround cycles added between read and write accesses.*/
+ /*This member can be 0x01,0x02,0x03, ....0xF (Reset value:0xF "15 cycles"*/
+
+ EMI_InitStruct->EMI_Bank_IDCY =0xF;
+
+
+ /* Number of wait states for read accesses*/
+ /*This member can be: 0x01,0x02,0x03, ....0x1F (Reset value:0x1F "31 cycles"*/
+
+ EMI_InitStruct->EMI_Bank_WSTRD =0x1F;
+
+
+ /* Number of wait states for write accesses*/
+ /*This member can be: 0x01,0x02,0x03, ....0x1F (Reset value:0x1F "31 cycles"*/
+
+ EMI_InitStruct->EMI_Bank_WSTWR =0x1F;
+
+ /*Output enable assertion delay from chip select assertion*/
+ /*This member can be: 0x01,0x02,0x03, ....0xF (Reset value:0x01 "1 cycle"*/
+
+ EMI_InitStruct->EMI_Bank_WSTROEN =0x01;
+
+
+ /*Write enable assertion delay from chip select assertion*/
+ /*This member can be: 0x01,0x02,0x03, ....0xF (Reset value:0x00 "0 cycle"*/
+
+ EMI_InitStruct->EMI_Bank_WSTWEN =0x00;
+
+
+ /*This member Controls the memory width*/
+ /*This member can be :"EMI_Width_Byte" = 8 bits width or "EMI_Width_HalfWord" = 16 bits width*/
+
+ EMI_InitStruct->EMI_Bank_MemWidth = EMI_Width_Byte;
+
+
+ /*Write protection feature */
+ /*This member can be :"EMI_Bank_NonWriteProtect" = No write protection or "EMI_Bank_WriteProtect" = bank is write protected*/
+
+ EMI_InitStruct-> EMI_Bank_WriteProtection= EMI_Bank_NonWriteProtect;
+
+
+ /* page transfer length for page mode read */
+ /*This member can be :"EMI_4Data" = 4 transfers burst or "EMI_8Data" = 8 transfers burst*/
+
+ EMI_InitStruct->EMI_PageModeRead_TransferLength= EMI_4Data;
+
+ /*Select or deselect the page mode read*/
+ /*This member can be :"EMI_NormalMode" =Normal Mode or "EMI_PageModeRead" = Page Mode Read*/
+
+ EMI_InitStruct->EMI_PageModeRead_Selection = EMI_NormalMode;
+
+
+}
+
+/*******************************************************************************
+* Function Name : EMI_Init
+* Description : Initializes EMI peripheral according to the specified
+* parameters in the EMI_InitStruct.
+
+* Input : EMI_Bankx:where x can be 0,1,2 or 3 to select the EMI Bank.
+ EMI_InitStruct: pointer to a EMI_InitTypeDef structure
+ ( Structure Config to be loaded in EMI Registers). .
+
+* Output : None
+* Return : None
+*******************************************************************************/
+
+void EMI_Init( EMI_Bank_TypeDef* EMI_Bankx, EMI_InitTypeDef* EMI_InitStruct)
+
+{
+
+ EMI_Bankx->ICR = EMI_InitStruct-> EMI_Bank_IDCY ;
+
+ EMI_Bankx->RCR = EMI_InitStruct->EMI_Bank_WSTRD ;
+
+ EMI_Bankx->WCR = EMI_InitStruct->EMI_Bank_WSTWR ;
+
+ EMI_Bankx->OECR = EMI_InitStruct->EMI_Bank_WSTROEN;
+
+ EMI_Bankx->WECR = EMI_InitStruct->EMI_Bank_WSTWEN ;
+
+ EMI_Bankx->BCR &= EMI_MemWidth_Mask;
+ EMI_Bankx->BCR |= EMI_InitStruct->EMI_Bank_MemWidth;
+
+ EMI_Bankx->BCR &= EMI_WriteProtect_Mask;
+ EMI_Bankx->BCR |= EMI_InitStruct->EMI_Bank_WriteProtection;
+
+ EMI_Bankx->BCR &= EMI_PageModeRead_TL_Mask;
+ EMI_Bankx->BCR |= EMI_InitStruct->EMI_PageModeRead_TransferLength;
+
+ EMI_Bankx->BCR &= EMI_PageModeRead_Sel_Mask;
+ EMI_Bankx->BCR |= EMI_InitStruct->EMI_PageModeRead_Selection;
+
+
+}
+
+
+
+/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
OpenPOWER on IntegriCloud