return ERRCODE_SUCC;
}
+uint32_t mcu_task_silent_add(uint8_t *para, uint32_t para_len)
+{
+ unused(para_len);
+
+ if (para == NULL) {
+ wstp_print("Usage: AT^TASKSILENTADD=<task_id>\r\n");
+ wstp_print(" task_id: Task ID to add to silent list\r\n");
+ return ERRCODE_FAIL;
+ }
+
+ uint32_t task_id = atoi((char*)para);
+
+ extern void silent_task_id_add(uint32_t task_id);
+ silent_task_id_add(task_id);
+
+ wstp_print("Task ID %u added to silent list\r\n", task_id);
+
+ return ERRCODE_SUCC;
+}
+
+uint32_t mcu_task_silent_del(uint8_t *para, uint32_t para_len)
+{
+ unused(para_len);
+
+ if (para == NULL) {
+ wstp_print("Usage: AT^TASKSILENTDEL=<task_id>\r\n");
+ wstp_print(" task_id: Task ID to remove from silent list\r\n");
+ return ERRCODE_FAIL;
+ }
+
+ uint32_t task_id = atoi((char*)para);
+
+ extern void silent_task_id_remove(uint32_t task_id);
+ silent_task_id_remove(task_id);
+
+ wstp_print("Task ID %u removed from silent list\r\n", task_id);
+
+ return ERRCODE_SUCC;
+}
+
+uint32_t mcu_task_silent_show(uint8_t *para, uint32_t para_len)
+{
+ unused(para);
+ unused(para_len);
+
+ wstp_print("========== Silent Task ID List ==========\r\n");
+
+ extern void silent_task_id_dump(void);
+ silent_task_id_dump();
+
+ wstp_print("=========================================\r\n");
+
+ return ERRCODE_SUCC;
+}
+
uint32_t mcu_pm_cldo1_power_down(uint8_t *para, uint32_t para_len)
{
unused(para);
#ifdef CFG_DRIVERS_SDIO
{ SDIOTEST, mcu_sdio_test},
#endif
+ { TASKSILENTADD, mcu_task_silent_add },
+ { TASKSILENTDEL, mcu_task_silent_del },
+ { TASKSILENTSHOW, mcu_task_silent_show },
};
void app_at_process(uint8_t *data, uint32_t data_len)
return ERRCODE_SUCC;\r
}\r
\r
+static uint32_t app_task_silent_add(uint8_t *para, uint32_t para_len, char *str_cmd)\r
+{\r
+ unused(str_cmd);\r
+ if (para == NULL) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ app_pkg_msg_send(TASKSILENTADD, DIAG_CONTROL_FALSE, para, para_len);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+static uint32_t app_task_silent_del(uint8_t *para, uint32_t para_len, char *str_cmd)\r
+{\r
+ unused(str_cmd);\r
+ if (para == NULL) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ app_pkg_msg_send(TASKSILENTDEL, DIAG_CONTROL_FALSE, para, para_len);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+static uint32_t app_task_silent_show(uint8_t *para, uint32_t para_len, char *str_cmd)\r
+{\r
+ unused(str_cmd);\r
+ unused(para);\r
+ unused(para_len);\r
+\r
+ app_pkg_msg_send(TASKSILENTSHOW, DIAG_CONTROL_FALSE, NULL, 0);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
static uint32_t app_test_pm_lcd_off(uint8_t *para, uint32_t para_len, char *str_cmd)\r
{\r
unused(str_cmd);\r
#ifdef CFG_DRIVERS_SDIO\r
{ "AT^SDIOTEST", app_sdio_test, "" },\r
#endif\r
+ { "AT^TASKSILENTADD", app_task_silent_add, "" },\r
+ { "AT^TASKSILENTDEL", app_task_silent_del, "" },\r
+ { "AT^TASKSILENTSHOW", app_task_silent_show, "" },\r
};\r
\r
at_cmd_table_t *get_app_cmd_table(uint32_t *cmd_count)\r
SDIOTEST = 0x58,\r
PMVETOGET = 0x59, // 新增:获取PM投票信息\r
TASKSWITCHPRINT = 0x5A, // 新增:控制任务切换打印\r
+ TASKSILENTADD = 0x5B, // 新增:添加静默任务ID\r
+ TASKSILENTDEL = 0x5C, // 新增:删除静默任务ID\r
+ TASKSILENTSHOW = 0x5D, // 新增:显示静默任务列表\r
MSG_ID_MAX_BUTT,\r
} app_msg_id;\r
\r
/* 全局变量:控制任务切换打印开关(默认关闭)*/
static volatile UINT32 g_taskSwitchPrintEnable = 0;
+UINT32 silent_task_id_list[24] = {0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF};
/* 获取任务切换打印开关状态 */
UINT32 OsTaskSwitchPrintIsEnabled(VOID)
}
}
+BOOL task_id_is_silent(UINT32 task_id)
+{
+ for (int i = 0; i < 24; i++) {
+ if (silent_task_id_list[i] == task_id) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+void silent_task_id_dump(VOID)
+{
+ for (int i = 0; i < 24; i++) {
+ if (silent_task_id_list[i] != 0xFFFFFFFF) {
+ printf("silent_task_id_list[%d] = %u\n", i, silent_task_id_list[i]);
+ }
+ }
+}
+void silent_task_id_add(UINT32 task_id)
+{
+ if(task_id_is_silent(task_id)) {
+ return;
+ }
+ for (int i = 0; i < 24; i++) {
+ if (silent_task_id_list[i] == 0xFFFFFFFF) {
+ silent_task_id_list[i] = task_id;
+ break;
+ }
+ }
+}
+void silent_task_id_remove(UINT32 task_id)
+{
+ for (int i = 0; i < 24; i++) {
+ if (silent_task_id_list[i] == task_id) {
+ silent_task_id_list[i] = 0xFFFFFFFF;
+ break;
+ }
+ }
+}
+
+
VOID OsSchedResched(VOID)
{
LosTaskCB *runTask = NULL;
/* 任务切换打印(由全局开关控制)*/
if (g_taskSwitchPrintEnable) {
- const char *runTaskName = (runTask->taskName != NULL) ? runTask->taskName : "NULL";
- const char *newTaskName = (newTask->taskName != NULL) ? newTask->taskName : "NULL";
- printf("[TASK_SWITCH] %s(ID:%u) -> %s(ID:%u)\n",
- runTaskName, runTask->taskId,
- newTaskName, newTask->taskId);
+ if (!(task_id_is_silent(runTask->taskId) || task_id_is_silent(newTask->taskId))) {
+ const char *runTaskName = (runTask->taskName != NULL) ? runTask->taskName : "NULL";
+ const char *newTaskName = (newTask->taskName != NULL) ? newTask->taskName : "NULL";
+ printf("[TASK_SWITCH] %s(ID:%u) -> %s(ID:%u)\n",
+ runTaskName, runTask->taskId,
+ newTaskName, newTask->taskId);
+ }
}
OsTaskTimeUpdateHook(runTask->taskId);