Understand the CoreMark benchmark algorithms
mainCoreMark evaluates processor performance using three primary algorithmic workloads designed to exercise different aspects of embedded processing:
Linked List: Exercises memory access and pointer manipulation. It uses a custom
list_dataandlist_headstructure. The workload involves multiplefindoperations, sorting the list using merge sort (first bydata16, then byidx), and calculating CRCs. The memory layout is intentionally non-sequential to emulate real-world fragmentation.Matrix Multiply: Focuses on tight inner loops and arithmetic optimization. It performs matrix multiplications (A by constant, A by column of B, and A by B) into a result matrix C. This tests the processor's ability to handle data-intensive mathematical operations.
State Machine: Exercises branching logic (
switchandifstatements). It uses a Moore state machine to parse comma-separated strings into various number formats (int, float, scientific). The workload includes parsing, injecting errors into the input, and recovering to the original state.