diff --git a/CMakeLists.txt b/CMakeLists.txt index da4408a..8a2c8ef 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,9 @@ include(build/global_config.cmake) project(app) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) + message("platform = ${TARGET_PLATFORM}") message("platform PATH = ${PLATFORM_PATH}") diff --git a/build/global_config.cmake b/build/global_config.cmake index e286a85..065810c 100755 --- a/build/global_config.cmake +++ b/build/global_config.cmake @@ -11,3 +11,33 @@ set(UTILS_SOURCE_PATH "${CMAKE_SOURCE_DIR_IPCSDK}/utils") set(HAL_SOURCE_PATH "${CMAKE_SOURCE_DIR_IPCSDK}/hal") set(TEST_SOURCE_PATH "${CMAKE_SOURCE_DIR_IPCSDK}/test") set(EXTERNAL_SOURCE_PATH "${CMAKE_SOURCE_DIR_IPCSDK}/external") + +set(CLANG_TIDY_CHECKS "-*\ +llvm-else-after-return,\ +llvm-header-guard,\ +llvm-include-order,\ +llvm-namespace-comment,\ +llvm-prefer-isa-or-dyn-cast-in-conditionals,\ +llvm-prefer-register-over-unsigned,\ +llvm-qualified-auto,\ +llvm-twine-local,\ +misc-confusable-identifiers,\ +misc-definitions-in-headers,\ +misc-header-include-cycle,\ +misc-include-cleaner,\ +misc-misleading-bidirectional,\ +misc-misleading-identifier,\ +misc-misplaced-const,\ +misc-new-delete-overloads,\ +misc-non-copyable-objects,\ +misc-redundant-expression,\ +misc-static-assert,\ +misc-throw-by-value-catch-by-reference,\ +misc-unconventional-assign-operator,\ +misc-uniqueptr-reset-release,\ +misc-unused-alias-decls,\ +misc-unused-using-decls,\ +readability-identifier-naming") + +set(CLANG_TIDY_CONFIG "-header-filter=\'.*\'") +set(CLANG_TIDY_CONFIG "${CLANG_TIDY_CONFIG} -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux") \ No newline at end of file diff --git a/doc/design.md b/doc/design.md index 0725259..789503e 100644 --- a/doc/design.md +++ b/doc/design.md @@ -121,13 +121,49 @@ sequenceDiagram participant MCU participant 小核 participant 大核 +MCU ->> MCU:待机 +MCU ->> MCU:检测到PIR信号 MCU ->> +小核:上电 小核 ->> 小核:抓拍 / 录像 小核 ->> 小核:保存到sd卡 小核 -->> -MCU:关机 +MCU ->> 小核:断电 ``` -##### 1.4.2.1.1. 定时触发启动 +#### 1.4.2.2. 定时触发状态启动 + +#### 1.4.2.3. 设置状态启动 + +   特殊的启动状态,可以长时间通电完成其它功能,此时功耗较高。 + +1. 如果没有设置状态按键,在物理电源上电时,首先进入设置状态启动,5分钟后自动切换到工作状态。 + +**设置状态启动时序图** + +```mermaid +sequenceDiagram +participant MCU +participant 小核 +participant 大核 +MCU ->> MCU:物理上电 +MCU ->> 小核:上电 +小核 ->> 小核:? +小核 ->> 大核:设置状态启动 +大核 ->> 大核:设置状态任务 +大核 ->> MCU:关机 +MCU ->> 小核:断电 +``` + +**大核设置状态启动时序图** + +```mermaid +sequenceDiagram +participant 大核 +participant app +大核 ->> 大核:物理上电 +大核 ->> app:启动脚本启动app +大核 ->> 大核:断电 +``` ### 1.4.3. 根据软件模块作用域分层 diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index bc04dfa..04c7ec5 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -26,4 +26,24 @@ set(IMPL_TARGET Hal) add_library(${ABSTRACT_TARGET} STATIC ${ABSTRACT_SRC_FILES}) target_link_libraries(${ABSTRACT_TARGET} StatusCode Log) add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES}) -target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET} Log) \ No newline at end of file +target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET} Log) + +add_custom_target( + hal_code_check + COMMAND ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-tidy/clang-tidy + -checks='${CLANG_TIDY_CHECKS}' + -header-filter=.* + -system-headers + ${ABSTRACT_SRC_FILES} + ${CLANG_TIDY_CONFIG} + -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/hal +) + +add_custom_command( + TARGET ${IMPL_TARGET} + TARGET ${ABSTRACT_TARGET} + PRE_BUILD + COMMAND make hal_code_check + WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell-linux/ +) \ No newline at end of file diff --git a/hal/abstract/IHal.cpp b/hal/abstract/IHal.cpp index 54d1c2e..6fdbc71 100644 --- a/hal/abstract/IHal.cpp +++ b/hal/abstract/IHal.cpp @@ -1,6 +1,7 @@ #include "IHal.h" #include "IHalCpp.h" -#include +#include "StatusCode.h" +// #include #include static StatusCode IHalInit(IHal *object) { diff --git a/hal/abstract/IHalCpp.cpp b/hal/abstract/IHalCpp.cpp index 9cda7cf..2bdc084 100644 --- a/hal/abstract/IHalCpp.cpp +++ b/hal/abstract/IHalCpp.cpp @@ -1,6 +1,7 @@ #include "IHalCpp.h" #include "Log.h" -#include +// #include +#include std::shared_ptr &IHalCpp::GetInstance(std::shared_ptr *impl) { static std::shared_ptr instance = std::make_shared(); diff --git a/hal/include/IHal.h b/hal/include/IHal.h index a7e9745..2e01bfd 100644 --- a/hal/include/IHal.h +++ b/hal/include/IHal.h @@ -1,5 +1,5 @@ -#ifndef I_HAL_H -#define I_HAL_H +#ifndef IHAL_H +#define IHAL_H #include "StatusCode.h" #ifdef __cplusplus extern "C" diff --git a/hal/include/IHalCpp.h b/hal/include/IHalCpp.h index 26a7ad7..9f99402 100644 --- a/hal/include/IHalCpp.h +++ b/hal/include/IHalCpp.h @@ -1,5 +1,5 @@ -#ifndef IHAL_CPP_H -#define IHAL_CPP_H +#ifndef IHALCPP_H +#define IHALCPP_H #include "StatusCode.h" #include class IHalCpp diff --git a/hal/result.txt b/hal/result.txt new file mode 100644 index 0000000..6482ae7 --- /dev/null +++ b/hal/result.txt @@ -0,0 +1,6 @@ +/home/xiaojiazhu/project/ipc/hal/abstract/IHal.cpp:1:10: error: 'IHal.h' file not found [clang-diagnostic-error] + 1 | #include "IHal.h" + | ^~~~~~~~ +/home/xiaojiazhu/project/ipc/hal/abstract/IHalCpp.cpp:1:10: error: 'IHalCpp.h' file not found [clang-diagnostic-error] + 1 | #include "IHalCpp.h" + | ^~~~~~~~~~~ diff --git a/tools/clang-tidy/clang-tidy b/tools/clang-tidy/clang-tidy new file mode 100755 index 0000000..1ef09fe Binary files /dev/null and b/tools/clang-tidy/clang-tidy differ diff --git a/utils/StatusCode/include/StatusCode.h b/utils/StatusCode/include/StatusCode.h index a5c7ea7..ab45193 100644 --- a/utils/StatusCode/include/StatusCode.h +++ b/utils/StatusCode/include/StatusCode.h @@ -1,5 +1,5 @@ -#ifndef STATUS_CODE_H -#define STATUS_CODE_H +#ifndef STATUSCODE_H +#define STATUSCODE_H #include #ifdef __cplusplus extern "C"