103 lines
4.7 KiB
Plaintext
103 lines
4.7 KiB
Plaintext
/**
|
||
@page Templates_LL Description of the Templates_LL example
|
||
|
||
@verbatim
|
||
******************************************************************************
|
||
* @file Templates_LL/readme.txt
|
||
* @author MCD Application Team
|
||
* @brief Description of the Templates_LL example.
|
||
******************************************************************************
|
||
* @attention
|
||
*
|
||
* Copyright (c) 2016 STMicroelectronics.
|
||
* All rights reserved.
|
||
*
|
||
* This software is licensed under terms that can be found in the LICENSE file
|
||
* in the root directory of this software component.
|
||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||
*
|
||
******************************************************************************
|
||
@endverbatim
|
||
|
||
@par Example Description
|
||
|
||
This projects provides a reference template through the LL API that can be used to build any firmware application.
|
||
|
||
This project LL template provides:
|
||
- Inclusion of all LL drivers (include files in "main.h" and LL sources files in IDE environment, with option "USE_FULL_LL_DRIVER" in IDE environment)
|
||
Note: If optimization is needed afterwards, user can perform a cleanup by removing unused drivers.
|
||
- Definition of LEDs and user button (file: main.h)
|
||
Note: User button name printed on board may differ from naming "user button" in code: "key button", ...
|
||
- Clock configuration (file: main.c)
|
||
|
||
This project LL template does not provide:
|
||
- Functions to initialize and control LED and user button
|
||
- Functions to manage IRQ handler of user button
|
||
|
||
To port a LL example to the targeted board:
|
||
1. Select the LL example to port.
|
||
To find the board on which LL examples are deployed, refer to LL examples list in "STM32CubeProjectsList.html", table section "Examples_LL"
|
||
or AN4731: STM32Cube firmware examples for STM32F7 Series
|
||
|
||
2. Replace source files of the LL template by the ones of the LL example, except code specific to board.
|
||
Note: Code specific to board is specified between tags:
|
||
/* ============== BOARD SPECIFIC CONFIGURATION CODE BEGIN ============== */
|
||
/* ============== BOARD SPECIFIC CONFIGURATION CODE END ============== */
|
||
|
||
- Replace file main.h, with updates:
|
||
- Keep LED and user button definition of the LL template under tags
|
||
|
||
- Replace file main.c, with updates:
|
||
- Keep clock configuration of the LL template: function "SystemClock_Config()"
|
||
- Depending of LED availability, replace LEDx_PIN by another LEDx (number) available in file main.h
|
||
|
||
- Replace file stm32f7xx_it.h
|
||
- Replace file stm32f7xx_it.c
|
||
|
||
|
||
@Note<74>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,
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>then it is highly recommended to enable the CPU cache and maintain its coherence at application level.
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> It is also possible to configure the MPU as "Write through", to guarantee the write access coherence.
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>In that case, the MPU must be configured as Cacheable/Bufferable/Not Shareable.
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Even though the user must manage the cache coherence for read accesses.
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Please refer to the AN4838 <20>Managing memory protection unit (MPU) in STM32 MCUs<55>
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Please refer to the AN4839 <20>Level 1 cache on STM32F7 Series<65>
|
||
|
||
@par Directory contents
|
||
|
||
- Templates_LL/Inc/stm32f7xx_it.h Interrupt handlers header file
|
||
- Templates_LL/Inc/main.h Header for main.c module
|
||
- Templates_LL/Inc/stm32_assert.h Template file to include assert_failed function
|
||
- Templates_LL/Src/stm32f7xx_it.c Interrupt handlers
|
||
- Templates_LL/Src/main.c Main program
|
||
- Templates_LL/Src/system_stm32F7xx.c STM32F7x system source file
|
||
|
||
|
||
@par Hardware and Software environment
|
||
|
||
- This template runs on STM32F746xx devices.
|
||
|
||
- This template has been tested with STM32F746ZG-Nucleo revB board
|
||
and can be easily tailored to any other supported device and development board
|
||
|
||
|
||
@par How to use it ?
|
||
|
||
In order to make the program work, you must do the following :
|
||
- Open your preferred toolchain
|
||
- Rebuild all files and load your image into target memory
|
||
- Run the example
|
||
|
||
In order to load the Flash_ITCM configuration, you must follow the instructions below :
|
||
- Open SW4STM32 toolchain
|
||
- Rebuild all files
|
||
- Open STM32 ST-Link Utility V4.1.0
|
||
- Connect the STM32xx board to PC with USB cable through CN1
|
||
- Use the hex file generated to program ITCM Flash using ST-Link Utility
|
||
|
||
|
||
*/
|