luat_mcu_air101.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "luat_base.h"
  2. #include "luat_mcu.h"
  3. #include "wm_include.h"
  4. #include "wm_cpu.h"
  5. #include "FreeRTOS.h"
  6. #include "task.h"
  7. /*
  8. enum CPU_CLK{
  9. CPU_CLK_240M = 2,
  10. CPU_CLK_160M = 3,
  11. CPU_CLK_80M = 6,
  12. CPU_CLK_40M = 12,
  13. CPU_CLK_2M = 240,
  14. };
  15. */
  16. int luat_mcu_set_clk(size_t mhz) {
  17. switch(mhz) {
  18. case 240:
  19. tls_sys_clk_set(CPU_CLK_240M);
  20. break;
  21. case 160:
  22. tls_sys_clk_set(CPU_CLK_160M);
  23. break;
  24. case 80:
  25. tls_sys_clk_set(CPU_CLK_80M);
  26. break;
  27. case 40:
  28. tls_sys_clk_set(CPU_CLK_40M);
  29. break;
  30. case 2:
  31. tls_sys_clk_set(CPU_CLK_2M);
  32. break;
  33. default :
  34. return -1;
  35. }
  36. return 0;
  37. }
  38. int luat_mcu_get_clk(void) {
  39. tls_sys_clk sysclk;
  40. tls_sys_clk_get(&sysclk);
  41. return sysclk.cpuclk;
  42. }
  43. static u8 unique_id[18] = {0};
  44. static u8 unique_id_got = 0;
  45. const char* luat_mcu_unique_id(size_t* t) {
  46. if (!unique_id_got && tls_fls_read_unique_id(unique_id) == 0)
  47. unique_id_got = 1;
  48. *t = unique_id_got ? unique_id[1]+2 : 0;
  49. return unique_id;
  50. }
  51. long luat_mcu_ticks(void) {
  52. return xTaskGetTickCount();
  53. }
  54. uint32_t luat_mcu_hz(void) {
  55. return configTICK_RATE_HZ;
  56. }