CoreMark on Stellaris LM3S8962 fails to verify its data set

Discussion in 'Embedded Systems and Microcontrollers' started by skvrnity, Apr 19, 2012.

  1. skvrnity

    Thread Starter New Member

    Apr 19, 2012
    Development environment:

    • Goal: Implement the CoreMark benchmark.
    • MCU: Stellaris LM3S8962
    • Board: EKK-LM3S8962 evaluation kit.
    • Software: Keil µVision 4.03 running the RealView MDK-ARM 4.10 toolchain with ARMCC, ARMASM, ARMLink, ARMAR and FromElf all on version Evaluation.
    • Firmware libraries: Stellaris Peripheral Driver Library and the EK-LM3S8962 Firmware Development Package.
    • System components in use: UART (through uartstdio), general purpose timer.
    • Crystal frequency: 8 MHz

    Changes done to the modifiable files:

    • HAS_FLOAT to 1 for prettier result visualization
    • HAS_TIME_H and USE_CLOCK to 0 because I am using the timer to track execution time
    • HAS_STDIO and HAS_PRINTF to 0 in order to use a bundled printf() that only requires a method that outputs a character to the UART
    • SEED_METHOD SEED_VOLATILE in order to use hard-coded seed values.
    • MEM_METHOD MEM_STATIC to avoid using the execution stack and because there is no OS that provides a malloc() function.
    • PROFILE_RUN 1 in order to start off with a test run.

    Problem: CoreMark fails to correctly verify its test data. Running it on Keil's MCU simulator as well as physically on the board yields the same result: a message that says "Cannot validate operation for these seed values, please compare with results on a known platform.".

    Constraints: Except for two platform-specific files, modifying the CoreMark program files themselves is verboten.

    Any help or pointer to a solution would be greatly welcome.