diff libs/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/readme.txt @ 0:c59513fd84fb

Initial commit of STM32 test code.
author Daniel O'Connor <darius@dons.net.au>
date Mon, 03 Oct 2011 21:19:15 +1030
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libs/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/FLASH/Dual_Boot/readme.txt	Mon Oct 03 21:19:15 2011 +1030
@@ -0,0 +1,164 @@
+/**
+  @page Dual_Boot XL-Density devices FLASH Dual Boot capability example
+  
+  @verbatim
+  ******************** (C) COPYRIGHT 2011 STMicroelectronics *******************
+  * @file    FLASH/Dual_Boot/readme.txt 
+  * @author  MCD Application Team
+  * @version V3.5.0
+  * @date    08-April-2011
+  * @brief   Description of the XL-Density devices FLASH Dual Boot capability example.
+  ******************************************************************************
+  * 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.
+  ******************************************************************************
+   @endverbatim
+
+@par Example Description 
+
+This example demonstrates the dual Flash boot capability of XL-Density devices:
+boot from Flash memory Bank1 or Bank2.
+
+At startup, if BFB2 option bit is reset and the boot pins are in the boot from main
+Flash memory configuration, the device boots from Flash memory Bank1 or Bank2,
+depending on the activation of the bank. The active banks are checked in the following
+order: Bank2, followed by Bank1.
+The active bank is identified by the value programmed at the base address of the 
+bank (corresponding to the initial stack pointer value in the interrupt vector table). 
+For further details, please refer to AN2606 "STM32 microcontroller system memory boot mode."
+
+To demonstrate this feature, this example provides two programs:
+  - 1st program will be loaded in Flash Bank1 (starting from @ 0x08000000), for this
+     you have to enable BOOT_FROM_BANK1 define in main.c 
+  - 2nd program will be loaded in Flash Bank2 (starting from @ 0x08080000), for this
+     you have to enable BOOT_FROM_BANK2 define in main.c 
+
+Once these two programs are loaded and boot pins set in boot from Flash memory,
+after reset the device will boot from Bank1 (default). Then you have to follow
+the instructions provided on the LCD:
+  - "Joystick-DOWN: reset BFB2 bit to Boot from Bank2" => when pushing the Joystick
+     DOWN button, BFB2 option bit will be reset then a system (SW) reset will be
+     generated. After startup from reset, the device will boot from Bank2. 
+      - Note: when booting from Bank2 the same menu will be displayed
+ 
+  - "Joystick-UP: set BFB2 bit to Boot from Bank1" => when pushing the Joystick
+     UP button, BFB2 option bit will be set then a system (SW) reset will be
+     generated. After startup from reset, the device will boot from Bank1.       
+ 
+  - "Joystick-SEL: program to 0x0 the base @ of Bank1/2" => when pushing the Joystick
+     SEL button, the content of address 0x08080000 and 0x08000000 will be programmed to 0x0.
+       - If the program was previously booting from Bank2 (i.e. BFB2 bit is reset), 
+         in this case after reset no program is executed and the Bootloader code
+         is executed instead. 
+       - If the program was previously booting from Bank1 (i.e. BFB2 bit is set), 
+         in this case after reset no program is executed.
+       - You have to load again the two programs to Bank1 and Bank2.
+ 
+@b Important Note
+=================
+When BFB2 bit is cleared and Bank2 or/and Bank1 contain valid user application code,
+the Bootloader will always jump to this code and never continue normal code execution 
+(i.e. it’s no more possible to use the Bootloader for code upgrade and option bytes
+programming). As consequence, if the user has cleared BFB2 bit (to boot from Bank2),
+in order to be able to execute the embedded Bootloader code he has to: 
+   - either, set BFB2 bit to 1
+   - or, program the content of address 0x08080000 and 0x08000000 to 0x0
+=> This example allows performing the two actions described above.
+
+
+@par Directory contents 
+
+  - FLASH/Dual_Boot/stm32f10x_conf.h    Library Configuration file
+  - FLASH/Dual_Boot/stm32f10x_it.h      Interrupt handlers header file
+  - FLASH/Dual_Boot/stm32f10x_it.c      Interrupt handlers
+  - FLASH/Dual_Boot/main.c              Main program
+  - FLASH/Dual_Boot/system_stm32f10x.c  STM32F10x system source file
+
+@par Hardware and Software environment 
+
+  - This example runs only on STM32F10x XL-Density Devices.
+  
+  - This example has been tested with STMicroelectronics STM3210E-EVAL (XL-Density) 
+    evaluation board and can be easily tailored to any development board. 
+
+ 
+@par How to use it ? 
+    
+In order to load the IAP code, you have to do the following:
+ - EWARM:
+    - Open the Project.eww workspace
+    - In the workspace toolbar select the project config:
+        - STM32F10X_XL_BANK1: to load the program in Flash bank1 (BOOT_FROM_BANK1
+                              already defined in the project preprocessor)    
+        - STM32F10X_XL_BANK2: to load the program in Flash bank2 (BOOT_FROM_BANK2
+                              already defined in the project preprocessor)
+    - Rebuild all files: Project->Rebuild all
+    - Load project image: Project->Debug
+    - Run program: Debug->Go(F5)
+
+ - HiTOP
+    - Open the HiTOP toolchain.
+    - Browse to open:
+        -STM32F10X_XL_BANK1.htp: to load the program in Flash bank1 (BOOT_FROM_BANK1
+                             already defined in the project preprocessor)
+        -STM32F10X_XL_BANK2.htp: to load the program in Flash bank2 (BOOT_FROM_BANK2
+                             already defined in the project preprocessor)  
+     - A "Download application" window is displayed, click "cancel".
+     - Rebuild all files: Project->Rebuild all
+     - Load project image : Click "ok" in the "Download application" window.
+     - Run the "RESET_GO_MAIN" script to set the PC at the "main"
+     - Run program: Debug->Go(F5).
+     
+ - MDK-ARM 
+    - Open Project.uvproj project
+    - In the build toolbar select the project config:
+        - STM32F10X_XL_BANK1: to load the program in Flash bank1 (BOOT_FROM_BANK1
+                              already defined in the project preprocessor)    
+        - STM32F10X_XL_BANK2: to load the program in Flash bank2 (BOOT_FROM_BANK2
+                              already defined in the project preprocessor)  
+    - Rebuild all files: Project->Rebuild all target files
+    - Load project image: Debug->Start/Stop Debug Session
+    - Run program: Debug->Run (F5)
+
+ - TrueSTUDIO 
+    - Open the TrueSTUDIO toolchain.
+    - Click on File->Switch Workspace->Other and browse to TrueSTUDIO workspace 
+      directory.
+    - Click on File->Import, select General->'Existing Projects into Workspace' 
+      and then click "Next". 
+    - Browse to the TrueSTUDIO workspace directory and select the project: 
+        - STM32F10X_XL_BANK1: to load the program in Flash bank1 (BOOT_FROM_BANK1
+                              already defined in the project preprocessor)    
+        - STM32F10X_XL_BANK2: to load the program in Flash bank2 (BOOT_FROM_BANK2
+                              already defined in the project preprocessor) 
+    - Under Windows->Preferences->General->Workspace->Linked Resources, add 
+      a variable path named "CurPath" which points to the folder containing
+      "Libraries", "Project" and "Utilities" folders.
+    - Rebuild all project files: Select the project in the "Project explorer" 
+      window then click on Project->build project menu.
+    - Run program: Select the project in the "Project explorer" window then click 
+      Run->Debug (F11)
+
+@note
+ - Low-density Value line devices are STM32F100xx microcontrollers where the 
+   Flash memory density ranges between 16 and 32 Kbytes.
+ - Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx 
+   microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
+ - Medium-density Value line devices are STM32F100xx microcontrollers where
+   the Flash memory density ranges between 64 and 128 Kbytes.  
+ - Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx 
+   microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.
+ - High-density Value line devices are STM32F100xx microcontrollers where
+   the Flash memory density ranges between 256 and 512 Kbytes.   
+ - High-density devices are STM32F101xx and STM32F103xx microcontrollers where
+   the Flash memory density ranges between 256 and 512 Kbytes.
+ - XL-density devices are STM32F101xx and STM32F103xx microcontrollers where
+   the Flash memory density ranges between 512 and 1024 Kbytes.
+ - Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.  
+   
+ * <h3><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h3>
+ */