Files
CCU621M/app/main.c
T

59 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "gd32h7xx.h"
#include "sys_drv_init.h"
#include "FreeRTOS.h"
#include "task.h"
#include "app_init/app_init.h"
/** IAP 占用 0x08000000..0x08007FFF32KB),APP 链接 @ 0x08008000(见 GD32H759_APP.sct */
#define APP_VECTOR_TABLE_OFFSET 0x8000U
int main(void)
{
/* SystemInit 默认 VTOR=0x08000000;在此重定位到 APP 向量表,不修改 CMSIS 库文件 */
nvic_vector_table_set(NVIC_VECTTAB_FLASH, APP_VECTOR_TABLE_OFFSET);
//初始化
v_sys_hardware_init();
// 初始化应用任务并启动调度器
app_os_init();
vTaskStartScheduler();
// 理论上不会执行到这里;若调度器异常返回,则进入运行灯闪烁兜底
while(1)
{
RUN_LED_TOGGLE();
delay_ms(1000U);
}
}
/* FreeRTOS 空闲任务钩子函数:当系统无就绪任务时会反复进入此回调。
* 当前用于输出“系统空闲心跳”(慢闪运行灯),便于观察系统仍在正常调度。 */
void vApplicationIdleHook(void)
{
/* Run LED heartbeat moved to timer ISR (v_app_tim_tick_1ms). */
}
/* FreeRTOS 栈溢出钩子:检测到任务栈溢出时回调。
* 处理策略:关闭中断并进入故障灯循环,故障码为 5。 */
void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName)
{
(void)xTask;
(void)pcTaskName;
/* 编码 5FreeRTOS 栈溢出 */
taskDISABLE_INTERRUPTS();
v_fault_blink_code_loop(5U);
}
/* FreeRTOS 内存申请失败钩子:pvPortMalloc 分配失败时回调。
* 处理策略:关闭中断并进入故障灯循环,故障码为 6。 */
void vApplicationMallocFailedHook(void)
{
/* 编码 6FreeRTOS malloc 失败 */
taskDISABLE_INTERRUPTS();
v_fault_blink_code_loop(6U);
}