相关的Issue
无
原因(目的、解决的问题等)
wifi-iot实例项目编译测试samgr模块出现若干如下错误:
../../applications/sample/wifi-iot/app/samgr/maintenance_example.c: In function 'GetTaskConfig':
../../applications/sample/wifi-iot/app/samgr/maintenance_example.c:114:27: error: 'PRI_HIGH' undeclared (first use in this function); did you mean 'PRI_BUTT'?
config.priority = PRI_HIGH;
^~~~~~~~
PRI_BUTT
../../applications/sample/wifi-iot/app/samgr/maintenance_example.c:114:27: note: each undeclared identifier is reported only once for each function it appears in
../../applications/sample/wifi-iot/app/samgr/broadcast_example.c: In function 'Initialize':
../../applications/sample/wifi-iot/app/samgr/broadcast_example.c:63:72: error: implicit declaration of function 'SAMGR_GetProcessTime'; did you mean 'SAMGR_GetInstance'? [-Werror=implicit-function-declaration]
osThreadGetId(), g_broadcastStep++, BROADCASR_TEST_SERVICE, SAMGR_GetProcessTime());
^~~~~~~~~~~~~~~~~~~~
SAMGR_GetInstance
cc1: all warnings being treated as errors
原因是未include相关头文件,以及使用错误的符号等。
描述(做了什么,变更了什么)
修复以上错误,设计的本模块(applications_sample_wifi_iot)的变更有:
-
applications/sample/wifi-iot/app/samgr/BUILD.gn
添加include:
"//foundation/distributedschedule/services/samgr_lite/samgr/source",
"//foundation/distributedschedule/services/samgr_lite/samgr/adapter",
"//test/xts/tools/hctest/include", 多处需要应用#include "hctest.h" -
applications/sample/wifi-iot/app/samgr/broadcast_example.c
#include "time_adapter.h": 加入SAMGR_GetProcessTime()声明
#include "hctest.h": 加入TEST_INIT()声明 -
applications/sample/wifi-iot/app/samgr/service_example.c
#include "time_adapter.h": 加入SAMGR_GetProcessTime()声明
#include "hctest.h": 加入TEST_INIT()声明 -
applications/sample/wifi-iot/app/samgr/task_example.c
#include "time_adapter.h": 加入SAMGR_GetProcessTime()声明 -
applications/sample/wifi-iot/app/samgr/maintenance_example.c
114行: config.priority = PRI_ABOVE_NORMAL; service.h中定义的TaskPriority 没有PRI_HIGH优先级,改为PRI_ABOVE_NORMAL; -
applications/sample/wifi-iot/app/samgr/feature_example.c
#include "time_adapter.h": 加入SAMGR_GetProcessTime()声明
#include "hctest.h": 加入TEST_INIT()声明 -
applications/sample/wifi-iot/app/samgr/specified_task_example.c
#include "time_adapter.h": 加入SAMGR_GetProcessTime()声明
其他:
修复该问题还需修改其他模块(foundation/distributedschedule/services/samgr_lite/samgr/source/BUILD.gn)
在ohos_kernel_type == "liteos_riscv" 分支添加source "samgr_maintenance.c",否则在链接阶段会报错找不到符号SAMGR_PrintServices()