diff options
Diffstat (limited to 'tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FSMC/NAND/main.c')
-rw-r--r-- | tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FSMC/NAND/main.c | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FSMC/NAND/main.c b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FSMC/NAND/main.c deleted file mode 100644 index 8bdf486..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FSMC/NAND/main.c +++ /dev/null @@ -1,181 +0,0 @@ -/** - ****************************************************************************** - * @file FSMC/NAND/main.c - * @author MCD Application Team - * @version V3.5.0 - * @date 08-April-2011 - * @brief Main program body - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE 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 FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm3210e_eval_fsmc_nand.h" -#include "stm32_eval.h" - -/** @addtogroup STM32F10x_StdPeriph_Examples - * @{ - */ - -/** @addtogroup FSMC_NAND - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -#define BUFFER_SIZE 0x400 -#define NAND_ST_MakerID 0x20 -#define NAND_ST_DeviceID 0x76 - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -NAND_IDTypeDef NAND_ID; -NAND_ADDRESS WriteReadAddr; -uint8_t TxBuffer[BUFFER_SIZE], RxBuffer[BUFFER_SIZE]; -uint32_t PageNumber = 2, WriteReadStatus = 0, status= 0; -uint32_t j = 0; - -/* Private function prototypes -----------------------------------------------*/ -void Fill_Buffer(uint8_t *pBuffer, uint16_t BufferLenght, uint32_t Offset); - -/* Private functions ---------------------------------------------------------*/ - -/** - * @brief Main program. - * @param None - * @retval None - */ -int main(void) -{ - /*!< At this stage the microcontroller clock setting is already configured, - this is done through SystemInit() function which is called from startup - file (startup_stm32f10x_xx.s) before to branch to application main. - To reconfigure the default setting of SystemInit() function, refer to - system_stm32f10x.c file - */ - - /* Initialize Leds mounted on STM3210X-EVAL board */ - STM_EVAL_LEDInit(LED1); - STM_EVAL_LEDInit(LED2); - STM_EVAL_LEDInit(LED3); - - /* Enable the FSMC Clock */ - RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); - - /* FSMC Initialization */ - NAND_Init(); - - /* NAND read ID command */ - NAND_ReadID(&NAND_ID); - - /* Verify the NAND ID */ - if((NAND_ID.Maker_ID == NAND_ST_MakerID) && (NAND_ID.Device_ID == NAND_ST_DeviceID)) - { - - /* NAND memory address to write to */ - WriteReadAddr.Zone = 0x00; - WriteReadAddr.Block = 0x00; - WriteReadAddr.Page = 0x00; - - /* Erase the NAND first Block */ - status = NAND_EraseBlock(WriteReadAddr); - - /* Write data to FSMC NAND memory */ - /* Fill the buffer to send */ - Fill_Buffer(TxBuffer, BUFFER_SIZE , 0x66); - - status = NAND_WriteSmallPage(TxBuffer, WriteReadAddr, PageNumber); - - /* Read back the written data */ - status = NAND_ReadSmallPage (RxBuffer, WriteReadAddr, PageNumber); - - /* Verify the written data */ - for(j = 0; j < BUFFER_SIZE; j++) - { - if(TxBuffer[j] != RxBuffer[j]) - { - WriteReadStatus++; - } - } - - if (WriteReadStatus == 0) - { - /* OK */ - /* Turn on LED1 */ - STM_EVAL_LEDOn(LED1); - } - else - { - /* KO */ - /* Turn on LED2 */ - STM_EVAL_LEDOn(LED2); - } - } - else - { - /* Turn on LED3 */ - STM_EVAL_LEDOn(LED3); - } - - while(1) - { - } -} - -/** - * @brief Fill the buffer - * @param pBuffer: pointer on the Buffer to fill - * @param BufferSize: size of the buffer to fill - * @param Offset: first value to fill on the Buffer - */ -void Fill_Buffer(uint8_t *pBuffer, uint16_t BufferLenght, uint32_t Offset) -{ - uint16_t IndexTmp = 0; - - /* Put in global buffer same values */ - for (IndexTmp = 0; IndexTmp < BufferLenght; IndexTmp++ ) - { - pBuffer[IndexTmp] = IndexTmp + Offset; - } -} - -#ifdef USE_FULL_ASSERT - -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t* file, uint32_t line) -{ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - - /* Infinite loop */ - while (1) - { - } -} - -#endif -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |