eembc/coremark
FreeCoreMark® is an industry-standard benchmark that measures the performance of central processing units (CPU) and embedded microcrontrollers (MCU).
FreeFree tier
About eembc/coremark
CoreMark is an industry-standard benchmark designed to measure the performance of central processing units (CPU) and embedded microcontrollers (MCU). It focuses on simplicity and testing only the processor's core features. The benchmark can be run on various platforms including Linux, macOS, FreeBSD, RTEMS, Zephyr, and bare-metal systems. Users can build and run the benchmark with a simple 'make' command, and results are reported in run1.log. CoreMark also supports cross-compilation and porting to new platforms. For more compute-intensive workloads, EEMBC offers CoreMark-PRO.
Key Features
Industry-standard benchmark for CPU and MCU performance
Simplicity and focus on core processor features only
Supports multiple operating systems: Linux, macOS, FreeBSD, RTEMS, Zephyr, and bare-metal
Easy building and running with a single 'make' command
Cross-compilation support for various platforms
Portable to embedded systems without an operating system
Three run modes: performance, validation, and profile generation
Adjustable iterations (default 10–100 seconds, minimum 10 seconds for valid results)
MD5 checksum verification for source integrity
Pros & Cons
Pros
- Free and open source under a permissive license
- Widely recognized industry standard in embedded space
- Simple to build and run with minimal dependencies
- Cross-platform and portable to bare-metal systems
- Provides reproducible results with built-in validation
Cons
- Only tests core processor features (no memory, I/O, or system-level metrics)
- Requires manual porting for new or uncommon platforms
- Minimum run time of 10 seconds required for valid results
- No graphical or interactive output; results are text-based logs
Best For
Benchmarking CPU performance for embedded systemsComparing performance of different microcontrollers and processorsPerformance validation in embedded software developmentAcademic research on processor architectures and optimizations
FAQ
What is CoreMark?
CoreMark is an industry-standard benchmark that measures the performance of central processing units (CPU) and embedded microcontrollers (MCU). It focuses on simplicity and testing only the processor's core features.
How do I build and run CoreMark on Linux?
In a typical Linux system, type 'make' to build and run the benchmark. Full results are available in run1.log and run2.log. The CoreMark result can be found in run1.log.
How do I port CoreMark to a new platform?
Copy one of the default port folders (e.g., 'mkdir platform; cp linux/* platform'), adjust the porting files (core_portme.mak, core_portme.h, core_portme.c) according to the specific platform, and run 'make PORT_DIR=platform'.
Is CoreMark free to use?
Yes, CoreMark is free and open source. The source code is available on GitHub under the EEMBC repository.