I have followed the ARM Application Note 273 (Dhrystone Benchmarking for ARM Cortex Processors), in order to benchmark the TMS570LC43x.
infocenter.arm.com/.../DAI0273A_dhrystone_benchmarking.pdf
According to the datasheet, the Cortex-R5 should be capable of 1.66 DMIPS/MHz (=498 DMIPS @300MHz).
However, my best score was 270 DMIPS @300MHz using the HalCoGen "out-of-the-box" configuration (code from flash).
I have used the latest IAR compiler, and tested various compiler optimization settings.
A) Setup
- Project created with TI HalCoGen 04.05.00 Released 15.July.2015
- IAR Embedded Workbench for ARM 7.40.3.8938
- Hercules TMS570LC43x LaunchPad Development Kit
B) Measurement configuration
- 1'000'000 dhrystone runs
- RTI compare interrupt @1ms
- General Options -> Library Options -> Buffered terminal output
- IAR Setup as recommended by the HalCoGen PDF (ARM processor mode)
C) Results
Compiler Optimization Configuration | DMIPS |
None | 269 |
Low |
277 |
Medium | 167 |
High Balanced | 232 |
High Size | 189 |
High Speed | 235 |
High Speed no size constraint | 236 |
DMIPS = Dhrystones per second / 1757
D) Questions
- Are there any options I did forget in HalCoGen to configure in order to get the maximum performance of the TMS570LC43x?
- What's the maximum DMIPS I can expect when running the code from flash, is it possible to get 498 DMIPS from flash?
- Why is the Semihosted printf / scanf so slow (it takes up to 5s to print a single character)?
- Before you blame the IAR compiler, can you run the Dhrystone v2.1 benchmark with Code Composer and publish your results?
E) Attachments
I have attached the following files:
- HalCoGen Project (Dhrystone.hcg)
- Complete IAR Workspace and projects including generated HAL files