TiSmartCar/main.cpp
Boen_Shi 8be2866433 feat(base): 初始化 MSPM0 开发环境
- 添加头文件和配置文件支持
- 更新.gitignore忽略编译和IDE相关文件
- 添加基础的bsp代码
2026-07-16 14:45:26 +08:00

104 lines
2.8 KiB
C++
Raw Permalink 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 <ti_msp_dl_config.h>
#include <FreeRTOS.h>
#include <task.h>
/************* 用户模块引入部分 ************/
#include <include/user/Led.h>
// TODO
/**************** 测试部分 ***************/
// TODO
/************ FreeRtos 任务定义区 ************/
[[noreturn]] void vLedTask(void *pvParameters) {
while (true) {
Led::on(LED0);
vTaskDelay(pdMS_TO_TICKS(500)); // 每500毫秒切换一次LED状态
Led::off(LED0);
vTaskDelay(pdMS_TO_TICKS(500)); // 每500毫秒切换一次LE+D状态
}
}
// TODO
/***************** 主函数 ******************/
int main() {
/*** SysConfig 初始化 ***/
SYSCFG_DL_init();
/*** 模块初始化 ***/
/*** FreeRtos 任务初始化 ***/
xTaskCreate(vLedTask, "TestLedTask", 32, nullptr, 1, nullptr);
/*** 启动 FreeRtos ***/
vTaskStartScheduler();
return 0;
}
/************ FreeRtos 错误处理部分 ************/
#ifdef __cplusplus
extern "C" {
#endif
void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName) {
/* 栈溢出时的处理代码 */
/* 例如,打印错误信息并重置系统 */
/* 参数:
* xTask - 发生栈溢出的任务句柄
* pcTaskName - 发生栈溢出的任务名称
*/
/* 通常在这里添加一些错误处理和系统恢复的代码 */
while (1) {
/* 可以在此处添加错误处理代码如闪烁LED或输出调试信息 */
}
}
/* 在全局范围内定义存储空间 */
static StaticTask_t xIdleTaskTCB;
static StackType_t uxIdleTaskStack[configMINIMAL_STACK_SIZE];
/* 实现所需的函数 */
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer,
StackType_t **ppxIdleTaskStackBuffer,
uint32_t *pulIdleTaskStackSize) {
/* 传递静态分配的空闲任务数据结构的地址 */
*ppxIdleTaskTCBBuffer = &xIdleTaskTCB;
/* 传递静态分配的空闲任务堆栈的地址 */
*ppxIdleTaskStackBuffer = uxIdleTaskStack;
/* 传递堆栈大小 */
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
}
/* 为定时器任务定义静态内存 */
static StaticTask_t xTimerTaskTCB;
static StackType_t uxTimerTaskStack[configTIMER_TASK_STACK_DEPTH];
void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer,
StackType_t **ppxTimerTaskStackBuffer,
uint32_t *pulTimerTaskStackSize) {
/* 传递静态分配的定时器任务数据结构的地址 */
*ppxTimerTaskTCBBuffer = &xTimerTaskTCB;
/* 传递静态分配的定时器任务堆栈的地址 */
*ppxTimerTaskStackBuffer = uxTimerTaskStack;
/* 传递堆栈大小 */
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
}
#ifdef __cplusplus
}
#endif