luat_lib_coremark.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. -- 若需使用,可以参考wiki文档自行编译或使用云编译
  29. -- https://wiki.luatos.com/develop/compile.html
  30. -- 跑分的main.lua 应移除硬狗代码, 防止重启
  31. -- 若设备支持自动休眠, 应关闭休眠功能
  32. -- 若设备支持更多的频率运行, 建议设置到最高频率
  33. -- 使用 -O3 比 -O2 -Os 的分数更高, 通常情况下
  34. -- 会一直独占线程到执行完毕, 然后在控制台输出结果
  35. coremark.run()
  36. -- 跑分图一乐^_^
  37. */
  38. static int l_coremark_run(lua_State *L) {
  39. ee_main();
  40. return 0;
  41. }
  42. #include "rotable2.h"
  43. static const rotable_Reg_t reg_coremark[] =
  44. {
  45. { "run" , ROREG_FUNC(l_coremark_run)},
  46. { NULL, ROREG_INT(0)}
  47. };
  48. LUAMOD_API int luaopen_coremark( lua_State *L ) {
  49. luat_newlib2(L, reg_coremark);
  50. return 1;
  51. }