diff --git a/APP_Framework/Applications/app_test/test_socket.c b/APP_Framework/Applications/app_test/test_socket.c index 5e77b9d3b..2d4d10be9 100644 --- a/APP_Framework/Applications/app_test/test_socket.c +++ b/APP_Framework/Applications/app_test/test_socket.c @@ -335,10 +335,22 @@ void TestSocket(int argc, char* argv[]) if (mode == IPERF_MODE_SERVER) { printf("[%s] Running iperf server at port %d.\n", __func__, iperf_param.port); - PrivTaskCreate(&thd, NULL, TestIperfServer, (void*)&iperf_param); +#ifdef ADD_XIZI_FEATURES + char task_name[] = "test_iperf_server"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)&iperf_param; + PrivTaskCreate(&thd, NULL, TestIperfServer, (void*)&args); +#endif } else if (mode == IPERF_MODE_CLIENT) { printf("[%s] Running iperf client to server at %s:%d.\n", __func__, iperf_param.host, iperf_param.port); - PrivTaskCreate(&thd, NULL, TestIperfClient, (void*)&iperf_param); +#ifdef ADD_XIZI_FEATURES + char task_name[] = "test_iperf_client"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)&iperf_param; + PrivTaskCreate(&thd, NULL, TestIperfClient, (void*)&args); +#endif } PrivTaskStartup(&thd); diff --git a/APP_Framework/Framework/connection/adapter_agent.c b/APP_Framework/Framework/connection/adapter_agent.c index e9c4dcb98..e98902d0f 100755 --- a/APP_Framework/Framework/connection/adapter_agent.c +++ b/APP_Framework/Framework/connection/adapter_agent.c @@ -549,13 +549,19 @@ static int ATAgentInit(ATAgentType agent) attr.priority = 18; attr.stacksize = 8192; + PrivTaskCreate(&agent->at_handler, &attr, ATAgentReceiveProcess, agent); #else pthread_attr_t attr; attr.schedparam.sched_priority = 25; attr.stacksize = 4096; -#endif - PrivTaskCreate(&agent->at_handler, &attr, ATAgentReceiveProcess, agent); + char task_name[] = "at_agent"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)agent; + + PrivTaskCreate(&agent->at_handler, &attr, ATAgentReceiveProcess, (void *)&args); +#endif return result; diff --git a/APP_Framework/Framework/connection/lora/adapter_lora.c b/APP_Framework/Framework/connection/lora/adapter_lora.c index 6133e52cc..490d1f28e 100644 --- a/APP_Framework/Framework/connection/lora/adapter_lora.c +++ b/APP_Framework/Framework/connection/lora/adapter_lora.c @@ -848,8 +848,10 @@ static int AdapterLoraRegister(struct Adapter *adapter) ret = AdapterDeviceRegister(adapter); if (ret < 0) { printf("Adapter4G register error\n"); +#ifdef AS_LORA_GATEWAY_ROLE if (lora_gateway) PrivFree(lora_gateway); +#endif if (lora_client) PrivFree(lora_client); @@ -952,22 +954,32 @@ int AdapterLoraTest(void) pthread_attr_t lora_gateway_attr = PTHREAD_ATTR_INITIALIZER; lora_gateway_attr.priority = 20; lora_gateway_attr.stacksize = 2048; + PrivTaskCreate(&lora_recv_data_task, &lora_gateway_attr, &LoraReceiveTask, (void *)adapter); #else pthread_attr_t lora_gateway_attr; lora_gateway_attr.schedparam.sched_priority = 20; lora_gateway_attr.stacksize = 2048; + + char task_name_1[] = "adapter_lora_recv"; + pthread_args_t args; + args.pthread_name = task_name_1; + args.arg = (void *)adapter; + PrivTaskCreate(&lora_recv_data_task, &lora_gateway_attr, &LoraReceiveTask, (void *)&args); #endif - PrivTaskCreate(&lora_recv_data_task, &lora_gateway_attr, &LoraReceiveTask, (void *)adapter); PrivTaskStartup(&lora_recv_data_task); #ifdef ADD_NUTTX_FEATURES lora_gateway_attr.priority = 20; + PrivTaskCreate(&lora_gateway_task, &lora_gateway_attr, &LoraGatewayTask, (void *)adapter); #else lora_gateway_attr.schedparam.sched_priority = 20; + char task_name_2[] = "adapter_lora_gateway"; + args.pthread_name = task_name_2; + args.arg = (void *)adapter; + PrivTaskCreate(&lora_recv_data_task, &lora_gateway_attr, &LoraReceiveTask, (void *)&args); #endif - PrivTaskCreate(&lora_gateway_task, &lora_gateway_attr, &LoraGatewayTask, (void *)adapter); PrivTaskStartup(&lora_gateway_task); #else //AS_LORA_CLIENT_ROLE @@ -975,22 +987,34 @@ int AdapterLoraTest(void) pthread_attr_t lora_client_attr = PTHREAD_ATTR_INITIALIZER; lora_client_attr.priority = 20; lora_client_attr.stacksize = 2048; + + PrivTaskCreate(&lora_recv_data_task, &lora_client_attr, &LoraReceiveTask, (void *)adapter); #else pthread_attr_t lora_client_attr; lora_client_attr.schedparam.sched_priority = 20; lora_client_attr.stacksize = 2048; + + char task_name_1[] = "adapter_lora_recv"; + pthread_args_t args; + args.pthread_name = task_name_1; + args.arg = (void *)adapter; + PrivTaskCreate(&lora_recv_data_task, &lora_client_attr, &LoraReceiveTask, (void *)&args); #endif - PrivTaskCreate(&lora_recv_data_task, &lora_client_attr, &LoraReceiveTask, (void *)adapter); + PrivTaskStartup(&lora_recv_data_task); #ifdef ADD_NUTTX_FEATURES lora_client_attr.priority = 20; + PrivTaskCreate(&lora_client_data_task, &lora_client_attr, &LoraClientDataTask, (void *)adapter); #else lora_client_attr.schedparam.sched_priority = 20; + char task_name_2[] = "adapter_lora_client"; + args.pthread_name = task_name_2; + args.arg = (void *)adapter; + PrivTaskCreate(&lora_client_data_task, &lora_client_attr, &LoraClientDataTask, (void *)&args); #endif //create lora client task - PrivTaskCreate(&lora_client_data_task, &lora_client_attr, &LoraClientDataTask, (void *)adapter); PrivTaskStartup(&lora_client_data_task); #endif diff --git a/APP_Framework/Framework/control/shared/control_def.c b/APP_Framework/Framework/control/shared/control_def.c index 4808b2423..79fb251fc 100644 --- a/APP_Framework/Framework/control/shared/control_def.c +++ b/APP_Framework/Framework/control/shared/control_def.c @@ -322,7 +322,12 @@ int ControlProtocolOpenDef(struct ControlProtocol *control_protocol) attr.schedparam.sched_priority = 19; attr.stacksize = 2048; - PrivTaskCreate(&recv_plc_data_task, &attr, &ReceivePlcDataTask, control_protocol); + char task_name[] = "control_recv_data"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)control_protocol; + + PrivTaskCreate(&recv_plc_data_task, &attr, &ReceivePlcDataTask, (void *)&args); PrivTaskStartup(&recv_plc_data_task); } diff --git a/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c b/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c index 615fc398e..e1c405c0d 100644 --- a/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c +++ b/APP_Framework/Framework/sensor/pm/ps5308/ps5308.c @@ -80,7 +80,12 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) result = PrivIoctl(sdev->fd, OPE_INT, &cfg); - PrivTaskCreate(&active_task_id, NULL, &ReadTask, sdev); + char task_name[] = "ps5308_recv_data"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)sdev; + + PrivTaskCreate(&active_task_id, NULL, &ReadTask, (void *)&args); PrivTaskStartup(&active_task_id); return result; diff --git a/APP_Framework/Framework/sensor/voice/d124/d124.c b/APP_Framework/Framework/sensor/voice/d124/d124.c index 232680c21..cdbf3895e 100644 --- a/APP_Framework/Framework/sensor/voice/d124/d124.c +++ b/APP_Framework/Framework/sensor/voice/d124/d124.c @@ -116,7 +116,12 @@ static int SensorDeviceOpen(struct SensorDevice *sdev) attr.schedparam.sched_priority = 20; attr.stacksize = 2048; - PrivTaskCreate(&active_task_id, &attr, &ReadTask, sdev); + char task_name[] = "d124_recv_data"; + pthread_args_t args; + args.pthread_name = task_name; + args.arg = (void *)sdev; + + PrivTaskCreate(&active_task_id, &attr, &ReadTask, (void *)&args); PrivTaskStartup(&active_task_id); return result; diff --git a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/include/pthread.h b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/include/pthread.h index d7feca1f0..d2c87ed84 100644 --- a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/include/pthread.h +++ b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/include/pthread.h @@ -72,6 +72,11 @@ extern "C" { typedef int pid_t; // typedef int pthread_mutex_t ; +typedef struct pthread_args +{ + void *arg; + const char *pthread_name; +}pthread_args_t; /* scheduling algorithms */ #define SCHED_OTHER 0 diff --git a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/pthread.c b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/pthread.c index 76cca1b1a..a7652ee36 100644 --- a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/pthread.c +++ b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/pthread.c @@ -29,28 +29,40 @@ int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) { - int ret ; - int pid ; + int ret; + int pid; char task_name[32] = {0}; static int utask_id = 0; - UtaskType task ; + UtaskType task; + pthread_args_t *pthread_args = (pthread_args_t *)arg; if (NULL == attr) { task.prio = KTASK_PRIORITY_MAX / 2; - task.stack_size = 4096 ; + task.stack_size = 4096; } else { - task.prio = attr->schedparam.sched_priority ; - task.stack_size = attr->stacksize ; + task.prio = attr->schedparam.sched_priority; + task.stack_size = attr->stacksize; + } + + task.func_entry = start_routine; + + if (NULL == pthread_args) { + task.func_param = NULL; + snprintf(task_name, sizeof(task_name) - 1, "utask%02d", utask_id++); + } else { + task.func_param = pthread_args->arg; + if (NULL == pthread_args->pthread_name) { + snprintf(task_name, sizeof(task_name) - 1, "utask%02d", utask_id++); + } else { + snprintf(task_name, sizeof(task_name) - 1, pthread_args->pthread_name); + } } - task.func_entry = start_routine ; - task.func_param = arg; - snprintf(task_name, sizeof(task_name) - 1, "utask%02d",utask_id++); memcpy(task.name , task_name, sizeof(task_name) - 1); pid = UserTaskCreate(task); if (pid < 0) - return -1 ; + return -1; ret = UserTaskStartup(pid); *thread = (pthread_t)(long)pid; diff --git a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/timer.c b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/timer.c index e0d167504..e116240f9 100644 --- a/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/timer.c +++ b/APP_Framework/Framework/transform_layer/xizi/user_api/posix_support/timer.c @@ -78,7 +78,11 @@ int timer_create(clockid_t clockid, struct sigevent * evp, timer_t * timerid) attr.schedparam.sched_priority = 22; attr.stacksize = 2048; - pthread_create(&timer_task, &attr, &timer_callback, (void *)evp); + pthread_args_t args; + args.pthread_name = timer_name; + args.arg = (void *)evp; + + pthread_create(&timer_task, &attr, &timer_callback, (void *)&args); timer_id = UserTimerCreate(timer_name, NULL, (void *)&timer_sem, 1000, g_timer_func.timer_flags); *timerid = timer_id; diff --git a/APP_Framework/lib/lorawan/lora_radio_driver b/APP_Framework/lib/lorawan/lora_radio_driver index a94c007cb..e5aa3f221 160000 --- a/APP_Framework/lib/lorawan/lora_radio_driver +++ b/APP_Framework/lib/lorawan/lora_radio_driver @@ -1 +1 @@ -Subproject commit a94c007cb4ee726cc29b10626f8bbfc19c989b89 +Subproject commit e5aa3f22196165200226daab9288ffc537980bf6