2025-12-27 19:20:23 +08:00
|
|
|
#include "main.h"
|
2025-12-25 12:07:06 +08:00
|
|
|
#include "Can.h"
|
2025-12-27 19:20:23 +08:00
|
|
|
#include "initial.h"
|
2025-12-25 12:07:06 +08:00
|
|
|
#include "sys/systick.h"
|
2025-12-27 19:20:23 +08:00
|
|
|
#include <cstdio>
|
|
|
|
|
extern CAN_transmiter CAN0_transmiter; // CAN初始化
|
2025-12-25 12:07:06 +08:00
|
|
|
|
2025-12-27 19:20:23 +08:00
|
|
|
BootloaderSystem sys;
|
|
|
|
|
extern OTAHandler ota;
|
|
|
|
|
void BootloaderSystem::initHardware() {
|
|
|
|
|
systick_config(); // 系统时钟初始化
|
|
|
|
|
SystemCoreClockUpdate(); // 更新系统时钟变量
|
|
|
|
|
USART0_init(); // 调试串口初始化
|
|
|
|
|
CAN0_transmiter.init();
|
|
|
|
|
}
|
|
|
|
|
void BootloaderSystem::run() {
|
|
|
|
|
// 检查是否触发OTA模式
|
|
|
|
|
if (1) {
|
|
|
|
|
// OTA模式
|
|
|
|
|
while (1) {
|
|
|
|
|
CAN0_transmiter.communication_check();
|
|
|
|
|
ota.process();
|
2025-12-25 12:07:06 +08:00
|
|
|
}
|
2025-12-27 19:20:23 +08:00
|
|
|
} else {
|
|
|
|
|
// 正常模式:跳转到APP
|
|
|
|
|
ota.jumpToApplication();
|
2025-12-25 12:07:06 +08:00
|
|
|
}
|
2025-12-27 19:20:23 +08:00
|
|
|
}
|
2025-12-25 12:07:06 +08:00
|
|
|
int main(void) {
|
|
|
|
|
sys.initHardware();
|
|
|
|
|
sys.run();
|
|
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
|
; // 不应该执行到这里
|
|
|
|
|
}
|