1、QP/C框架源代码下载

GitHub - QuantumLeaps/qpc

下载命令(镜像网址+kk):

git clone https://kkgithub.com/QuantumLeaps/qpc --recurse-submodules
git clone https://kkgithub.com/QuantumLeaps/qpc --recurse-submodules --depth 1

 

2、QPC集成开发环境安装:https://www.state-machine.com/

安装目录详情:

3、创建工程

(1)源码路径:D:\Code\QP_source\qpc

(2)在QP_source下新增blinky文件夹

PS D:\Code\QP_source> ls
目录: D:\Code\QP_source
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          2025/7/8     23:10                blinky
d-----          2025/7/7     22:45                qpc

(3)查看 D:\Code\QP_source\qpc 路径下的 cmakeSupport.md 文件

(4)拷贝 D:\Code\QP_source\qpc\3rd_party\cmake 中的 qpc_sdk_import.cmake 至blinky文件夹

        拷贝 D:\Code\QP_source\qpc\examples\posix-win32\blinky 中的 blinky.c 至blinky文件夹

(5)创建CMake脚本文件:

# use a recent CMake version
cmake_minimum_required(VERSION 3.23 FATAL_ERROR)
cmake_policy(VERSION 3.23...3.28)
cmake_policy(SET CMP0083 NEW)
cmake_policy(SET CMP0105 NEW)
cmake_policy(SET CMP0116 NEW)
cmake_policy(SET CMP0128 NEW)

# include general project config & import qpc
set(QPC_SDK_PATH ${CMAKE_SOURCE_DIR}/../qpc)  # qpc框架源代码路径
# set(QPC_FETCH_FROM_GIT ON)
# set(QPC_FETCH_FROM_GIT_PATH ${CMAKE_SOURCE_DIR}/Source/qpc-sdk)
include(qpc_sdk_import.cmake)

# default image/project name is trafficlight
# Give a special name via -DIMAGE=<image>
# the main project
project(blinky # the name of the project
        VERSION "1.0.0"
        DESCRIPTION "my 1st qpc project"
        LANGUAGES C
)

# the project target(s)
add_executable( $(PROJECT_NAME) blinky.c)

include(${QPC_SDK_PATH}/qpc_sdk_init.cmake)
set(QPC_PROJECT $(PROJECT_NAME))
set(QPC_CFG_KERNEL QV)
set(QPC_CFG_GUI FALSE)
set(QPC_CFG_PORT win32)

qpc_sdk_init()

target_link_libraries($(PROJECT_NAME) PRIVATE qpc)

(6) 生成构建文件,生成构建文件目录在build文件夹中

PS D:\Code\QP_source\blinky> cmake -B build -G "MinGW Makefiles"
-- qpc_import.cmake starting...
QPC_SDK_PATH is D:/Code/QP_source/qpc
Set QPC_CFG_GUI to ('FALSE') since not specified
Set QPC_CFG_UNIT_TEST to ('OFF') since not specified
Set QPC_CFG_VERBOSE to ('OFF') since not specified
-- Set QPC_CFG_PORT to ('win32')
-- Found port dir - './win32-qv' for port win32, KERNEL qv
-- ========================================================
  Configured project qpc for win32
    PROJECT_NAME                = blinky
    TARGET                      =
    IMAGE                       =
    SW_VERSION                  =
    PORT                        = win32

    QPC_CFG_GUI                 = FALSE
    QPC_CFG_UNIT_TEST           = OFF
    QPC_CFG_KERNEL              = QV
    QPC_CFG_DEBUG               = ON
    CMAKE_C_CPPCHECK            =
-- ========================================================

-- Configuring done (0.3s)
-- Generating done (0.1s)
-- Build files have been written to: D:/Code/QP_source/blinky/build

 

(7) 通过 cmake --build build/ 编译生成可执行文件,其中build/表示构建文件所在路径

PS D:\Code\QP_source\blinky> cmake --build build/
[  6%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qep_hsm.c.obj
[ 12%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qep_msm.c.obj
[ 18%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_act.c.obj
[ 25%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_defer.c.obj
[ 31%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_dyn.c.obj
[ 37%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_ps.c.obj
[ 43%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_qact.c.obj
[ 50%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_qeq.c.obj
[ 56%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_qmact.c.obj
[ 62%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_time.c.obj
[ 68%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_actq.c.obj
[ 75%] Building C object qpc-sdk/CMakeFiles/qpc.dir/src/qf/qf_mem.c.obj
[ 81%] Building C object qpc-sdk/CMakeFiles/qpc.dir/ports/win32-qv/qf_port.c.obj
[ 87%] Linking C static library libqpc.a
[ 87%] Built target qpc
[ 93%] Building C object CMakeFiles/blinky.dir/blinky.c.obj
[100%] Linking C executable blinky.exe
[100%] Built target blinky

(8)执行程序

posted on 2025-07-08 08:22  轩~邈  阅读(65)  评论(0)    收藏  举报