AM261x MCU+ SDK: Coremark Benchmark

| AM261x MCU+ SDK 26.00.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 | am261x-som, am261x-lp
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
--- | ---
AM261x-SOM | 3.664148
AM261x-LP | 4.581006

# 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 : 57
End tick : 8186031
Total ticks : 8185974
Total time (secs): 8.185974
Iterations/Sec : 1832.402595
Iterations : 15000
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x65c5
CoreMark 1.0 : 1832.402595
CoreMark/MHz :4.581006 / STACK
BENCHMARK END