GangFlasher-ST User Guide
Programming Software for STM32 MP15x MPUs
PM052A01 rev 0.010.Jan.2021
Elprotronic Inc.
35 Austin Rumble Court King City
Ontario, L7B0B2 CANADA
Web site: www.elprotronic.com
E-mail: info@elprotronic.com
Fax: 905-539-0474
Voice: 905-539-0424
Copyright © Elprotronic Inc. All rights reserved.
Disclaimer:
No part of this document may be reproduced without the prior written consent of Elprotronic Inc. The information in this document is subject to change without notice and does not represent a commitment on any part of Elprotronic Inc. While the information contained herein is assumed to be accurate, Elprotronic Inc. assumes no responsibility for any errors or omissions.
In no event shall Elprotronic Inc., its employees or authors of this document be liable for special, direct, indirect, or consequential damage, losses, costs, charges, claims, demands, claims for lost profits, fees, or expenses of any nature or kind.
The software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such a license.
Disclaimer of warranties: You agree that Elprotronic Inc. has made no express warranties to You regarding the software, hardware, firmware and related documentation. The software, hardware, firmware and related documentation being provided to You "AS IS" without warranty or support of any kind. Elprotronic Inc. disclaims all warranties with regard to the software, express or implied, including, without limitation, any implied warranties of fitness for a particular purpose, merchantability, merchantable quality or non-infringement of third-party rights.
Limit of liability: In no event will Elprotronic Inc. be liable to you for any loss of use, interruption of business, or any direct, indirect, special incidental or consequential damages of any kind (including lost profits) regardless of the form of action whether in contract, tort (including negligence), strict product liability or otherwise, even if Elprotronic Inc. has been advised of the possibility of such damages.
END USER LICENSE AGREEMENT
PLEASE READ THIS DOCUMENT CAREFULLY BEFORE USING THE SOFTWARE AND THE ASSOCIATED HARDWARE. ELPROTRONIC INC. AND/OR ITS SUBSIDIARIES ("ELPROTRONIC") IS WILLING TO LICENSE THE SOFTWARE TO YOU AS AN INDIVIDUAL, THE COMPANY, OR LEGAL ENTITY THAT WILL BE USING THE SOFTWARE (REFERENCED BELOW AS "YOU" OR "YOUR") ONLY ON THE CONDITION THAT YOU AGREE TO ALL TERMS OF THIS LICENSE AGREEMENT. THIS IS A LEGAL AND ENFORCABLE CONTRACT BETWEEN YOU AND ELPROTRONIC. BY OPENING THIS PACKAGE, BREAKING THE SEAL, CLICKING "I AGREE" BUTTON OR OTHERWISE INDICATING ASSENT ELECTRONICALLY, OR LOADING THE SOFTWARE YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS AND CONDITIONS, CLICK ON THE "I DO NOT AGREE" BUTTON OR OTHERWISE INDICATE REFUSAL, MAKE NO FURTHER USE OF THE FULL PRODUCT AND RETURN IT WITH THE PROOF OF PURCHASE TO THE DEALER FROM WHOM IT WAS ACQUIRED WITHIN FIFTEEN (15) DAYS OF PURCHASE AND YOUR MONEY WILL BE REFUNDED.
1. License.
The software, firmware and related documentation (collectively the "Product") is the property of Elprotronic or its licensors and is protected by copyright law. While Elprotronic continues to own the Product, You will have certain rights to use the Product after Your acceptance of this license. This license governs any releases, revisions, or enhancements to the Product that Elprotronic may furnish to You.
Your rights and obligations with respect to the use of this Product are as follows:
YOU MAY:
A. use this Product on computers that have a valid license to do so, as sold to You by Elprotronic or its licensors;
YOU MAY NOT:
A. sublicense, reverse engineer, decompile, disassemble, modify, translate, make any at-tempt to discover the Source Code of the Product; or create derivative works from the Product;
B. redistribute, in whole or in part, any part of the software component of this Product;
2. Copyright
All rights, title, and copyrights in and to the Product and any copies of the Product are owned by Elprotronic. The Product is protected by copyright laws and international treaty provisions. Therefore, you must treat the Product like any other copyrighted material.
3. Limitation of liability.
In no event shall Elprotronic be liable to you for any loss of use, interruption of business, or any direct, indirect, special, incidental or consequential damages of any kind (including lost profits) regardless of the form of action whether in contract, tort (including negligence), strict product liability or otherwise, even if Elprotronic has been advised of the possibility of such damages.
4. DISCLAIMER OF WARRANTIES.
You agree that Elprotronic has made no express warranties to You regarding the software, hardware, firmware and related documentation. The software, hardware, firmware and related documentation being provided to You "AS IS" without warranty of any kind. Elprotronic disclaims all warranties with regard to the software and hardware, express or implied, including, without limitation, any implied warranties of fitness for a particular purpose, merchantability, merchantable quality or noninfringement of third-party rights.
- 1 END USER LICENSE AGREEMENT
- 2 Table of Figures
- 3 1. Introduction
- 4 2. Features
- 4.1 2.1 Key Features
- 4.2 2.2 Custom Features
- 4.2.1 2.2.1 DLLs
- 5 3. Getting Started
- 6 4. Main Graphical User Interface
- 6.1 4.1 MPU Device Type
- 6.2 4.2 User Defined Boards with STM32MP15x MPU
- 6.3 4.3 Flash Layout File
- 6.4 4.4 USB ports setup
- 6.5 4.5 Target Device Action Result
- 6.6 4.6 Device Action Box
- 6.6.1 4.6.1 Auto Program
- 6.6.2 4.6.2 Connect
- 6.6.3 4.6.3 Load OS
- 6.6.4 4.6.4 Write
- 6.6.5 4.6.5 Verify
- 6.6.6 4.6.6 Read
- 7 5. Data Viewers
- 8 6. Hardware Setup
- 9 Appendix A
- 9.1 Test results:
Table of Figures
FIGURE 4.1: MAIN DIALOG SCREEN 5
FIGURE 4.2: THE MPU GROUP TYPE CAN BE SELECTED HERE 5
FIGURE 4.3: STARTUP SUBDIRECTORY WITH FILES FOR EACH ST EVALUATION BOARD 6
FIGURE 4.4: STARTUP SUBDIRECTORY WITH FILES FOR STM32MP157A-DK1 BOARD 6
FIGURE 4.5: USER DEFINED BOARD WITH MP15XX MPU NAME SETUP GUI7
FIGURE 4.6: USER DEFINED BOARD NAME IN THE MAIN GUI7
FIGURE 4.7: OPEN TSV FILE 8
FIGURE 4.8: READ FILES SPECIFIED IN THE TSV FILE 9
FIGURE 4.9: VIEW TSV FILE 10
FIGURE 4.10:USB PORT/HUB EMPTY ASSIGNMENT 10
FIGURE 4.11: USB PORT/HUB NUMBER ASSIGNMENT 11
FIGURE 4.12: RESULT ICONS 12
FIGURE 4.13: ACTIONS THAT CAN BE TAKEN USING THE PROGRAMMER 13
FIGURE 4.14: REPORT WINDOWS (STATUS AND ERRORS) WITH REPORT TARGET SELECTOR – TOTAL AND TARGET 1…813
FIGURE 5.1: CODE FILE DATA. THE SELECTED OPTION ON THE BOTTOM IGNORES ALL BYTES THAT HAVE THE VALUE OF 0XFF, WHICH REPRESENTS EMPTY BYTES 16
FIGURE 6.1: C17
FIGURE 6.2: PEXUSB3S44V 4-PORT PCI EXPRESS USB 3.0 CARD 18
1. Introduction
The GangFlasher-ST programmer ("the programmer") is designed to program STM32MP15x series MPU devices from ST Microelectronics. The programmer communicates with MPUs using the dedicated USB OTG communication interface used for DFU communication
The programmer package consists of WindowsTM based software available online at www.elprotronic.com (supported on Windows 10 x64).
The programmer enables communication with the target device at high speed and uses the USB 2.0 interface protocol with communication speed up to 480 Mb/s. A standard auto program procedure includes startup initialization using the DFU interface protocol followed by a switch to USB 2.0 that allows the software to program at maximum available communication speed.
The remainder of this manual will explain how to use all of the programmer's different features.
2. Features
The GangFlasher-ST Programmer is designed to program the STM32MP15x series MPU devices from ST Microelectronics.
2.1 Key Features
The key features of the programmer are:
Supports MP15x devices.
Programming speed via USB OTG with communication speed up to 480 Mb/s. Effective programming speed can vary based on hardware specifications but has been measured to be up to 37 Mbytes/s using fast eMMC memory on the EV1 board.
Check Sum verification. Each eMMC, or SD-card partition is verified independently.
No code size limitations.
Easy to use WindowsTMbased software.
Programmer accepts TSV files from ST for eMMC and SD-card programming and hex formats for OTP data.
Lock setup capability, useful in production.
DLL software package can control programmer from other programs, including CLI
Uses USB-2.0 High-Speed (480 Mb/s) to communicate with the target.
Up to 8 targets can be programmed simultaneously. A dedicated thread is created to handle each target individually.
Independent programming failover and performance. A single or multiple defective or poorly performing boards do not cancel or slow down the programming of other boards.
2.2 Custom Features
The programmer can be controlled from external software as well as custom scripts to specify programming sequences. These features are very useful for automation in a production environment.
2.2.1 DLLs
The programmer can also be controlled through user created applications. For this purpose, a DLL is provided to allow the user to develop custom applications that can control the programming process. The DLL allows to fully control and program simultaneously up to 8 target devices from external software written in C++, Python, or other scripting languages.
3. Getting Started
The installation package contains:
A setup.exe installation package for Windows 10 x64.
The GangFlasher-ST Programmer Setup wizard appears automatically after clicking setup.exe. Click Install GangFlasher-ST Programmer to begin the installation process.
Once the installation program starts, on-screen instructions will guide you through the remainder of the installation. You must accept the license agreement before using this software.
IMPORTANT : Avoid installing GangFlasher-ST software in “C:\Program Files” location, otherwise you will need to run it using Administrator privileges. Default installation location is “C:\Elprotronic”, which is preferable because during normal operation the software regularly creates and modifies temporary files required for booting up target boards.
During the first installation, it is also required to install the USB driver. Select the checkbox to preinstall the driver.
3.1 Starting up GangFlasher-ST Programmer
To start the GangFlasher-ST Programmer click on the GangFlasher-ST icon on the desktop, or in the start menu and click Elprotronic – Flash Programmers -> GangFlasher-ST.
After starting the programmer software:
Connect one target STM32MP1xx to a USB port.
A green icon should light up in index 1.
Optionally, go to File->Save USB Port Configuration as… to save the USB setup and reuse it later for other projects.
4. Main Graphical User Interface
The main dialog (Figure 4.1) contains a pull-down menu, interface selection box, device action buttons, report (status and errors) window, open file buttons, target device information box, etc.
All device action buttons have their own status indicators. Each indicator can assume any of the following conditions:
Icon | Description |
---|---|
idle status. | |
test in progress. For power on/off - DC voltage is correct. | |
access enabled. | |
access denied. For power on/off - DC voltage is too low. | |
device action has finished successfully. | |
device action has finished, but result failed. | |
applies to blank check only. All memory is not blank, but the specified memory segment is blank. |
4.1 MPU Device Type
The target MPU device can be selected from the pull-down fields of the Family, Group, and Name menus shown in Figure 4.2. The pull down group fields contain a list of available ST boards (evaluation boards EVx, Discovery Kits DKx and EDx boards). In addition, STM32MP1x- User boards can be selected, and these represent custom boards that use the STM32MP15x MPU but different board designs.
When a target board is connected to the PC via USB, then a green LED icon will light up on the Connect row indicating that the USB connection between programmer and target device is available (Figure 4.1). For standard board designs from ST, startup files are already provided in the Startup directory (Figure 4.3) and the user can generally proceed to program using a TSV file. Custom boards require the customer to also specify the path to TF-a and U-boot/zImage files so that the software can extract the required bootloader device trees for the custom board (Figure 4.4). These files would be created using the ST OpenSTLinux Developer Package when testing a custom board design.
4.2 User Defined Boards with STM32MP15x MPU
As mentioned in the previous section, the User can select and define their own custom board using the "User Defined Board GUI" available from the main pull down menu Setup->User Definition Board with MP15x MPU" (Figure 4.5). Specify a board name for reference, and the path to a TF-a and U- boot/zImage files generated using ST's OpenSTLinux Developer package for your board. These files are necessary for startup.
The GUI has the capability to store up to 4 custom board configurations in one setup file. Each single set should contain unique board name and link to two files for each board. These sets are saved in the project setup and each setup can have different board names and file paths. From that point of view, the software can support as many custom boards as the customer wants, albeit only 4 per setup file.
The "Board Name" above will be seen in the Board type names in the main GUI. In the example above we can see the board names STM32MP15xx-demo1 in the main GUI after selecting STM32MP1x-User group - see Figure 4.6
4.3 Flash Layout File
The user can program many files into the MP15x MPU board memories. Typically, these files are bootloaders and filesystems that provide a standalone boot capability to the board. ST's Starter Package and Distribution Package provide many of these files ready to be programmed and tested on evaluation boards. All these files and their respective partitions are specified in one Flash Layout File *.tsv. That file should be selected using the button Open Flash Layout File in the main GUI (see top left part on GUI – Figure 4.1). Select your TSV file (Figure 4.7), and keep in mind that file paths specified in the TSV file are relative to the location of the TSV file. When the file is open then all files specified in the TSV file are read and the names of these files are displayed in the report window (Figure 4.8)
Contents of the TSV file can also be inspected using the option View->TSV file from the pull down menu in main GUI (Figure 4.9)
If the TSV file is read without errors, and the Hardware Setup has been completed (USB Port and Location assigned) then programming can begin. Make sure that the green LED is ON in the Connect column on the left and the desired target is enabled.
4.4 USB ports setup
When one target is used then any USB port can be used for programming the target device board. But if more than one target is used then USB ports should be assigned, one USB port per target device. In a production environment, preferably always the same port for the same target device 1 to 8.
A fixed assignment will enable the user to use the same USB cables for each target, and to label the cables for reference. Expanding on the Hardware Setup description in Section 3.1, Figure 4.10 shows the USB port assignment GUI that can be selected in the main GUI in Setup->USB Location.
USB ports/hub assignments for 8 targets are displayed. Follow the steps to complete the setup:
Connect one target STM32MP1xx to a USB port.
A green icon should light up in index 1.
To connect more than one board, open Setup->USB Location
Press Add one USB to lock the Port/Hub location for the current target.
Connect another target. A Port/Hub location should appear for "Target n ".
Click Add one USB.
Repeat steps 5 and 6 until up to 8 targets are locked into Port/Hub locations.
Click Apply, and then Exit.
Optionally, go to File->Save USB Port Configuration as… to save the USB setup and reuse it later for other projects.
If you change some USB connections later, you can refresh the setup. Figure 4.11 shows that Target 2 used to be locked to Port 1, Hub 3, but now from the message below it shows Target 2 is available on Port 2, Hub 6. You would press Add one USB again here to overwrite the previous config for Target 2.
The USB configuration setup can be saved using the pull-down menu from the main GUI – File-> Save USB Port Configuration and loaded using File-> Load USB Port Configuration.
Figure 4.11 shows the result for 8 boards assigned to fixed USB Port/Hub locations.
4.5 Target Device Action Result
After a programming action is performed, progress bars, comments and result icons will be displayed in the Target Device Programming Results LEDs group (Figure 4.12).
4.6 Device Action Box
The Device Action box contains buttons that can execute mostly self-contained actions (see Figure 4.13). Each button allows a specific action to be executed such as programing or verification. Software procedures related to each action allow you to fully execute the desired task, without the need to follow a specific sequence of actions. Every action starts by communicating with enabled target devices. The one caveat is that once the Load OS button succeeded, then the mini kernel and fast bootloader are already loaded, and other action buttons will skip that step (unless the board is reset and the DFU driver appears again).
Progress of actions is displayed in the report window. If the particular action has been finished successfully, then message "done" or "OK" will appear on the right side of processed procedure.
Otherwise, a "failed" message will be displayed and selected action will terminate the sequence of any follow-up actions. Final status is also displayed in the Status window as Active (blue), Pass (green), or Fail (red). On the side of each target result icons is displayed the progress bar for each active target and in the report window are displayed messages during the programming execution. Because up to 8 targets can be programmed then up to 8 reports are collected in the programmer and desired report from target 1 to 8 or total report can be displayed (Figure 4.14).
4.6.1 Auto Program
The AUTO PROG. button will perform all the steps required to connect and program the board using the following procedures:
Internally reload TSV file,
connect to target via DFU,
upload mini kernel and fast bootloader, then reboot target with new USB driver
upload TSV file configuration to target and partition external memory,
program each partition using corresponding source file specified in input TSV,
verify each partition file individually,
program OTP data if enabled.
The report window shows messages during the procedure (Figure 4.14).
In addition, the Global Status window provides a counter that is useful in a production process.
The total number of programmed devices can be entered in the Total Qty edit line. The Balance line shows the number of devices that have not yet been programmed. The Balance counter is initialized to the value entered in the Total edit line and is decremented every time AUTO PROG. is completed successfully.
4.6.2 Connect
The Connect button will test the board for connectivity, either a DFU driver will appear, or if the bootloader is already present, the message will indicate the loader is up and running.
4.6.3 Load OS
The Load OS button will upload a mini kernel and fast bootloader over DFU if the board is in the reset state. This involves uploading the TF-a and zImage files, rebooting the board, and connecting to a new USB driver.
4.6.4 Write
The Write button writes contents from the files specified in the TSV file to memory inside the target board (SD Flash, eMMC or other as specified in the TSV file). This involves repartitioning the memory first, and afterwards writing the files.
4.6.5 Verify
The Verify function reads and calculates the check sum of programmed memory partitions specified in the TSV file. This is done on the host computer, and separately on the MP1 target device inside the fast bootloader. Because the size of each uploaded file can be very large (in the Giga bytes), the calculated check sum (CS) is split into smaller chunks. Each file is divided into blocks and a CS is calculated for each block. The CSs generated on the target are compared against CSs generated on the host and verified. Spreading out the verification into multiple blocks is advantageous for many reasons, but mostly because it decreases the probability of CS collisions and improves overall performance in the case of a bad sector that causes a checksum mismatch, in which case the verify process is preemptively stopped from proceeding further.
The CS of each block is calculated as the PSA of the block with 32-b PSA results. The following formula is used for calculating the PSA.
#define PSA_POLY 0x04C11DB7
#define INIT_PSA 0xAA99AA99
UINT32 Calculate_PSA(UINT32 PSA_in, long size, UINT32 *data)
{
long k;
UINT32 PSA = PSA_in;
if (size > 0)
{
for (k = 0; k < size; k++)
{
if (PSA & 0x80000000)
PSA = (((PSA ^ PSA_POLY) << 1) | 1) ^ (*data++);
else
PSA = (PSA << 1) ^ (*data++);
}
}
return(PSA);
}
4.6.6 Read
The Read function reads partitions from target boards and saves them in the same directory where the original files used for programming are located. The downloaded contents are named as the original file with added prefix "Rdx-" where x is the target board number 1 to 8. If all 8 targets are read then in the directory where the original file is located there will be extra 8 files with prefix Rx1-, Rx2-, … Rx8- etc.
That files are saved using the original extensions. Read can be useful for direct byte-by-byte comparisons using hexcmp, or windiff, etc. or for file retrieval. For purely verification purposes, the Verify command is faster.
5. Data Viewers
Data viewers allow the user to view code file data like OTP bytes in the host application. In the pull- down menu you can select a viewer for OTP file data, OTP Memory data and an option for comparing the OTP from file and memory. Contents of a selected OTP file can be viewed by selecting the View→OTP File Data option. The OTP data viewer, shown in Figure 5.1, displays the OTP address on the left side, data in hex format in the central column, and the same data in ASCII format in the right column. Data in hex format is displayed from 0x00000000 to 0xFFFFFFFF (if 4 bytes default Display Option is used) for addresses corresponding to the code file. Data from other addresses is displayed as dots "". If code size exceeds flash memory size in the selected microcontroller, a warning message
will be displayed first. The contents of the code viewer can be converted to *.txt or *.hex file format by clicking on the buttons on the bottom of the GUI.
Contents of OTP Memory Data on the target can be viewed by selecting the View→OTP Memory Data option. To be able to see target memory contents, the Read OTP button must be used first. The OTP Memory Data viewer displays memory addresses, data in hex and ASCII format in the same way as the code data viewer shown in Figure 5.1.
Contents of the OTP file and OTP memory can be compared, and differences can be displayed in the viewer by selecting the View→Compare OTP File and OTP Data option. Only data that are not the same in the code file and flash memory will be displayed. The first line displays code file data, and the second line displays flash memory data. If all the aforementioned data are identical, then a No difference found message will be displayed on the screen.
6. Hardware Setup
The maximum programming speed for the MP15x MPU with the EV1 evaluation board and fast eMMC memory has been tested to be as high as 37 MB/s. Reading data in that configuration can be even faster at approximately 40-44 MB/s. This programming and reading speed approaches the maximum transfer bandwidth for USB 2.0 Hi-Speed communication that is effectively 48 MB/s. Although the maximum data transfer rate for USB 2.0 Hi-Speed by spec is 480 Mbits/s, or 60 MB/s, this includes all service bytes used in the USB protocol, whereas in practice the useful transfer speed is 48 MB/s if all overhead bytes are considered.
To achieve maximum performance on 8 boards that the GangFlasher-ST can program, the PC hardware setup has to be given deeper consideration. Default USB connections available on a laptop or coming from a desktop motherboard are usually USB hubs that will share effective bandwidth. Furthermore, even if a USB 3.0 hub is available, the MP1x family supports only USB 2.0 Hi-Speed communication at best. This means that in most cases a USB 3.0 hub will switch down to USB 2.0 mode and the maximum throughput for a hub will generally be 48 MB/s as stated above in total, even if 4 or 8 connections are available for example. However, some dedicated PCI-USB extension cards are designed well enough to provide independent USB 2.0 Hi-Speed, 48 MB/s performance, on each port. Below we list two examples of tested PCI-USB extension cards that fit this criteria.
Sonnet – PN: USB3-4PM-E. This card uses a PCIe-1 slot. The total bandwidth used by this card can be up to 5Gb/s allowing all USB 2.0 ports max Hi-Speed mode performance at up to 480 Mb/s for each port.
Startech PN: PEXUSB3S44V. This card uses the PCIe-4 slot. Other cards that have good tested performance are those with 4 USB controllers – one controller per one USB port. This card from Startech is a SuperSpeed USB 3.0 Card Adapter w/ 4 Dedicated 5Gbps Channels - UASP - SATA / LP4 Power.
Aside from the aforementioned USB per target performance, the host PC computer should have decent performance to be able to handle all targets simultaneously. The GangFlasher uses up to 8 separate threads, one for each target, to read and program data and for some additional tasks. Below is the specification of the PC used during the test.
PC Windows 10 Pro, OS build 18363.1256
Intel @ Core TM i7-4770K CPU @ 3.50 GHz
32.0 GB RAM
64-b OS, x64 CPU.
and two USB cards USB3-4PM-E.
Appendix A
Test results:
Below are provided test results for some setup combination. First are tested units separately then at the end was connect 8 targets STM32MP157A-DK1 boards to PC with configuration as below:
Test results of the single board connected to PC
EV1 | EV1 | EV1 | EV1 | DK1 | DK1 | DK1 | |
Startup | 11.8 s | 11.8 s | 11.8 s | 11.8 s | 16.8s | 16.8s | 16.8s |
Write | 25.25 MB/s | 37.45 MB/s | 11.25 MB/s | 13.22 MB/s | 16.9 MB/s | 14.53 MB/s | 6.51 MB/s |
Verify | 44.89 MB/s | 79.59 MB/s | 44.73 MB/s | 77.12 MB/s | 23.20 MB/s | 23.27 MB/s | 23.18 MB/s |
Read | 41.79 MB/s | 42.83 MB/s | 42.07 MB/s | 42.07 MB/s | 23.07 MB/s | 23.17 MB/s | 23.04 MB/s |
Test results of all 8 DK1 boards connected to PC and running simultaneously
DK1 - 1 | DK1 - 2 | DK1 - 3 | DK1 - 4 | DK1 - 5 | DK1 - 6 | DK1 - 7 | DK1 - 8 | |
Autoprogram | 101.9 s | 101.9 s | 174.5 s | 172.2 s | 110.6s | 109.9s | 110.1s | 110.3s |
Write | 16.90 MB/s | 16.83 MB/s | 6.57 MB/s | 6.39 MB/s | 14.07 MB/s | 14.22 MB/s | 14.22 MB/s | 14.18 MB/s |
Verify | 23.21 MB/s | 23.21 MB/s | 23.20 MB/s | 23.19 MB/s | 23.27 MB/s | 23.27 MB/s | 23.27 MB/s | 23.28 MB/s |
Read | 22.90 MB/s | 22.97 MB/s | 23.01 MB/s | 22.97 MB/s | 19.73 MB/s | 19.62 MB/s | 23.05 MB/s | 23.06 MB/s |
where:
EV1 ->STM32MP157A-EV1 board
DK1 ->STM32MP157A-DK1 board
SD-Fast ->ScanDisk, 64 GB, A2 V30, ExtremePro microSDXC UHS-I(Wr/Rd 90/170 MB/s)
SD-Mid ->Gigastone, 64 GB, A2 V30, Micro S2XC PN: GS-2IN1633X64GBX2-B (Wr/Rd 30/90
MB/s)
SD-Slow >ScanDisk, EDGE 16 GB, Micro SDHC I84710RADV00S (Wr/Rd 10/90 MB/s) eMMC Fast>8GB THGBMJG6C1LBAIL(WR/RD 35/90 MB/s)
eMMC Slowt-> 4GB THGBMNG5D1LBAIL(WR/RD 14/88 MB/s)