This commit is contained in:
QL 2018-02-19 12:01:53 -05:00
parent d01112d87b
commit f869feacb7
11 changed files with 3351 additions and 3351 deletions

View File

@ -2,14 +2,14 @@ namespace QP {
/** @page history Revision History
@section qpcpp_6_1_1 Version 6.1.1, 2018-02-18
The main purpose of this release is adding the context-switch callbacks to the preemptive @ref qk "QK" and @ref qxk "QXK" kernels. The QK_onContextSw() and QXK_onContextSw() callback functions provide a mechanism to perform additional custom operations when QK/QXK switches context from one thread to another. To avoid extra overhead when this functionality is not needed and for backwards-compatiblity with the existing applications, the callbacks are enabled only when the macros #QK_ON_CONTEXT_SW (for QK) and QXK_ON_CONTEXT_SW (for QXK) are defined. These macros can be defined either directly in command-line for the compiler, or in the QK/QXK port files (qk_port.c for QK and qxk_port.c for QXK). Examples for the context-switch callbacks have been provided for for the @ref arm-cm_dpp_nucleo-l053r8 "NUCLEO-L053R8" (Cortex-M0+) and the @ref arm-cm_dpp_nucleo-h743zi "NUCLEO-H743ZI" (Cortex-M7).
@section qpcpp_6_1_1 Version 6.1.1, 2018-02-18
The main purpose of this release is adding the context-switch callbacks to the preemptive @ref qk "QK" and @ref qxk "QXK" kernels. The QK_onContextSw() and QXK_onContextSw() callback functions provide a mechanism to perform additional custom operations when QK/QXK switches context from one thread to another. To avoid extra overhead when this functionality is not needed and for backwards-compatiblity with the existing applications, the callbacks are enabled only when the macros #QK_ON_CONTEXT_SW (for QK) and #QXK_ON_CONTEXT_SW (for QXK) are defined. These macros can be defined either directly in command-line for the compiler, or in the QK/QXK port files (qk_port.c for QK and qxk_port.c for QXK). Examples for the context-switch callbacks have been provided for for the @ref arm-cm_dpp_nucleo-l053r8 "NUCLEO-L053R8" (Cortex-M0+) and the @ref arm-cm_dpp_nucleo-h743zi "NUCLEO-H743ZI" (Cortex-M7).
Also, this release changes the ARM Cortex-M ports for the IAR-ARM toolchain in that it replaces the assembly modules with the equivalent C implementation. This change enables using the configuration macros #QK_ON_CONTEXT_SW (for QK) and QXK_ON_CONTEXT_SW (for QXK) in the ports. All existing example projects for IAR-ARM have been updated to use the `q(x)k_port.c` files instead of `q(x)k_port.s` files.
Also, this release adds new project files for the Atollic TRUEstudio for STM32. The TRUEstudio projects (Eclipse) have been added for the @ref arm-cm_dpp_nucleo-l053r8 "NUCLEO-L053R8" (Cortex-M0+) and the @ref arm-cm_dpp_nucleo-h743zi "NUCLEO-H743ZI" (Cortex-M7).
------------------------------------------------------------------------------
@section qpcpp_6_1_0 Version 6.1.0, 2018-02-04
The main purpose of this release is adding the support for the [<strong>ARM Compiler 6 (ARM-Clang)</strong>](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler), which is a C/C++ toolchain for ARM processors based on the modern [Clang frontend](https://clang.llvm.org/) and the [LLVM framework](https://llvm.org/). This release adds the ARM-Clang ports and examples for all built-in kernels (QV, QK, and QXK) for the ARM Cortex-M CPU cores.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for QUTEST self-test; QP/C++ on Win32 host
# Last updated for version 5.9.0
# Last updated on 2017-05-15
# Last updated for version 6.1.1
# Last updated on 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -28,15 +28,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Contact information:
# https://state-machine.com
# https://www.state-machine.com
# mailto:info@state-machine.com
##############################################################################
#
# examples of invoking this Makefile:
# make # make and run all tests in the current directory
# make # make and run the tests in the current directory
# make TESTS=philo*.tcl # make and run the selected tests in the current directory
# make norun # only make but not run the tests
# make clean # cleanup the build
# make norun # only make but not run the tests
# make clean # cleanup the build
#
# NOTE:
# To use this Makefile on Windows, you will need the GNU make utility, which

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for EMF32-SLSTK3401A, QUTEST, GNU-ARM
# Last Updated for Version: 6.1.0
# Date of the Last Update: 2018-02-07
# Last Updated for Version: 6.1.1
# Date of the Last Update: 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -70,23 +70,23 @@ QP_PORT_DIR := $(QPCPP)/ports/arm-cm/qutest
# list of all source directories used by this project
VPATH = \
../$(TARGET) \
../$(TARGET) \
$(QPCPP)/src/qf \
$(QPCPP)/src/qs \
$(QP_PORT_DIR) \
$(QPCPP)/3rd_party/efm32pg1b \
$(QPCPP)/3rd_party/efm32pg1b/gnu
$(QP_PORT_DIR) \
$(QPCPP)/3rd_party/efm32pg1b \
$(QPCPP)/3rd_party/efm32pg1b/gnu
# list of all include directories needed by this project
INCLUDES = \
-I. \
-I.. \
-I../$(TARGET) \
-I$(QPCPP)/include \
-I$(QPCPP)/src \
-I$(QP_PORT_DIR) \
-I$(QPCPP)/3rd_party/CMSIS/Include \
-I$(QPCPP)/3rd_party/efm32pg1b
-I. \
-I.. \
-I../$(TARGET) \
-I$(QPCPP)/include \
-I$(QPCPP)/src \
-I$(QP_PORT_DIR) \
-I$(QPCPP)/3rd_party/CMSIS/Include \
-I$(QPCPP)/3rd_party/efm32pg1b
#-----------------------------------------------------------------------------
# files
@ -97,48 +97,48 @@ ASM_SRCS :=
# C source files
C_SRCS := \
startup_efm32pg1b.c \
system_efm32pg1b.c \
em_cmu.c \
em_emu.c \
em_gpio.c \
em_usart.c
startup_efm32pg1b.c \
system_efm32pg1b.c \
em_cmu.c \
em_emu.c \
em_gpio.c \
em_usart.c
# C++ source files
CPP_SRCS := \
test_dpp.cpp \
main.cpp \
philo.cpp \
table.cpp \
bsp.cpp \
qutest_port.cpp
test_dpp.cpp \
main.cpp \
philo.cpp \
table.cpp \
bsp.cpp \
qutest_port.cpp
OUTPUT := $(PROJECT)
LD_SCRIPT := ../$(TARGET)/test.ld
QP_SRCS := \
qep_hsm.cpp \
qep_msm.cpp \
qf_act.cpp \
qf_defer.cpp \
qf_dyn.cpp \
qf_mem.cpp \
qf_ps.cpp \
qf_qact.cpp \
qf_qeq.cpp \
qf_qmact.cpp \
qs.cpp \
qs_64bit.cpp \
qs_rx.cpp \
qs_fp.cpp \
qutest.cpp
qep_hsm.cpp \
qep_msm.cpp \
qf_act.cpp \
qf_defer.cpp \
qf_dyn.cpp \
qf_mem.cpp \
qf_ps.cpp \
qf_qact.cpp \
qf_qeq.cpp \
qf_qmact.cpp \
qs.cpp \
qs_64bit.cpp \
qs_rx.cpp \
qs_fp.cpp \
qutest.cpp
QP_ASMS :=
QS_SRCS := \
qs.cpp \
qs_rx.cpp \
qs_fp.cpp
qs.cpp \
qs_rx.cpp \
qs_fp.cpp
LIB_DIRS :=
LIBS :=
@ -217,17 +217,17 @@ CPP_SRCS += $(QS_SRCS)
ASFLAGS = -g $(ARM_CPU) $(ARM_FPU) $(ASM_CPU) $(ASM_FPU)
CFLAGS = -g $(ARM_CPU) $(ARM_FPU) $(FLOAT_ABI) -mthumb -Wall \
-ffunction-sections -fdata-sections \
-O $(INCLUDES) $(DEFINES) -DQ_SPY -DQ_UTEST
-ffunction-sections -fdata-sections \
-O $(INCLUDES) $(DEFINES) -DQ_SPY -DQ_UTEST
CPPFLAGS = -g $(ARM_CPU) $(ARM_FPU) $(FLOAT_ABI) -mthumb -Wall \
-ffunction-sections -fdata-sections -fno-rtti -fno-exceptions \
-O $(INCLUDES) $(DEFINES) -DQ_SPY -DQ_UTEST
-ffunction-sections -fdata-sections -fno-rtti -fno-exceptions \
-O $(INCLUDES) $(DEFINES) -DQ_SPY -DQ_UTEST
LINKFLAGS = -T$(LD_SCRIPT) $(ARM_CPU) $(ARM_FPU) $(FLOAT_ABI) \
-mthumb -nostdlib \
-Wl,-Map,$(BIN_DIR)/$(OUTPUT).map,--cref,--gc-sections $(LIB_DIRS)
-mthumb -nostdlib \
-Wl,-Map,$(BIN_DIR)/$(OUTPUT).map,--cref,--gc-sections $(LIB_DIRS)
ASM_OBJS := $(patsubst %.s,%.o, $(notdir $(ASM_SRCS)))
C_OBJS := $(patsubst %.c,%.o, $(notdir $(C_SRCS)))
@ -264,33 +264,33 @@ TESTS := *.tcl
endif
$(TARGET_BIN): $(TARGET_ELF)
$(BIN) -O binary $< $@
$(JLINK) -device EFM32PG1B200F256GM48 $(TARGET).jlink
$(BIN) -O binary $< $@
$(JLINK) -device EFM32PG1B200F256GM48 $(TARGET).jlink
$(TARGET_ELF) : $(ASM_OBJS_EXT) $(C_OBJS_EXT) $(CPP_OBJS_EXT)
$(CPP) $(CPPFLAGS) -c $(QPCPP)/include/qstamp.cpp -o $(BIN_DIR)/qstamp.o
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
$(CPP) $(CPPFLAGS) -c $(QPCPP)/include/qstamp.cpp -o $(BIN_DIR)/qstamp.o
$(LINK) $(LINKFLAGS) -o $@ $^ $(BIN_DIR)/qstamp.o $(LIBS)
flash :
$(JLINK) -device EFM32PG1B200F256GM48 $(TARGET).jlink
$(JLINK) -device EFM32PG1B200F256GM48 $(TARGET).jlink
run : $(TARGET_BIN)
$(TCLSH) $(QUTEST) $(TESTS)
$(TCLSH) $(QUTEST) $(TESTS)
$(BIN_DIR)/%.d : %.c
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
$(CC) -MM -MT $(@:.d=.o) $(CFLAGS) $< > $@
$(BIN_DIR)/%.d : %.cpp
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
$(CPP) -MM -MT $(@:.d=.o) $(CPPFLAGS) $< > $@
$(BIN_DIR)/%.o : %.s
$(AS) $(ASFLAGS) $< -o $@
$(AS) $(ASFLAGS) $< -o $@
$(BIN_DIR)/%.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
$(CC) $(CFLAGS) -c $< -o $@
$(BIN_DIR)/%.o : %.cpp
$(CPP) $(CPPFLAGS) -c $< -o $@
$(CPP) $(CPPFLAGS) -c $< -o $@
.PHONY : clean show
@ -302,29 +302,29 @@ ifneq ($(MAKECMDGOALS),clean)
endif
clean :
-$(RM) $(BIN_DIR)/*.o \
$(BIN_DIR)/*.d \
$(BIN_DIR)/*.bin \
$(BIN_DIR)/*.elf \
$(BIN_DIR)/*.map
-$(RM) $(BIN_DIR)/*.o \
$(BIN_DIR)/*.d \
$(BIN_DIR)/*.bin \
$(BIN_DIR)/*.elf \
$(BIN_DIR)/*.map
show :
@echo PROJECT = $(PROJECT)
@echo TESTS = $(TESTS)
@echo TARGET_ELF = $(TARGET_ELF)
@echo CONF = $(CONF)
@echo VPATH = $(VPATH)
@echo C_SRCS = $(C_SRCS)
@echo CPP_SRCS = $(CPP_SRCS)
@echo ASM_SRCS = $(ASM_SRCS)
@echo C_DEPS_EXT = $(C_DEPS_EXT)
@echo C_OBJS_EXT = $(C_OBJS_EXT)
@echo PROJECT = $(PROJECT)
@echo TESTS = $(TESTS)
@echo TARGET_ELF = $(TARGET_ELF)
@echo CONF = $(CONF)
@echo VPATH = $(VPATH)
@echo C_SRCS = $(C_SRCS)
@echo CPP_SRCS = $(CPP_SRCS)
@echo ASM_SRCS = $(ASM_SRCS)
@echo C_DEPS_EXT = $(C_DEPS_EXT)
@echo C_OBJS_EXT = $(C_OBJS_EXT)
@echo CPP_DEPS_EXT = $(CPP_DEPS_EXT)
@echo CPP_OBJS_EXT = $(CPP_OBJS_EXT)
@echo CPP_DEPS_EXT = $(CPP_DEPS_EXT)
@echo CPP_OBJS_EXT = $(CPP_OBJS_EXT)
@echo ASM_OBJS_EXT = $(ASM_OBJS_EXT)
@echo LIB_DIRS = $(LIB_DIRS)
@echo LIBS = $(LIBS)
@echo DEFINES = $(DEFINES)
@echo QUTEST = $(QUTEST)
@echo ASM_OBJS_EXT = $(ASM_OBJS_EXT)
@echo LIB_DIRS = $(LIB_DIRS)
@echo LIBS = $(LIBS)
@echo DEFINES = $(DEFINES)
@echo QUTEST = $(QUTEST)

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for EK-TM4C123GXL, QUTEST, GNU-ARM
# Last Updated for Version: 6.1.0
# Date of the Last Update: 2018-02-07
# Last Updated for Version: 6.1.1
# Date of the Last Update: 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for QUTEST; QP/C++ on Win32 host
# Last updated for version 5.9.0
# Last updated on 2017-05-15
# Last updated for version 6.1.1
# Last updated on 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -28,7 +28,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Contact information:
# https://state-machine.com
# https://www.state-machine.com
# mailto:info@state-machine.com
##############################################################################
#

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for QUTEST; QP/C++ on Win32 host
# Last updated for version 5.9.0
# Last updated on 2017-05-15
# Last updated for version 6.1.1
# Last updated on 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -28,7 +28,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Contact information:
# https://state-machine.com
# https://www.state-machine.com
# mailto:info@state-machine.com
##############################################################################
#

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for QUTEST self-test; QP/C++ on Win32 host
# Last updated for version 5.9.0
# Last updated on 2017-05-15
# Last updated for version 6.1.1
# Last updated on 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -28,7 +28,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Contact information:
# https://state-machine.com
# https://www.state-machine.com
# mailto:info@state-machine.com
##############################################################################
#

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for EMF32-SLSTK3401A, QUTEST, GNU-ARM
# Last Updated for Version: 6.1.0
# Date of the Last Update: 2018-02-07
# Last Updated for Version: 6.1.1
# Date of the Last Update: 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -303,7 +303,7 @@ clean :
$(BIN_DIR)/*.bin \
$(BIN_DIR)/*.elf \
$(BIN_DIR)/*.map
show :
@echo PROJECT = $(PROJECT)
@echo TESTS = $(TESTS)

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for EK-TM4C123GXL, QUTEST, GNU-ARM
# Last Updated for Version: 6.1.0
# Date of the Last Update: 2018-02-07
# Last Updated for Version: 6.1.1
# Date of the Last Update: 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for QUTEST self-test; QP/C on POSIX host
# Last updated for version 5.9.0
# Last updated on 2017-04-16
# Product: Makefile for QUTEST self-test; QP/C++ on POSIX host
# Last updated for version 6.1.1
# Last updated on 2018-02-18
#
# Q u a n t u m L e a P s
# ---------------------------
@ -28,7 +28,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Contact information:
# https://state-machine.com
# https://www.state-machine.com
# mailto:info@state-machine.com
##############################################################################
#