benchmark_driver.c 626 B

12345678910111213141516171819202122232425262728293031
  1. #include "cmsis_os.h"
  2. #include "ImC/imc_kernel.h"
  3. #include "ImC/imc_extension.h"
  4. #include <stdio.h>
  5. void vBenchmarkDriver(void *_benchmark)
  6. {
  7. void (*benchmark)(void) = _benchmark;
  8. #if (imcBENCH_INFINITE_LOOP)
  9. while(1) {
  10. #endif
  11. portDISABLE_INTERRUPTS();
  12. printf("Start benchmark\r\n");
  13. portENABLE_INTERRUPTS();
  14. benchmark();
  15. portDISABLE_INTERRUPTS();
  16. printf("End benchmark\r\n");
  17. portENABLE_INTERRUPTS();
  18. imcREQUEST_CHECKPOINT();
  19. #if (imcBENCH_INFINITE_LOOP)
  20. osDelay(10);
  21. }
  22. #endif
  23. #if (imcUSE_IMC_KERNEL == 1)
  24. vImcInvalidateRecovery();
  25. #endif
  26. }