luat_lib_coremark.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. @module coremark
  3. @summary 跑分
  4. @version 1.0
  5. @date 2022.01.11
  6. @tag LUAT_USE_COREMARK
  7. */
  8. #include "luat_base.h"
  9. #include "printf.h"
  10. #define LUAT_LOG_TAG "coremark"
  11. #include "luat_log.h"
  12. void ee_main(void);
  13. int ee_printf(const char *fmt, ...) {
  14. va_list va;
  15. va_start(va, fmt);
  16. char buff[512];
  17. vsnprintf_(buff, 512, fmt, va);
  18. va_end(va);
  19. LLOGD("%s", buff);
  20. return 0;
  21. }
  22. /*
  23. 开始跑分
  24. @api coremark.run()
  25. @return nil 无返回值,结果直接打印在日志中
  26. @usage
  27. -- 大部分情况下, 这个库都不会包含在正式版固件里
  28. -- 跑分的main.lua 应移除硬狗代码, 防止重启
  29. -- 若设备支持自动休眠, 应关闭休眠功能
  30. -- 若设备支持更多的频率运行, 建议设置到最高频率
  31. -- 使用 -O3 比 -O2 -Os 的分数更高, 通常情况下
  32. -- 会一直独占线程到执行完毕, 然后在控制台输出结果
  33. coremark.run()
  34. -- 跑分图一乐^_^
  35. */
  36. static int l_coremark_run(lua_State *L) {
  37. ee_main();
  38. return 0;
  39. }
  40. #include "rotable2.h"
  41. static const rotable_Reg_t reg_coremark[] =
  42. {
  43. { "run" , ROREG_FUNC(l_coremark_run)},
  44. { NULL, ROREG_INT(0)}
  45. };
  46. LUAMOD_API int luaopen_coremark( lua_State *L ) {
  47. luat_newlib2(L, reg_coremark);
  48. return 1;
  49. }