diff --git a/doxygen/Doxyfile b/doxygen/Doxyfile index 18e7bcad..536735bf 100644 --- a/doxygen/Doxyfile +++ b/doxygen/Doxyfile @@ -7,7 +7,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = QP/C -PROJECT_NUMBER = 7.2.0 +PROJECT_NUMBER = 7.2.1 PROJECT_BRIEF = "Real-Time Embedded Framework" PROJECT_LOGO = ../../ql-doxygen/images/logo_ql.png OUTPUT_DIRECTORY = diff --git a/doxygen/gen/metrics.txt b/doxygen/gen/metrics.txt index a3f30552..8955a3e9 100644 --- a/doxygen/gen/metrics.txt +++ b/doxygen/gen/metrics.txt @@ -61,7 +61,7 @@ 45 5 241 3 74 QMPool_get@119-192@..\src\qf\qf_mem.c 19 3 117 3 28 QMPool_put@195-222@..\src\qf\qf_mem.c 8 1 35 2 13 QActive_psInit@73-85@..\src\qf\qf_ps.c - 43 6 232 3 75 QActive_publish_@90-164@..\src\qf\qf_ps.c + 42 6 231 3 75 QActive_publish_@90-164@..\src\qf\qf_ps.c 18 5 111 2 24 QActive_subscribe@169-192@..\src\qf\qf_ps.c 18 5 111 2 27 QActive_unsubscribe@197-223@..\src\qf\qf_ps.c 19 5 130 1 24 QActive_unsubscribeAll@228-251@..\src\qf\qf_ps.c @@ -90,7 +90,7 @@ 18 6 76 1 33 QF_run@175-207@..\src\qk\qk.c 25 3 156 7 34 QActive_start_@214-247@..\src\qk\qk.c 19 4 78 1 24 QK_sched_@252-275@..\src\qk\qk.c - 65 17 378 1 112 QK_activate_@278-389@..\src\qk\qk.c + 66 17 382 1 113 QK_activate_@278-390@..\src\qk\qk.c 7 3 52 1 13 QF_init@73-85@..\src\qv\qv.c 3 1 10 1 4 QF_stop@88-91@..\src\qv\qv.c 46 15 251 1 97 QF_run@94-190@..\src\qv\qv.c @@ -102,14 +102,14 @@ 20 6 98 1 35 QF_run@176-210@..\src\qxk\qxk.c 29 5 178 7 42 QActive_start_@217-258@..\src\qxk\qxk.c 42 8 220 1 53 QXK_sched_@266-318@..\src\qxk\qxk.c - 59 16 377 1 98 QXK_activate_@321-418@..\src\qxk\qxk.c - 12 2 72 1 18 QXK_current@421-438@..\src\qxk\qxk.c - 19 5 105 1 26 QXK_contextSw@442-467@..\src\qxk\qxk.c - 13 2 104 1 23 QXK_threadExit_@474-496@..\src\qxk\qxk.c + 59 16 377 1 96 QXK_activate_@321-416@..\src\qxk\qxk.c + 12 2 72 1 18 QXK_current@419-436@..\src\qxk\qxk.c + 19 5 105 1 26 QXK_contextSw@440-465@..\src\qxk\qxk.c + 13 2 104 1 23 QXK_threadExit_@472-494@..\src\qxk\qxk.c 10 2 64 2 13 QXMutex_init@74-86@..\src\qxk\qxk_mutex.c - 81 11 724 2 138 QXMutex_lock@89-226@..\src\qxk\qxk_mutex.c - 59 9 502 1 97 QXMutex_tryLock@229-325@..\src\qxk\qxk_mutex.c - 78 12 670 1 135 QXMutex_unlock@328-462@..\src\qxk\qxk_mutex.c + 79 11 701 2 136 QXMutex_lock@89-224@..\src\qxk\qxk_mutex.c + 57 9 483 1 95 QXMutex_tryLock@227-321@..\src\qxk\qxk_mutex.c + 74 12 622 1 129 QXMutex_unlock@324-452@..\src\qxk\qxk_mutex.c 9 1 51 3 11 QXSemaphore_init@73-83@..\src\qxk\qxk_sema.c 57 7 389 2 84 QXSemaphore_wait@86-169@..\src\qxk\qxk_sema.c 28 3 139 1 39 QXSemaphore_tryWait@172-210@..\src\qxk\qxk_sema.c @@ -153,15 +153,15 @@ NLOC Avg.NLOC AvgCCN Avg.token function_cnt file 69 20.7 2.3 107.0 3 ..\src\qf\qf_defer.c 138 18.4 3.3 111.4 7 ..\src\qf\qf_dyn.c 103 32.0 4.3 197.0 3 ..\src\qf\qf_mem.c - 115 21.2 4.4 123.8 5 ..\src\qf\qf_ps.c + 114 21.0 4.4 123.6 5 ..\src\qf\qf_ps.c 96 17.6 4.6 113.0 5 ..\src\qf\qf_qact.c 152 36.2 4.8 200.8 4 ..\src\qf\qf_qeq.c 18 16.0 2.0 79.0 1 ..\src\qf\qf_qmact.c 218 26.2 4.1 155.6 8 ..\src\qf\qf_time.c - 190 22.8 5.0 128.6 8 ..\src\qk\qk.c + 191 22.9 5.0 129.1 8 ..\src\qk\qk.c 81 18.5 5.0 109.2 4 ..\src\qv\qv.c 260 22.9 5.0 138.5 11 ..\src\qxk\qxk.c - 235 57.0 8.5 490.0 4 ..\src\qxk\qxk_mutex.c + 227 55.0 8.5 467.5 4 ..\src\qxk\qxk_mutex.c 143 34.0 4.5 213.5 4 ..\src\qxk\qxk_sema.c 325 24.4 3.8 156.0 13 ..\src\qxk\qxk_xthr.c @@ -170,5 +170,5 @@ No thresholds exceeded (cyclomatic_complexity > 20 or length > 500 or nloc > 100 ========================================================================================== Total nloc Avg.NLOC AvgCCN Avg.token Fun Cnt Warning cnt Fun Rt nloc Rt ------------------------------------------------------------------------------------------ - 4057 24.5 4.3 151.2 125 0 0.00 0.00 + 4049 24.4 4.3 150.5 125 0 0.00 0.00 @endcode diff --git a/doxygen/history.dox b/doxygen/history.dox index b4b1bc7a..15530d76 100644 --- a/doxygen/history.dox +++ b/doxygen/history.dox @@ -6,6 +6,21 @@ @remark This document is part of the @webref{products/qp#CERT,QP Certification Pack}, which has been specifically designed to aid companies in **safety certification** of their software based on the QP real-time embedded frameworks. +@section qpc_7_2_1 Version 7.2.1, 2023-01-15 +__QP/C Source Code:__ +- Changed the design of the ::QXMutex class to include ::QActive by composition rather than inheritance. + +__Ports:__ +- Fixed problems in QK ports for ARM Cortex-M: in case a regular IRQ is used for returning to the thread context. The port didn't handle correctly #QK_USE_IRQ_NUM above 32. +- Fixed problems in QXK ports for ARM Cortex-M: in case a regular IRQ is used for returning to the thread context. The port didn't handle correctly #QK_USE_IRQ_NUM above 32. + +__Bug Fixes:__ +- [bug#328 Assertion qxk:720 in QP/​C/​C++ 7.2.0](https://sourceforge.net/p/qpc/bugs/328) + +@attention +This bug in QXK affects releases QP/C @ref qpc_7_1_0 "7.1.0" through @ref qpc_7_2_0 "7.2.0" + + @section qpc_7_2_0 Version 7.2.0, 2023-01-06 __QP/C Source Code:__ - Added "enumeration dictionaries" for QS software tracing (see QS_ENUM_DICTIONARY()) diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.c b/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.c index 5aab6843..ffcfa781 100644 --- a/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.c +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.c @@ -1,11 +1,11 @@ -/***************************************************************************** -* Product: Simple Blinky example -* Last Updated for Version: 5.6.5 -* Date of the Last Update: 2016-06-03 +/*============================================================================ +* Product: "Blinky" example +* Last updated for version 7.2.0 +* Last updated on 2023-01-08 * -* Q u a n t u m L e a P s -* --------------------------- -* innovating embedded systems +* Q u a n t u m L e a P s +* ------------------------ +* Modern Embedded Software * * Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. * @@ -28,19 +28,18 @@ * along with this program. If not, see . * * Contact information: -* Web: www.state-machine.com +* * -*****************************************************************************/ +============================================================================*/ #include "qpc.h" -#include "blinky.h" #include "bsp.h" +#include "blinky.h" //Q_DEFINE_THIS_FILE /*..........................................................................*/ typedef struct { /* the Blinky active object */ QActive super; /* inherit QActive */ - QTimeEvt timeEvt; /* private time event generator */ } Blinky; @@ -49,9 +48,9 @@ static Blinky Blinky_inst; /* the Blinky active object */ QActive * const AO_Blinky = &Blinky_inst.super; /* hierarchical state machine ... */ -static QState Blinky_initial(Blinky * const me, QEvt const * const e); -static QState Blinky_off (Blinky * const me, QEvt const * const e); -static QState Blinky_on (Blinky * const me, QEvt const * const e); +static QState Blinky_initial(Blinky * const me, void const * const par); +static QState Blinky_off(Blinky * const me, QEvt const * const e); +static QState Blinky_on(Blinky * const me, QEvt const * const e); /*..........................................................................*/ void Blinky_ctor(void) { @@ -61,8 +60,15 @@ void Blinky_ctor(void) { } /* HSM definition ----------------------------------------------------------*/ -QState Blinky_initial(Blinky * const me, QEvt const * const e) { - (void)e; /* avoid compiler warning about unused parameter */ +QState Blinky_initial(Blinky * const me, void const * const par) { + Q_UNUSED_PAR(par); + + QS_OBJ_DICTIONARY(&Blinky_inst); + QS_OBJ_DICTIONARY(&Blinky_inst.timeEvt); + + QS_FUN_DICTIONARY(&Blinky_initial); + QS_FUN_DICTIONARY(&Blinky_off); + QS_FUN_DICTIONARY(&Blinky_on); /* arm the time event to expire in half a second and every half second */ QTimeEvt_armX(&me->timeEvt, BSP_TICKS_PER_SEC/2U, BSP_TICKS_PER_SEC/2U); diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.h b/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.h index 5568238a..43c61a72 100644 --- a/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.h +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/blinky.h @@ -1,13 +1,13 @@ -/***************************************************************************** -* Product: simple "Blinky" example -* Last Updated for Version: 5.4.0 -* Date of the Last Update: 2015-03-07 +/*============================================================================ +* Product: "Blinky" example +* Last updated for version 7.2.0 +* Last updated on 2023-01-08 * -* Q u a n t u m L e a P s -* --------------------------- -* innovating embedded systems +* Q u a n t u m L e a P s +* ------------------------ +* Modern Embedded Software * -* Copyright (C) 2005 Quantum Leaps, LLC. state-machine.com. +* Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. * * This program is open source software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -30,9 +30,9 @@ * Contact information: * * -*****************************************************************************/ -#ifndef BLINKY_H -#define BLINKY_H +============================================================================*/ +#ifndef BLINKY_H_ +#define BLINKY_H_ enum BlinkySignals { DUMMY_SIG = Q_USER_SIG, @@ -45,4 +45,4 @@ enum BlinkySignals { void Blinky_ctor(void); extern QActive * const AO_Blinky; /* opaque pointer */ -#endif /* BLINKY_H */ +#endif /* BLINKY_H_ */ diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/qube/Makefile b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/Makefile new file mode 100644 index 00000000..eb12208d --- /dev/null +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/Makefile @@ -0,0 +1,242 @@ +############################################################################## +# Product: Makefile for Qube for Windows and POSIX *HOSTS* +# Last updated for version 7.2.0 +# Last updated on 2023-01-08 +# +# Q u a n t u m L e a P s +# ------------------------ +# Modern Embedded Software +# +# Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. +# +# This program is open source software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Alternatively, this program may be distributed and modified under the +# terms of Quantum Leaps commercial licenses, which expressly supersede +# the GNU General Public License and are specifically designed for +# licensees interested in retaining the proprietary status of their code. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Contact information: +# +# +############################################################################## +# +# examples of invoking this Makefile: +# building configurations: qube +# make +# make clean # cleanup the build +# +# NOTE: +# To use this Makefile on Windows, you will need the GNU make utility, which +# is included in the QTools collection for Windows, see: +# https://github.com/QuantumLeaps/qtools +# + +#----------------------------------------------------------------------------- +# project name: +# +PROJECT := qube + +#----------------------------------------------------------------------------- +# project directories: +# + +# list of all source directories used by this project +VPATH := .. + +# list of all include directories needed by this project +INCLUDES := -I.. + +# location of the QP/C framework (if not provided in an env. variable) +ifeq ($(QPC),) +QPC := ../../../.. +endif + +QP_PORT_DIR := $(QPC)/ports/qube + +# make sure that QTOOLS env. variable is defined... +ifeq ("$(wildcard $(QTOOLS))","") +$(error QTOOLS not found. Please install QTools and define QTOOLS env. variable) +endif + +#----------------------------------------------------------------------------- +# project files: +# + +# C source files... +C_SRCS := \ + blinky.c \ + main.c \ + bsp_qube.c + +# C++ source files... +CPP_SRCS := + +LIB_DIRS := +LIBS := + +# defines... +# QP_API_VERSION controls the QP API compatibility; 9999 means the latest API +DEFINES := -DQP_API_VERSION=9999 + +ifeq (,$(CONF)) + CONF := dbg +endif + +#----------------------------------------------------------------------------- +# add QP/C framework, the "Qube" environment: +# +C_SRCS += \ + qep_hsm.c \ + qep_msm.c \ + qf_actq.c \ + qf_defer.c \ + qf_dyn.c \ + qf_mem.c \ + qf_ps.c \ + qf_qact.c \ + qf_qeq.c \ + qf_qmact.c \ + qf_time.c \ + qube.c + +QS_SRCS := \ + qs.c \ + qs_64bit.c \ + qs_fp.c \ + qspy.c + +#============================================================================ +# Typically you should not need to change anything below this line + +#----------------------------------------------------------------------------- +# GNU toolset: +# +# NOTE: +# GNU toolset (MinGW) is included in the QTools collection for Windows, see: +# https://github.com/QuantumLeaps/qtools +# It is assumed that $(QTOOLS)/bin directory is added to the PATH +# +CC := gcc +CPP := g++ +LINK := gcc # for C programs +#LINK := g++ # for C++ programs + +#----------------------------------------------------------------------------- +# basic utilities (depends on the OS this Makefile runs on): +# +ifeq ($(OS),Windows_NT) + MKDIR := mkdir + RM := rm + TARGET_EXT := .exe +else ifeq ($(OSTYPE),cygwin) + MKDIR := mkdir -p + RM := rm -f + TARGET_EXT := .exe +else + MKDIR := mkdir -p + RM := rm -f + TARGET_EXT := +endif + +#----------------------------------------------------------------------------- +# only Q_SPY build configuration... + +BIN_DIR := $(PROJECT) + +C_SRCS += $(QS_SRCS) +INCLUDES += -I$(QPC)/include -I$(QP_PORT_DIR) -I$(QTOOLS)/qspy/include +VPATH += $(QPC)/src/qf $(QPC)/src/qs $(QP_PORT_DIR) $(QTOOLS)/qspy/source + +# gcc options: +CFLAGS = -c -g -O -fno-pie -std=c11 -pedantic -Wall -Wextra -W \ + $(INCLUDES) $(DEFINES) -DQ_SPY + +CPPFLAGS = -c -g -O -fno-pie -std=c++11 -pedantic -Wall -Wextra \ + -fno-rtti -fno-exceptions \ + $(INCLUDES) $(DEFINES) -DQ_SPY + +ifndef GCC_OLD + LINKFLAGS := -no-pie +endif + +#----------------------------------------------------------------------------- +C_OBJS := $(patsubst %.c,%.o, $(C_SRCS)) +CPP_OBJS := $(patsubst %.cpp,%.o, $(CPP_SRCS)) + +TARGET_EXE := $(BIN_DIR)/$(PROJECT)$(TARGET_EXT) +C_OBJS_EXT := $(addprefix $(BIN_DIR)/, $(C_OBJS)) +C_DEPS_EXT := $(patsubst %.o,%.d, $(C_OBJS_EXT)) +CPP_OBJS_EXT := $(addprefix $(BIN_DIR)/, $(CPP_OBJS)) +CPP_DEPS_EXT := $(patsubst %.o,%.d, $(CPP_OBJS_EXT)) + +# create $(BIN_DIR) if it does not exist +ifeq ("$(wildcard $(BIN_DIR))","") +$(shell $(MKDIR) $(BIN_DIR)) +endif + +#----------------------------------------------------------------------------- +# rules +# + +all: $(TARGET_EXE) + $(TARGET_EXE) + +$(TARGET_EXE) : $(C_OBJS_EXT) $(CPP_OBJS_EXT) + $(CC) $(CFLAGS) $(QPC)/include/qstamp.c -o $(BIN_DIR)/qstamp.o + $(LINK) $(LINKFLAGS) $(LIB_DIRS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS) + +$(BIN_DIR)/%.d : %.c + $(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@ + +$(BIN_DIR)/%.d : %.cpp + $(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@ + +$(BIN_DIR)/%.o : %.c + $(CC) $(CFLAGS) $< -o $@ + +$(BIN_DIR)/%.o : %.cpp + $(CPP) $(CPPFLAGS) $< -o $@ + +.PHONY : clean show + +# include dependency files only if our goal depends on their existence +ifneq ($(MAKECMDGOALS),clean) + ifneq ($(MAKECMDGOALS),show) +-include $(C_DEPS_EXT) $(CPP_DEPS_EXT) + endif +endif + +.PHONY : clean show + +clean : + -$(RM) $(BIN_DIR)/*.o \ + $(BIN_DIR)/*.d \ + $(TARGET_EXE) + +show : + @echo PROJECT = $(PROJECT) + @echo TARGET_EXE = $(TARGET_EXE) + @echo VPATH = $(VPATH) + @echo C_SRCS = $(C_SRCS) + @echo CPP_SRCS = $(CPP_SRCS) + @echo C_DEPS_EXT = $(C_DEPS_EXT) + @echo C_OBJS_EXT = $(C_OBJS_EXT) + @echo C_DEPS_EXT = $(C_DEPS_EXT) + @echo CPP_DEPS_EXT = $(CPP_DEPS_EXT) + @echo CPP_OBJS_EXT = $(CPP_OBJS_EXT) + @echo LIB_DIRS = $(LIB_DIRS) + @echo LIBS = $(LIBS) + @echo DEFINES = $(DEFINES) + diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/qube/bsp_qube.c b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/bsp_qube.c new file mode 100644 index 00000000..5028d06f --- /dev/null +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/bsp_qube.c @@ -0,0 +1,38 @@ +#include "qpc.h" +#include "bsp.h" +#include "blinky.h" + +Q_DEFINE_THIS_FILE + +/*..........................................................................*/ +void BSP_init(void) { + /* QS dictionaries... */ + QS_SIG_DICTIONARY(TIMEOUT_SIG, (void*)0); + /* QS filters... */ + QS_GLB_FILTER(QS_ALL_RECORDS); +} +/*..........................................................................*/ +void BSP_exit(void) { + QF_stop(); +} +/*..........................................................................*/ +void BSP_ledOff(void) { + QS_BEGIN_ID(QS_USER, 0U) + QS_STR("OFF"); + QS_END() +} +/*..........................................................................*/ +void BSP_ledOn(void) { + QS_BEGIN_ID(QS_USER, 0U) + QS_STR("ON"); + QS_END() +} +/*..........................................................................*/ +/*! callback function to generate an event for this application */ +QEvt const* Qube_onGenEvt(QSignal sig, char const* params) { + Q_UNUSED_PAR(params); /* QHsmTst does not use params */ + + static QEvt evt = { 0U, 0U, 0U }; + evt.sig = sig; + return &evt; +} diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.sln b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.sln new file mode 100644 index 00000000..94798531 --- /dev/null +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33130.400 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qube_vs", "qube_vs.vcxproj", "{8CC465F7-872E-4D03-B93C-1B64858B4E11}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + qube_vs|x86 = qube_vs|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8CC465F7-872E-4D03-B93C-1B64858B4E11}.qube_vs|x86.ActiveCfg = qube_vs|Win32 + {8CC465F7-872E-4D03-B93C-1B64858B4E11}.qube_vs|x86.Build.0 = qube_vs|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {15807264-0CD3-4BEB-9F83-9E0F04F034E7} + EndGlobalSection +EndGlobal diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj new file mode 100644 index 00000000..de77e033 --- /dev/null +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj @@ -0,0 +1,92 @@ + + + + + qube_vs + Win32 + + + + {8CC465F7-872E-4D03-B93C-1B64858B4E11} + qube_vs + Win32Proj + 10.0 + + + + Application + NotSet + v142 + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + + Disabled + ..;..\..\..\..\include;..\..\..\..\ports\qube;$(QTOOLS)\qspy\include;%(AdditionalIncludeDirectories) + Q_SPY;Q_SPY;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + + + Default + MultiThreaded + NotUsing + Level4 + ProgramDatabase + 4127 + stdc11 + + + ws2_32.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + true + Console + MachineX86 + + + cmd /c "del $(OutDir)qstamp.obj" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj.filters b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj.filters new file mode 100644 index 00000000..d1f23e55 --- /dev/null +++ b/examples/arm-cm/blinky_ek-tm4c123gxl/qube/qube_vs.vcxproj.filters @@ -0,0 +1,77 @@ + + + + + + qube_vs + + + + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + QP + + + + + + qube_vs + + + qube_vs + + + qube_vs + + + + + {8a14cc5f-5520-4870-80c8-16a728dd5b06} + + + {b3b54046-9fb7-4796-b157-31c169faf065} + + + \ No newline at end of file diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvoptx b/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvoptx index fcf58664..a5f19d9d 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvoptx +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvoptx @@ -159,16 +159,16 @@ 0 377 1 -
6704
+
0
0 0 0 0 0 - 1 + 0 ..\bsp.c - \\dpp_qk\../bsp.c\377 + 1 diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvprojx b/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvprojx index 28af283f..9c9374b4 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvprojx +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qk/armclang/dpp-qk.uvprojx @@ -337,7 +337,7 @@ 0 - QK_USE_IRQ_NUM=25 QK_USE_IRQ_HANDLER=CRYPTO_IRQHandler + QK_USE_IRQ_NUM=33,QK_USE_IRQ_HANDLER=FPUEH_IRQHandler ..\..;..\..\..\..\..\include;..\..\..\..\..\ports\arm-cm\qk\armclang;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\efm32pg1b diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/Makefile b/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/Makefile index 42d8cba6..3d08a149 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/Makefile +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/Makefile @@ -1,7 +1,7 @@ ############################################################################## # Product: Makefile for QP/C on EMF32-SLSTK3401A, QK kernel, GNU-ARM -# Last Updated for Version: 7.0.1 -# Date of the Last Update: 2022-05-23 +# Last Updated for Version: 7.2.1 +# Date of the Last Update: 2023-01-14 # # Q u a n t u m L e a P s # ------------------------ @@ -138,8 +138,8 @@ LIBS := # defines DEFINES := -DEFM32PG1B200F256GM48=1 \ - -DQK_USE_IRQ_NUM=25 \ - -DQK_USE_IRQ_HANDLER=CRYPTO_IRQHandler + -DQK_USE_IRQ_NUM=33 \ + -DQK_USE_IRQ_HANDLER=FPUEH_IRQHandler # ARM CPU, ARCH, FPU, and Float-ABI types... # ARM_CPU: [cortex-m0 | cortex-m0plus | cortex-m1 | cortex-m3 | cortex-m4] diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre0.txt b/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre0.txt deleted file mode 100644 index 8580fdb3..00000000 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre0.txt +++ /dev/null @@ -1,79 +0,0 @@ -0045455691 Sch-Idle Pri=1->0 - TE0-ADis Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2] -0053770644 TE0-Post Obj=Philo_inst[2].timeEvt,Sig=TIMEOUT_SIG,AO=Philo_inst[2] -0053771337 AO-Post Sdr=l_SysTick_Handler,Obj=Philo_inst[2],Evt,Que -0053772439 Sch-Next Pri=0->3 -0053772827 AO-GetL Obj=Philo_inst[2],Evt -0053773411 Disp===> Obj=Philo_inst[2],Sig=TIMEOUT_SIG,State=Philo_eating -0053774335 MP-Get Obj=EvtPool1,Free=9,Min=8 -0053774896 QF-New Sig=DONE_SIG,Size=6 -0053775356 QF-Pub Sdr=Philo_inst[2],Evt -0053775958 Sch-Lock Ceil=0->6 -0053776428 AO-Post Sdr=Philo_inst[2],Obj=Table_inst,Evt,Que -0053777295 Sch-Unlk Ceil=6->0 -0053777749 Sch-Next Pri=3->6 -0053778131 AO-GetL Obj=Table_inst,Evt -0053778715 Disp===> Obj=Table_inst,Sig=DONE_SIG,State=Table_serving -0053779422 PHILO_STAT 2 thinking -0053780152 MP-Get Obj=EvtPool1,Free=8,Min=8 -0053780713 QF-New Sig=EAT_SIG,Size=6 -0053781163 QF-Pub Sdr=Table_inst,Evt -0053781750 Sch-Lock Ceil=0->6 -0053782202 AO-Post Sdr=Table_inst,Obj=Table_inst,Evt,Que -0053783101 AO-Post Sdr=Table_inst,Obj=Philo_inst[4],Evt,Que -0053784001 AO-Post Sdr=Table_inst,Obj=Philo_inst[3],Evt,Que -0053784901 AO-Post Sdr=Table_inst,Obj=Philo_inst[2],Evt,Que -0053785801 AO-Post Sdr=Table_inst,Obj=Philo_inst[1],Evt,Que -0053786701 AO-Post Sdr=Table_inst,Obj=Philo_inst[0],Evt,Que -0053787560 Sch-Unlk Ceil=6->0 -0053787984 QF-gcA Evt -0053788466 PHILO_STAT 3 eating -0053789030 =>Intern Obj=Table_inst,Sig=DONE_SIG,State=Table_serving -0053789667 QF-gcA Evt -0053790128 Sch-Next Pri=6->6 -0053790504 AO-GetL Obj=Table_inst,Evt -0053791087 Disp===> Obj=Table_inst,Sig=EAT_SIG,State=Table_serving -0053791796 =>Intern Obj=Table_inst,Sig=EAT_SIG,State=Table_active -0053792427 QF-gcA Evt -0053792901 Sch-Next Pri=6->5 -0053793273 AO-GetL Obj=Philo_inst[4],Evt -0053793856 Disp===> Obj=Philo_inst[4],Sig=EAT_SIG,State=Philo_thinking -0053794533 =>Intern Obj=Philo_inst[4],Sig=EAT_SIG,State=Philo_thinking -0053795165 QF-gcA Evt -0053795639 Sch-Next Pri=5->4 -0053796011 AO-GetL Obj=Philo_inst[3],Evt -0053796594 Disp===> Obj=Philo_inst[3],Sig=EAT_SIG,State=Philo_hungry -0053797557 Sch-Lock Ceil=0->5 -0053797959 Sch-Unlk Ceil=5->0 -0053798428 TE0-Arm Obj=Philo_inst[3].timeEvt,AO=Philo_inst[3],Tim=197,Int=0 -===RTC===> St-Entry Obj=Philo_inst[3],State=Philo_eating -0053799586 ===>Tran Obj=Philo_inst[3],Sig=EAT_SIG,State=Philo_hungry->Philo_eating -0053800328 QF-gcA Evt -0053800804 Sch-Rsme Prio=4->3 -0053801202 QF-gc Evt -0053801667 MP-Put Obj=EvtPool1,Free=9 -0053802194 TE0-DisA Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2] -===RTC===> St-Exit Obj=Philo_inst[2],State=Philo_eating -0053803294 Sch-Lock Ceil=0->5 -0053803694 Sch-Unlk Ceil=5->0 -0053804165 TE0-Arm Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2],Tim=77,Int=0 -===RTC===> St-Entry Obj=Philo_inst[2],State=Philo_thinking -0053805318 ===>Tran Obj=Philo_inst[2],Sig=TIMEOUT_SIG,State=Philo_eating->Philo_thinking -0053806100 Sch-Next Pri=3->3 -0053806487 AO-GetL Obj=Philo_inst[2],Evt -0053807071 Disp===> Obj=Philo_inst[2],Sig=EAT_SIG,State=Philo_thinking -0053807760 =>Intern Obj=Philo_inst[2],Sig=EAT_SIG,State=Philo_thinking -0053808392 QF-gcA Evt -0053808867 Sch-Next Pri=3->2 -0053809239 AO-GetL Obj=Philo_inst[1],Evt -0053809822 Disp===> Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -===RTC===> St-Unhnd Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -0053810966 =>Ignore Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -0053811583 QF-gcA Evt -0053812054 Sch-Next Pri=2->1 -0053812427 AO-GetL Obj=Philo_inst[0],Evt -0053813010 Disp===> Obj=Philo_inst[0],Sig=EAT_SIG,State=Philo_eating -0053813685 =>Intern Obj=Philo_inst[0],Sig=EAT_SIG,State=Philo_eating -0053814318 QF-gc Evt -0053814781 MP-Put Obj=EvtPool1,Free=10 -0053815312 Sch-Idle Pri=1->0 diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre1.txt b/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre1.txt deleted file mode 100644 index c166059d..00000000 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/gnu/qspy_pthre1.txt +++ /dev/null @@ -1,79 +0,0 @@ -0045455658 Sch-Idle Pri=1->0 - TE0-ADis Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2] -0053770644 TE0-Post Obj=Philo_inst[2].timeEvt,Sig=TIMEOUT_SIG,AO=Philo_inst[2] -0053771338 AO-Post Sdr=l_SysTick_Handler,Obj=Philo_inst[2],Evt,Que -0053772441 Sch-Next Pri=0->3 -0053772827 AO-GetL Obj=Philo_inst[2],Evt -0053773412 Disp===> Obj=Philo_inst[2],Sig=TIMEOUT_SIG,State=Philo_eating -0053774333 MP-Get Obj=EvtPool1,Free=9,Min=8 -0053774896 QF-New Sig=DONE_SIG,Size=6 -0053775356 QF-Pub Sdr=Philo_inst[2],Evt -0053775957 Sch-Lock Ceil=0->2 -0053776427 AO-Post Sdr=Philo_inst[2],Obj=Table_inst,Evt,Que -0053777293 Sch-Unlk Ceil=2->0 -0053777742 Sch-Next Pri=3->6 -0053778121 AO-GetL Obj=Table_inst,Evt -0053778706 Disp===> Obj=Table_inst,Sig=DONE_SIG,State=Table_serving -0053779419 PHILO_STAT 2 thinking -0053780149 MP-Get Obj=EvtPool1,Free=8,Min=8 -0053780712 QF-New Sig=EAT_SIG,Size=6 -0053781162 QF-Pub Sdr=Table_inst,Evt -0053781749 Sch-Lock Ceil=0->2 -0053782201 AO-Post Sdr=Table_inst,Obj=Table_inst,Evt,Que -0053783100 AO-Post Sdr=Table_inst,Obj=Philo_inst[4],Evt,Que -0053783993 AO-Post Sdr=Table_inst,Obj=Philo_inst[3],Evt,Que -0053784886 AO-Post Sdr=Table_inst,Obj=Philo_inst[2],Evt,Que -0053785779 AO-Post Sdr=Table_inst,Obj=Philo_inst[1],Evt,Que -0053786672 AO-Post Sdr=Table_inst,Obj=Philo_inst[0],Evt,Que -0053787523 Sch-Unlk Ceil=2->0 -0053787943 QF-gcA Evt -0053788426 PHILO_STAT 3 eating -0053788992 =>Intern Obj=Table_inst,Sig=DONE_SIG,State=Table_serving -0053789639 QF-gcA Evt -0053790098 Sch-Next Pri=6->6 -0053790474 AO-GetL Obj=Table_inst,Evt -0053791059 Disp===> Obj=Table_inst,Sig=EAT_SIG,State=Table_serving -0053791774 =>Intern Obj=Table_inst,Sig=EAT_SIG,State=Table_active -0053792405 QF-gcA Evt -0053792872 Sch-Rsme Prio=6->3 -0053793269 QF-gc Evt -0053793733 MP-Put Obj=EvtPool1,Free=9 -0053794259 TE0-DisA Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2] -===RTC===> St-Exit Obj=Philo_inst[2],State=Philo_eating -0053795376 Sch-Lock Ceil=0->5 -0053795777 Sch-Unlk Ceil=5->0 -0053796248 TE0-Arm Obj=Philo_inst[2].timeEvt,AO=Philo_inst[2],Tim=147,Int=0 -===RTC===> St-Entry Obj=Philo_inst[2],State=Philo_thinking -0053797402 ===>Tran Obj=Philo_inst[2],Sig=TIMEOUT_SIG,State=Philo_eating->Philo_thinking -0053798185 Sch-Next Pri=3->5 -0053798573 AO-GetL Obj=Philo_inst[4],Evt -0053799158 Disp===> Obj=Philo_inst[4],Sig=EAT_SIG,State=Philo_thinking -0053799844 =>Intern Obj=Philo_inst[4],Sig=EAT_SIG,State=Philo_thinking -0053800478 QF-gcA Evt -0053800951 Sch-Next Pri=5->4 -0053801324 AO-GetL Obj=Philo_inst[3],Evt -0053801906 Disp===> Obj=Philo_inst[3],Sig=EAT_SIG,State=Philo_hungry -0053802845 Sch-Lock Ceil=0->5 -0053803248 Sch-Unlk Ceil=5->0 -0053803717 TE0-Arm Obj=Philo_inst[3].timeEvt,AO=Philo_inst[3],Tim=127,Int=0 -===RTC===> St-Entry Obj=Philo_inst[3],State=Philo_eating -0053804870 ===>Tran Obj=Philo_inst[3],Sig=EAT_SIG,State=Philo_hungry->Philo_eating -0053805615 QF-gcA Evt -0053806094 Sch-Next Pri=4->3 -0053806470 AO-GetL Obj=Philo_inst[2],Evt -0053807055 Disp===> Obj=Philo_inst[2],Sig=EAT_SIG,State=Philo_thinking -0053807741 =>Intern Obj=Philo_inst[2],Sig=EAT_SIG,State=Philo_thinking -0053808384 QF-gcA Evt -0053808855 Sch-Next Pri=3->2 -0053809228 AO-GetL Obj=Philo_inst[1],Evt -0053809810 Disp===> Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -===RTC===> St-Unhnd Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -0053810949 =>Ignore Obj=Philo_inst[1],Sig=EAT_SIG,State=Philo_hungry -0053811567 QF-gcA Evt -0053812037 Sch-Next Pri=2->1 -0053812413 AO-GetL Obj=Philo_inst[0],Evt -0053812998 Disp===> Obj=Philo_inst[0],Sig=EAT_SIG,State=Philo_eating -0053813671 =>Intern Obj=Philo_inst[0],Sig=EAT_SIG,State=Philo_eating -0053814305 QF-gc Evt -0053814766 MP-Put Obj=EvtPool1,Free=10 -0053815296 Sch-Idle Pri=1->0 diff --git a/examples/arm-cm/dpp_efm32-slstk3401a/qk/iar/dpp-qk.ewp b/examples/arm-cm/dpp_efm32-slstk3401a/qk/iar/dpp-qk.ewp index 0c521380..27f1d68a 100644 --- a/examples/arm-cm/dpp_efm32-slstk3401a/qk/iar/dpp-qk.ewp +++ b/examples/arm-cm/dpp_efm32-slstk3401a/qk/iar/dpp-qk.ewp @@ -215,8 +215,8 @@