  STM32F723E-DISCO Demonstration Firmware
 
  ******************** (C) COPYRIGHT 2016 STMicroelectronics *******************
  * @file    Demonstration/readme.txt 
  * @author  MCD Application Team; edited by SEGGER 
  * @brief   Description of STM32F723E-DISCO Demonstration
  ******************************************************************************
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software 
  * distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************


Demo Description

The STM32Cube Demonstration platform comes on top of the STM32CubeTM as a firmware
package that offers a full set of software components based on a modules architecture
allowing re-using them separately in standalone applications. All these modules are
managed by the STM32Cube Demonstration kernel allowing to dynamically adding new
modules and access to common resources (storage, graphical components and widgets,
memory management, Real-Time operating system)

The STM32Cube Demonstration platform is built around the powerful graphical library
STemWin and the FreeRTOS real time operating system and uses almost the whole STM32
capability to offer a large scope of usage based on the STM32Cube HAL BSP and several
middleware components.

The STM32 F7 demonstration is running on STM32F723E-DISCO boards RevC. 

Below you find an overview of the different offered module in the demonstration:

 + Video player
 --------------
 The video player module provides a video solution based on the STM32F7xx and STemWin
 movie API. It supports playing movie in AVI format from a USB stick.
 
 User may use the *.avi video file (240x200) provided under "Utilities/Media/Video".
 
 + Audio player
 --------------
 The audio player module provides a complete audio solution based on the STM32F7xx and
 delivers a high-quality music experience. It supports playing music in WAV format from a USB stick but may
 be extended to support other compressed formats such as MP3 and WMA audio formats.
 The Module supports background mode feature.
 Listen to the audio by inserting headphones into the LineOUT jack (CN5).

 + Audio recorder
 -----------------
 The audio recorder module allows recording audio to a USB stick via the on-board microphones and playing it back.
 Record audio by tapping the "Microphone" icon in the Audio recorder sub menu.
 To end the recording, tap the "Check Mark" icon. Then play back the recording by tapping the "Play" icon. 

 + Analog Clock
 ------------
 The analog clock module shows the time and gives the option to set the time.

 + System Info (swipe screen left to see icon)
 --------------  
 The system info module provides information about the core, supported boards, 
 CPU speed and demonstration version.  


Hardware and Software environment

  - This application runs on STM32F723xx devices.  

  - This example has been tested with STMicroelectronics STM32F723E-DISCO
    boards RevC and can be easily tailored to any other supported device 
    and development board.

  - This version contains a project file for the SEGGER Embedded Studio IDE (v3.41 or higher) 


How to use it ? 

In order to make the program work, you must do the following :
 - Download and install SEGGER Embedded Studio for Arm v3.41 or higher from https://www.segger.com/downloads/embedded-studio/ 
 - Start SEGGER Embedded Studio
 - Open the Demo Project (File|Open Solution) at this location:
   "C:\...\STM32F723E-D-DP\Project\STM32F723E-Discovery\Demonstration\STemWin\SES\STM32F723E-DISCO_Demo\project.emproject"
 - Rebuild all files (Build|Build Solution)

After building, in order to download and run the program using the SEGGER Embedded Studio IDE, do the following:
 - Replace the ST-Link debugger firmware in the STM32F723E-DISCO board with the J-Link debugger firmware
   using the SEGGER STLinkReflash utility as described here:
   https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/
   (You will be able to restore the ST-Link firmware later on if desired) 
 - Connect the STM32F723E-DISCO board to your PC with a USB cable via connector CN1 (=> J-Link OnBoard)
 - Optional: Copy the audio and video files provided under "Utilities/Media/Audio" and "Utilities/Media/Video" to the root of a USB stick
             and plug the USB stick into the USB HS connector (CN19) of the STM32F723E_DISCO board (via a Micro USB 'B' male to USB 'A' female adapter cable)
 - Start a debug session in SEGGER Embedded Studio (Debug|Go)
   The code gets downloaded onto the board and execution halts at main().
 - Select Debug|Go again to run the demonstration
 - Select Debug|Break to halt execution 
 - Select Debug|Stop to terminate the debug session

     
Pre-built option:
	 
You can also download the pre-built .hex file into your STM32F723E-DISCO boards RevC as follows:
 - Replace the ST-Link debugger firmware in the STM32F723E-DISCO board with the J-Link debugger firmware
   using the SEGGER STLinkReflash utility as described here:
   https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/
   (You will be able to restore the ST-Link firmware later on if desired) 
 - Connect the STM32F723E-DISCO board to your PC with a USB cable via connector CN1 (=> J-Link OnBoard)
 - Navigate to the "C:\...\STM32F723E-D-DP\Prebuilt\" folder
 - Double-click "StartBinary.bat" to program both internal Flash and external QSPI memory
 - The demonstration will run automatically after download is complete.



Note: If the user code size exceeds the DTCM-RAM size or starts from internal cacheable memories (SRAM1 and SRAM2),that is shared between several processors,
      then it is highly recommended to enable the CPU cache and maintain its coherence at application level.
      In case of constraints it is possible to configure the MPU as "Write through/not shareable" to guarantee the cache coherence at write access but the user
	  has to ensure the cache maintenance at read access though.
      The address and the size of cacheable buffers (shared between CPU and other masters)  must be properly updated to be aligned to cache line size (32 bytes).

Note: It is recommended to enable the cache and maintain its coherence, but depending on the use case
      It is also possible to configure the MPU as "Write through", to guarantee the write access coherence.
      In that case, the MPU must be configured as Cacheable/Bufferable/Not Shareable.
      Even though the user must manage the cache coherence for read accesses.
      Please refer to the AN4838 “Managing memory protection unit (MPU) in STM32 MCUs”
      Please refer to the AN4839 “Level 1 cache on STM32F7 Series”


 COPYRIGHT STMicroelectronics / SEGGER Microcontroller GmbH
 
