You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
4.7 KiB

2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include "configs/device_id_mgr.hpp"
  4. #include "public_service/public_service.hpp"
  5. #include "sdk/chip/chip.hpp"
  6. #include "sdk/os/zos.hpp"
  7. #include "sysmgr/sys_mgr.hpp"
  8. //
  9. #include "subboards/subboard200_ext_tmc5160/subboard200_ext_tmc5160.hpp"
  10. #include "subboards/subboard200_ext_tmc5160/subboard200_ext_tmc5160_board.h"
  11. #include "subboards/subboard20_plate_clamp_case/subboard20_plate_clamp_case.hpp"
  12. #include "subboards/subboard20_plate_clamp_case/subboard20_plate_clamp_case_board.h"
  13. #include "subboards/subboard30_shake_module/subboard30_shake_module.hpp"
  14. #include "subboards/subboard30_shake_module/subboard30_shake_module_board.h"
  15. #include "subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl.hpp"
  16. #include "subboards/subboard40_and_50_temperature_ctrl/subboard40_and_50_temperature_ctrl_board.h"
  17. #include "subboards/subboard60_inlet_and_outlet_module/subboard60_inlet_and_outlet_module.hpp"
  18. #include "subboards/subboard60_inlet_and_outlet_module/subboard60_inlet_and_outlet_module_board.h"
  19. #include "subboards/subboard70_incubation_turntable/subboard70_incubation_turntable.hpp"
  20. #include "subboards/subboard70_incubation_turntable/subboard70_incubation_turntable_board.h"
  21. #include "subboards/subboard80_cliptip/subboard80_cliptip.hpp"
  22. #include "subboards/subboard80_cliptip/subboard80_cliptip_board.h"
  23. #include "subboards/subboard90_optical_module/subboard90_optical_module.hpp"
  24. #include "subboards/subboard90_optical_module/subboard90_optical_module_board.h"
  25. //
  26. #define TAG "main"
  27. using namespace std;
  28. using namespace iflytop;
  29. extern void umain();
  30. extern "C" {
  31. void StartDefaultTask(void const* argument) { umain(); }
  32. }
  33. int32_t deviceId = 0;
  34. static void board_init() {
  35. switch (deviceId) {
  36. case 20: // 板夹仓
  37. subboard20_plate_clamp_case_board_init();
  38. break;
  39. case 30: // 摇匀模组
  40. subboard30_shake_module_board_init();
  41. break;
  42. case 40: // 温度控制板40
  43. case 50: // 温度控制板50
  44. subboard40_and_50_temperature_ctrl_board_init();
  45. break;
  46. case 60: // 进出料模组
  47. subboard60_inlet_and_outlet_module_board_init();
  48. break;
  49. case 70: // 孵化转盘
  50. subboard70_incubation_turntable_board_init();
  51. break;
  52. case 80:
  53. subboard80_cliptip_board_init();
  54. break;
  55. case 90:
  56. subboard90_optical_module_board_init();
  57. break;
  58. case 200:
  59. subboard200_ext_tmc5160_board_init();
  60. break;
  61. default:
  62. common_hardware_init();
  63. break;
  64. }
  65. }
  66. static void board_post_init() {
  67. GService::inst()->initialize();
  68. switch (deviceId) {
  69. case 20:
  70. Subboard20PlateClampCase::ins()->initialize();
  71. break;
  72. case 30: // 摇匀模组
  73. Subboard30ShakeModule::ins()->initialize();
  74. break;
  75. case 40: // 温度控制板40
  76. case 50: // 温度控制板50
  77. Subboard40And50TemperatureCtrl::ins()->initialize();
  78. break;
  79. case 60: // 进出料模组
  80. Subboard60InjectAndOutletModule::ins()->initialize();
  81. break;
  82. case 70: // 孵化转盘
  83. Subboard70IncubationTurntable::ins()->initialize();
  84. break;
  85. case 80:
  86. Subboard80Cliptip::ins()->initialize();
  87. break;
  88. case 200:
  89. Subboard200ExtTmc5160::ins()->initialize();
  90. break;
  91. // case 90:
  92. // Subboard90OpticalModule::ins()->initialize();
  93. // break;
  94. default:
  95. break;
  96. }
  97. }
  98. void umain() {
  99. deviceId = zdevice_id_mgr_get_device_id();
  100. board_init();
  101. Pin_t debugLight = PC_DEBUG_LIGHT_GPIO;
  102. if (deviceId == 20) {
  103. debugLight = PC_SUBBOARD_20_70_LIGHT_GPIO;
  104. }
  105. zos_cfg_t zoscfg = {0};
  106. chip_cfg_t chipcfg = {};
  107. chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
  108. chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
  109. chipcfg.huart = &PC_DEBUG_UART;
  110. chipcfg.debuglight = debugLight;
  111. chip_init(&chipcfg);
  112. zos_init(&zoscfg);
  113. zdevice_id_mgr_init();
  114. ZEARLY_LOGI("SYS", "chip init ok");
  115. ZEARLY_LOGI("SYS", "= manufacturer : %s", PC_MANUFACTURER);
  116. ZEARLY_LOGI("SYS", "= project name : %s", PC_PROJECT_NAME);
  117. ZEARLY_LOGI("SYS", "= version : %d", PC_VERSION);
  118. ZEARLY_LOGI("SYS", "= freq : %d", HAL_RCC_GetSysClockFreq());
  119. ZEARLY_LOGI("SYS", "= build time : %s", __DATE__ " " __TIME__);
  120. ZEARLY_LOGI("SYS", "= device id : %d", deviceId);
  121. if (deviceId <= 0) {
  122. chip_set_error();
  123. ZEARLY_LOGE("SYS", "device id is not set");
  124. while (true) {
  125. zos_delay(1);
  126. }
  127. }
  128. board_post_init();
  129. ZLOGI(TAG, "======================= sysinfo ======================= ");
  130. SysMgr::ins()->initedFinished();
  131. SysMgr::ins()->dumpSysInfo();
  132. ZLOGI(TAG, "=");
  133. while (true) {
  134. GService::inst()->getZCanReceiver()->loop();
  135. zos_delay(1);
  136. }
  137. }