diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-25 22:23:13 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-25 22:23:17 +0100 |
commit | 2fff65aed2477a503c72629d27e2a330d30c02d1 (patch) | |
tree | 96fd9f2f8151e266c0cf8563a714d7bab8aa7cb0 /tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c | |
parent | 41fdd2b1f35bcb4224fdb8fee2b959e09d1f5916 (diff) | |
download | stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.gz stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.bz2 stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.xz stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.zip |
o Seemingly working Mutexes.
o Dropping the privileged/unprivileged split for now.
Diffstat (limited to 'tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c')
-rw-r--r-- | tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c deleted file mode 100644 index fe05bb2..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Program/main.c +++ /dev/null @@ -1,197 +0,0 @@ -/** - ****************************************************************************** - * @file FLASH/Program/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 "stm32f10x.h" - - -/** @addtogroup STM32F10x_StdPeriph_Examples - * @{ - */ - -/** @addtogroup FLASH_Program - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus; - -/* Private define ------------------------------------------------------------*/ -/* Define the STM32F10x FLASH Page Size depending on the used STM32 device */ -#if defined (STM32F10X_HD) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) || defined (STM32F10X_XL) - #define FLASH_PAGE_SIZE ((uint16_t)0x800) -#else - #define FLASH_PAGE_SIZE ((uint16_t)0x400) -#endif - -#define BANK1_WRITE_START_ADDR ((uint32_t)0x08008000) -#define BANK1_WRITE_END_ADDR ((uint32_t)0x0800C000) - -#ifdef STM32F10X_XL - #define BANK2_WRITE_START_ADDR ((uint32_t)0x08088000) - #define BANK2_WRITE_END_ADDR ((uint32_t)0x0808C000) -#endif /* STM32F10X_XL */ - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -uint32_t EraseCounter = 0x00, Address = 0x00; -uint32_t Data = 0x3210ABCD; -uint32_t NbrOfPage = 0x00; -volatile FLASH_Status FLASHStatus = FLASH_COMPLETE; -volatile TestStatus MemoryProgramStatus = PASSED; - -#ifdef STM32F10X_XL -volatile TestStatus MemoryProgramStatus2 = PASSED; -#endif /* STM32F10X_XL */ - -/* Private function prototypes -----------------------------------------------*/ -/* 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 - */ - -/* Porgram FLASH Bank1 ********************************************************/ - /* Unlock the Flash Bank1 Program Erase controller */ - FLASH_UnlockBank1(); - - /* Define the number of page to be erased */ - NbrOfPage = (BANK1_WRITE_END_ADDR - BANK1_WRITE_START_ADDR) / FLASH_PAGE_SIZE; - - /* Clear All pending flags */ - FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); - - /* Erase the FLASH pages */ - for(EraseCounter = 0; (EraseCounter < NbrOfPage) && (FLASHStatus == FLASH_COMPLETE); EraseCounter++) - { - FLASHStatus = FLASH_ErasePage(BANK1_WRITE_START_ADDR + (FLASH_PAGE_SIZE * EraseCounter)); - } - - /* Program Flash Bank1 */ - Address = BANK1_WRITE_START_ADDR; - - while((Address < BANK1_WRITE_END_ADDR) && (FLASHStatus == FLASH_COMPLETE)) - { - FLASHStatus = FLASH_ProgramWord(Address, Data); - Address = Address + 4; - } - - FLASH_LockBank1(); - - /* Check the correctness of written data */ - Address = BANK1_WRITE_START_ADDR; - - while((Address < BANK1_WRITE_END_ADDR) && (MemoryProgramStatus != FAILED)) - { - if((*(__IO uint32_t*) Address) != Data) - { - MemoryProgramStatus = FAILED; - } - Address += 4; - } - -#ifdef STM32F10X_XL -/* Program FLASH Bank2 ********************************************************/ - /* Unlock the Flash Bank2 Program Erase controller */ - FLASH_UnlockBank2(); - - /* Define the number of page to be erased */ - NbrOfPage = (BANK2_WRITE_END_ADDR - BANK2_WRITE_START_ADDR) / FLASH_PAGE_SIZE; - - /* Clear All pending flags */ - FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); - - /* Erase the FLASH pages */ - for(EraseCounter = 0; (EraseCounter < NbrOfPage) && (FLASHStatus == FLASH_COMPLETE); EraseCounter++) - { - FLASHStatus = FLASH_ErasePage(BANK2_WRITE_START_ADDR + (FLASH_PAGE_SIZE * EraseCounter)); - } - - /* Program Flash Bank2 */ - Address = BANK2_WRITE_START_ADDR; - - while((Address < BANK2_WRITE_END_ADDR) && (FLASHStatus == FLASH_COMPLETE)) - { - FLASHStatus = FLASH_ProgramWord(Address, Data); - Address = Address + 4; - } - - FLASH_LockBank2(); - - /* Check the correctness of written data */ - Address = BANK2_WRITE_START_ADDR; - - while((Address < BANK2_WRITE_END_ADDR) && (MemoryProgramStatus2 != FAILED)) - { - if((*(__IO uint32_t*) Address) != Data) - { - MemoryProgramStatus2 = FAILED; - } - Address += 4; - } - -#endif /* STM32F10X_XL */ - - while (1) - { - } -} - -#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) */ - - while (1) - { - } -} - -#endif - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |