AM64x MCU+ SDK  09.01.00
Coremark Benchmark

Coremark is an industry standard benchmark used for testing processor's core features.

Read more about Coremark here: https://www.eembc.org/coremark/

Supported Combinations

Parameter Value
CPU + OS r5fss0-0 nortos
Toolchain ti-arm-clang
Boards am64x-evm
Example folder examples/benchmarks/coremark_benchmark

Introduction

  • This demo provides a means of measuring the performance of MCUs (Microcontrollers) and CPUs (Central Processing Units) used in embedded systems
  • The demo uses linked lists pointers to exercise the memory units of the processor to find and alter data. All operations are inplace operations without using extra memory.
  • The example does the following:
    1. Initializes the drivers and board
    2. Initializes the data block and runs the benchmark algorithm. Here, 2000 performance run parameters are used for coremark benchmarking. The input seeds are initialized from a source that cannot be determined at compile time, memory blocks are initialized and then the application is run and timed.
    3. The output validity is tests if the seeds are known, and the output is a single-number score which shows the performance for quick comparison.
Note
The out of box demo contains the .code in STACK and .data in TCMA memory section. The memory placement of these sections can be changed from the syscfg memory configuration section.

Performance statistics

Device Coremark/MHz
AM64x-EVM 7.539166

Steps to Run the Example

Building Coremark application

  • When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
  • When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)

Running the Coremark application

Once you have the application binary built following the aforementioned steps, Load and run the application using CCS. (see CCS Launch, Load and Run).

If you want to flash the application binary to the device, follow the steps mentioned here (see Flash a Hello World example).

Sample output for Coremark example

BENCHMARK START - ARM R5F - COREMARK
2K performance run parameters for coremark.
- CoreMark Size : 666
- begin tick : 960
- end tick : 4974985
- Total ticks : 4974025
- Total time (secs): 4.974025
- Iterations/Sec : 3015.666387
- Iterations : 15000
- Memory location : STACK
- seedcrc : 0xe9f5
- [0]crclist : 0xe714
- [0]crcmatrix : 0x1fd7
- [0]crcstate : 0x8e3a
- [0]crcfinal : 0x65c5
CoreMark 1.0 : 3015.666387
CoreMark/MHz :7.539166 / STACK
BENCHMARK END