mirror of
https://github.com/QuantumLeaps/qpcpp.git
synced 2025-02-04 06:13:00 +08:00
7.1.2a
first commit after fixing the history
This commit is contained in:
parent
cc4323b27f
commit
e91700b0ed
15
README.md
15
README.md
@ -3,12 +3,15 @@
|
|||||||
# What's New?
|
# What's New?
|
||||||
View QP/C++ Revision History at: https://www.state-machine.com/qpcpp/history.html
|
View QP/C++ Revision History at: https://www.state-machine.com/qpcpp/history.html
|
||||||
|
|
||||||
>**NOTE:** If you're interested in the latest QP/C++ version from Git,
|
> **NOTE:** If you're interested in the latest QP/C++ version from GitHub,
|
||||||
it is highly recommened that you download the latest
|
it is highly recommened that you clone this repo like that:
|
||||||
[QP/C++ Release](https://github.com/QuantumLeaps/qpcpp/releases)
|
|
||||||
as opposed to cloning the repo directy. This is because the `3rd_party`
|
```
|
||||||
directory needed to build the examples is no longer provided in the
|
git clone https://github.com/QuantumLeaps/qpcpp --recurse-submodules --depth 1
|
||||||
`qpcpp` repository (and is provided in the QP/C++ release).
|
```
|
||||||
|
|
||||||
|
Alternatively, you can also download the latest
|
||||||
|
[QP/C++ Release](https://github.com/QuantumLeaps/qpcpp/releases).
|
||||||
|
|
||||||
|
|
||||||
# Getting Started with QP/C++
|
# Getting Started with QP/C++
|
||||||
|
1
doxygen/.gitignore
vendored
Normal file
1
doxygen/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
metrics.dox
|
131
doxygen/Doxyfile
131
doxygen/Doxyfile
@ -1,5 +1,7 @@
|
|||||||
# Doxyfile 1.9.5
|
# Doxyfile 1.9.5
|
||||||
|
|
||||||
|
@INCLUDE = ../../ql-doxygen/ql-doxyfile
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
@ -40,17 +42,6 @@ PYTHON_DOCSTRING = YES
|
|||||||
INHERIT_DOCS = YES
|
INHERIT_DOCS = YES
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
SEPARATE_MEMBER_PAGES = NO
|
||||||
TAB_SIZE = 4
|
TAB_SIZE = 4
|
||||||
ALIASES = "nav{2}=<span class=\"prev_button\">@ref \1</span><span class=\"next_button\">@ref \2</span>" \
|
|
||||||
"nav_prev{1}=<span class=\"prev_button\">@ref \1</span>" \
|
|
||||||
"nav_next{1}=<span class=\"next_button\">@ref \1</span>" \
|
|
||||||
"next{1}=<span class=\"next_button\">@ref \1</span>" \
|
|
||||||
"description=@par Description" \
|
|
||||||
"usage=@par Usage" \
|
|
||||||
"hint=@par Hint" \
|
|
||||||
"label{1}=<div class=\"label\">\1</div>" \
|
|
||||||
"caption{1}=<div class=\"caption\" align=\"center\">\1</div>" \
|
|
||||||
"webref{2}=<a class=\"extern\" target=\"_blank\" href=\"https://www.state-machine.com/\1\">\2</a>" \
|
|
||||||
"tr{1}=@xrefitem tr \"Traceability\" \"\" traces to: @ref \1"
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
OPTIMIZE_FOR_FORTRAN = NO
|
OPTIMIZE_FOR_FORTRAN = NO
|
||||||
@ -150,13 +141,17 @@ INPUT = main.dox \
|
|||||||
../../cert-pack/srs.dox \
|
../../cert-pack/srs.dox \
|
||||||
../../cert-pack/sas.dox \
|
../../cert-pack/sas.dox \
|
||||||
../../cert-pack/sds.dox \
|
../../cert-pack/sds.dox \
|
||||||
|
../../cert-pack/sds_sm-cpp.dox \
|
||||||
../../cert-pack/autosar.dox \
|
../../cert-pack/autosar.dox \
|
||||||
../../cert-pack/tr.dox \
|
../../cert-pack/tr.dox \
|
||||||
metrics.dox \
|
metrics.dox \
|
||||||
dir.dox \
|
dir.dox \
|
||||||
config.hpp \
|
config.hpp \
|
||||||
../include \
|
../include \
|
||||||
../src
|
../src \
|
||||||
|
../ports/lint-plus/std.lnt \
|
||||||
|
../ports/lint-plus/qpcpp.lnt \
|
||||||
|
../ports/lint-plus/options.lnt
|
||||||
INPUT_ENCODING = UTF-8
|
INPUT_ENCODING = UTF-8
|
||||||
INPUT_FILE_ENCODING =
|
INPUT_FILE_ENCODING =
|
||||||
FILE_PATTERNS = *.dox \
|
FILE_PATTERNS = *.dox \
|
||||||
@ -195,7 +190,7 @@ FORTRAN_COMMENT_AFTER = 72
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SOURCE_BROWSER = YES
|
SOURCE_BROWSER = YES
|
||||||
INLINE_SOURCES = NO
|
INLINE_SOURCES = NO
|
||||||
STRIP_CODE_COMMENTS = YES
|
STRIP_CODE_COMMENTS = NO
|
||||||
REFERENCED_BY_RELATION = NO
|
REFERENCED_BY_RELATION = NO
|
||||||
REFERENCES_RELATION = NO
|
REFERENCES_RELATION = NO
|
||||||
REFERENCES_LINK_SOURCE = YES
|
REFERENCES_LINK_SOURCE = YES
|
||||||
@ -283,68 +278,6 @@ SEARCHDATA_FILE = searchdata.xml
|
|||||||
EXTERNAL_SEARCH_ID = QPCPP
|
EXTERNAL_SEARCH_ID = QPCPP
|
||||||
EXTRA_SEARCH_MAPPINGS =
|
EXTRA_SEARCH_MAPPINGS =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the LaTeX output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_LATEX = NO
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
LATEX_MAKEINDEX_CMD = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = letter
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
LATEX_FOOTER =
|
|
||||||
LATEX_EXTRA_STYLESHEET =
|
|
||||||
LATEX_EXTRA_FILES =
|
|
||||||
PDF_HYPERLINKS = YES
|
|
||||||
USE_PDFLATEX = YES
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
LATEX_HIDE_INDICES = NO
|
|
||||||
LATEX_BIB_STYLE = plain
|
|
||||||
LATEX_TIMESTAMP = NO
|
|
||||||
LATEX_EMOJI_DIRECTORY =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the RTF output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the man page output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_MAN = NO
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_SUBDIR =
|
|
||||||
MAN_LINKS = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the XML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_OUTPUT = xml
|
|
||||||
XML_PROGRAMLISTING = YES
|
|
||||||
XML_NS_MEMB_FILE_SCOPE = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the DOCBOOK output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_DOCBOOK = NO
|
|
||||||
DOCBOOK_OUTPUT = docbook
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options for the AutoGen Definitions output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the Perl module output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_PERLMOD = NO
|
|
||||||
PERLMOD_LATEX = NO
|
|
||||||
PERLMOD_PRETTY = YES
|
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the preprocessor
|
# Configuration options related to the preprocessor
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ENABLE_PREPROCESSING = YES
|
ENABLE_PREPROCESSING = YES
|
||||||
@ -373,51 +306,3 @@ PREDEFINED = Q_SPY \
|
|||||||
QXK_ON_CONTEXT_SW
|
QXK_ON_CONTEXT_SW
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to external references
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
TAGFILES =
|
|
||||||
GENERATE_TAGFILE =
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
EXTERNAL_PAGES = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the dot tool
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
DIA_PATH =
|
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
|
||||||
HAVE_DOT = NO
|
|
||||||
DOT_NUM_THREADS = 0
|
|
||||||
DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10"
|
|
||||||
DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10"
|
|
||||||
DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4"
|
|
||||||
DOT_FONTPATH =
|
|
||||||
CLASS_GRAPH = YES
|
|
||||||
COLLABORATION_GRAPH = NO
|
|
||||||
GROUP_GRAPHS = YES
|
|
||||||
UML_LOOK = YES
|
|
||||||
UML_LIMIT_NUM_FIELDS = 10
|
|
||||||
DOT_UML_DETAILS = NO
|
|
||||||
DOT_WRAP_THRESHOLD = 17
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = YES
|
|
||||||
INCLUDED_BY_GRAPH = YES
|
|
||||||
CALL_GRAPH = NO
|
|
||||||
CALLER_GRAPH = NO
|
|
||||||
GRAPHICAL_HIERARCHY = YES
|
|
||||||
DIRECTORY_GRAPH = YES
|
|
||||||
DIR_GRAPH_MAX_DEPTH = 1
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
INTERACTIVE_SVG = NO
|
|
||||||
DOT_PATH = C:/tools/graphviz/bin
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
MSCFILE_DIRS =
|
|
||||||
DIAFILE_DIRS =
|
|
||||||
PLANTUML_JAR_PATH =
|
|
||||||
PLANTUML_CFG_FILE =
|
|
||||||
PLANTUML_INCLUDE_PATH =
|
|
||||||
DOT_GRAPH_MAX_NODES = 50
|
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
|
||||||
DOT_MULTI_TARGETS = NO
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
# Doxyfile 1.9.3
|
# Doxyfile 1.9.5
|
||||||
|
|
||||||
@INCLUDE = Doxyfile
|
@INCLUDE = Doxyfile
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
ENABLED_SECTIONS += CERT LATEX
|
||||||
# Configuration options related to the input files
|
GENERATE_LATEX = YES
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ENABLED_SECTIONS += CERT
|
|
||||||
HTML_OUTPUT = ../cert-pack
|
HTML_OUTPUT = ../cert-pack
|
||||||
|
LATEX_OUTPUT = ../cert-latex
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Doxyfile 1.9.3
|
# Doxyfile 1.9.4
|
||||||
|
|
||||||
@INCLUDE = Doxyfile
|
@INCLUDE = Doxyfile
|
||||||
|
|
||||||
|
7
doxygen/Doxyfile-LATEX
Normal file
7
doxygen/Doxyfile-LATEX
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Doxyfile 1.9.5
|
||||||
|
|
||||||
|
@INCLUDE = Doxyfile
|
||||||
|
|
||||||
|
GENERATE_HTML = NO
|
||||||
|
GENERATE_LATEX = YES
|
||||||
|
ENABLED_SECTIONS += LATEX
|
@ -343,47 +343,76 @@ The QP/C++ examples for Zephyr are as follows:
|
|||||||
/*##########################################################################*/
|
/*##########################################################################*/
|
||||||
/*! @page zephyr_blinky Blinky
|
/*! @page zephyr_blinky Blinky
|
||||||
|
|
||||||
Blinks an on-board LED once per second.
|
The "Blinky" example blinks an on-board LED once per second. The blinking is done by an Active Object (Blinky) with a state machine. The example directory contains the following files:
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
<qpcpp>/examples/zephyr/blinky
|
||||||
|
|
|
||||||
|
+-src/ - project sources
|
||||||
|
| |
|
||||||
|
| +-bsp.hpp
|
||||||
|
| +-bsp.cpp
|
||||||
|
| +-blinky.hpp
|
||||||
|
| +-blinky.cpp
|
||||||
|
| +-main.cpp
|
||||||
|
|
|
||||||
|
+-CMakeLists.txt - project files
|
||||||
|
+-prj.conf - project config
|
||||||
|
+-README.md
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
The blinking is done by an Active Object (Blinky) with a state machine.
|
|
||||||
|
|
||||||
@section zephyr_blinky-build Building and Running
|
@section zephyr_blinky-build Building and Running
|
||||||
|
|
||||||
- Linux:
|
- Linux:
|
||||||
Open a terminal in the blinky directory.
|
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
source ~/zephyrproject/zephyr/zephyr-env.sh
|
[1] cd <qpcpp>/examples/zephyr/blinky
|
||||||
|
|
||||||
west build -b <board>
|
[2] source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||||
|
|
||||||
west flush
|
[3] west build -b <board>
|
||||||
|
[3a] west build -b nucleo_h743zi
|
||||||
|
[3b] west build -b nucleo_l053r8
|
||||||
|
...
|
||||||
|
|
||||||
|
[4] west flush
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
|
`[1]` Open a terminal in the Blinky example directory.<br>
|
||||||
|
`[2]` If Zephyr project is not in your path, you might need to source the `zephyr-env.sh` shell script.<br>
|
||||||
|
`[3]` build the example project, where `<board>` is any of the boards supported by Zepyr. The example has been tested with the following boards:<br>
|
||||||
|
`[3a]` nucleo_h743zi (ARM Cortex-M7)<br>
|
||||||
|
`[3b]` nucleo_l053r8 (ARM Cortex-M0+)<br>
|
||||||
|
`[4]` flash the board
|
||||||
|
|
||||||
|
@remark
|
||||||
|
The example has been tested with the following boards:
|
||||||
|
|
||||||
|
![STM32-NUCLEO-L053R8 board](bd_NUCLEO-L053R8.jpg)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
![STM32-NUCLEO-H743ZI board](bd_NUCLEO-H743ZI.jpg)
|
||||||
|
|
||||||
|
|
||||||
|
@note
|
||||||
|
The example should also work with most boards supported by Zephyr.
|
||||||
|
|
||||||
|
|
||||||
@section zephyr_blinky-output Sample Output
|
@section zephyr_blinky-output Sample Output
|
||||||
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
*** Booting Zephyr OS build v2.6.0-rc2-88-g3d39f72a88b3 ***
|
*** Booting Zephyr OS build v2.6.0-rc2-88-g3d39f72a88b3 ***
|
||||||
BSP_ledOff
|
BSP::ledOff
|
||||||
QF_onStartup
|
QF::onStartup
|
||||||
BSP_ledOn
|
BSP::ledOn
|
||||||
BSP_ledOff
|
BSP::ledOff
|
||||||
BSP_ledOn
|
BSP::ledOn
|
||||||
BSP_ledOff
|
BSP::ledOff
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
@note
|
|
||||||
The example has been tested with the following boards:
|
|
||||||
|
|
||||||
![STM32-NUCLEO-L053R8 board](bd_NUCLEO-L053R8.jpg)
|
|
||||||
<br>
|
|
||||||
|
|
||||||
![STM32-NUCLEO-H743ZI board](bd_NUCLEO-H743ZI.jpg)
|
|
||||||
|
|
||||||
@note
|
|
||||||
The example should also work with most boards supported by Zephyr.
|
|
||||||
|
|
||||||
@section zephyr_blinky-limits Limitations
|
@section zephyr_blinky-limits Limitations
|
||||||
The simple Blinky example does not support the QS software tracing.
|
The simple Blinky example does not support the QS software tracing.
|
||||||
|
|
||||||
@ -394,19 +423,61 @@ The simple Blinky example does not support the QS software tracing.
|
|||||||
|
|
||||||
DPP example with multiple active objects.
|
DPP example with multiple active objects.
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
<qpcpp>/examples/zephyr/dpp
|
||||||
|
|
|
||||||
|
+-src/ - project sources
|
||||||
|
| |
|
||||||
|
| +-bsp.hpp
|
||||||
|
| +-bsp.cpp
|
||||||
|
| +-dpp.hpp
|
||||||
|
| +-philo.cpp
|
||||||
|
| +-table.cpp
|
||||||
|
| +-main.cpp
|
||||||
|
|
|
||||||
|
+-CMakeLists.txt - project files
|
||||||
|
+-prj.conf - project config
|
||||||
|
+-README.md
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
@section zephyr_dpp-build Building and Running
|
@section zephyr_dpp-build Building and Running
|
||||||
|
|
||||||
- Linux:
|
- Linux:
|
||||||
Open a terminal in the dpp directory.
|
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
source ~/zephyrproject/zephyr/zephyr-env.sh
|
[1] cd <qpcpp>/examples/zephyr/dpp
|
||||||
|
|
||||||
west build -b <board>
|
[2] source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||||
|
|
||||||
west flush
|
[3] west build -b <board>
|
||||||
|
[3a] west build -b nucleo_h743zi
|
||||||
|
[3b] west build -b nucleo_l053r8
|
||||||
|
...
|
||||||
|
|
||||||
|
[4] west flush
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
|
`[1]` Open a terminal in the DPP example directory.<br>
|
||||||
|
`[2]` If Zephyr project is not in your path, you might need to source the `zephyr-env.sh` shell script.<br>
|
||||||
|
`[3]` build the example project, where `<board>` is any of the boards supported by Zepyr. The example has been tested with the following boards:<br>
|
||||||
|
`[3a]` nucleo_h743zi (ARM Cortex-M7)<br>
|
||||||
|
`[3b]` nucleo_l053r8 (ARM Cortex-M0+)<br>
|
||||||
|
`[4]` flash the board
|
||||||
|
|
||||||
|
@remark
|
||||||
|
The example has been tested with the following boards:
|
||||||
|
|
||||||
|
![STM32-NUCLEO-L053R8 board](bd_NUCLEO-L053R8.jpg)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
![STM32-NUCLEO-H743ZI board](bd_NUCLEO-H743ZI.jpg)
|
||||||
|
|
||||||
|
|
||||||
|
@note
|
||||||
|
The example should also work with most boards supported by Zephyr.
|
||||||
|
|
||||||
|
|
||||||
@section zephyr_dpp-output Sample Output
|
@section zephyr_dpp-output Sample Output
|
||||||
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
||||||
|
|
||||||
@ -435,20 +506,118 @@ Philo[2]->eating
|
|||||||
Philo[0]->thinking
|
Philo[0]->thinking
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
@note
|
|
||||||
The example has been tested with the following boards:
|
|
||||||
|
|
||||||
![STM32-NUCLEO-L053R8 board](bd_NUCLEO-L053R8.jpg)
|
@section zephyr_dpp-qpspy Using the QP/SPY Software Tracing
|
||||||
<br>
|
The @ref zephyr "QP/C Zephyr port" supports the
|
||||||
|
[QSPY Software Tracing](https://www.state-machine.com/qtools/qpspy.html)
|
||||||
|
option and will add the appropriate macros and files to build the "QSPY"
|
||||||
|
configuration.
|
||||||
|
|
||||||
![STM32-NUCLEO-H743ZI board](bd_NUCLEO-H743ZI.jpg)
|
If you wish to enable "QSPY" you can provide the option "QSPY"
|
||||||
|
in the command-line for the build. For example:
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
west build -b nucleo_h743zi -- -DQSPY=ON
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
@note
|
@note
|
||||||
The example should also work with most boards supported by Zephyr.
|
The QP/Spy software tracing uses the Zephyr's console UART. This means that the Zephyr `printk()` facility cannot be used while QP/Spy is configured.
|
||||||
|
|
||||||
@section zephyr_dpp-limits Limitations
|
|
||||||
The DPP example currently does not support the QS software tracing,
|
If yo have built the example with QP/Spy, you might want to watch the QP/Spy output.
|
||||||
because implementation of the QS output over UART is board dependent. However, for a specific board, re-implementing the QS callbacks should be straightforward.
|
|
||||||
|
|
||||||
|
@section zephyr_dpp-qspy The QSPY Host Utility
|
||||||
|
To receive the QP/Spy software tracing output you need to run a special [qspy host application](https://www.state-machine.com/qtools/qspy.html).
|
||||||
|
|
||||||
|
@note
|
||||||
|
You might need to build the `qspy` host utility on your Linux machine. The QSPY utility is available in
|
||||||
|
[QTools collection](https://github.com/QuantumLeaps/qtools/tree/master/qspy).
|
||||||
|
|
||||||
|
|
||||||
|
To launch the `qspy` host utility, open a separate terminal and run
|
||||||
|
@verbatim
|
||||||
|
qspy -c <serial-port>
|
||||||
|
```
|
||||||
|
specific example:
|
||||||
|
```
|
||||||
|
qspy -c /dev/ttyACM0
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
|
|
||||||
|
@subsection @section zephyr_dpp-qs-output QSPY Output Example
|
||||||
|
After resetting the board, you should see output similar to the following:
|
||||||
|
@verbatim
|
||||||
|
########## Trg-RST QP-Ver=701,Build=220810_150847
|
||||||
|
Obj-Dict 0x20003154->QS_RX
|
||||||
|
Obj-Dict 0x20000680->AO_Table
|
||||||
|
Obj-Dict 0x20000180->AO_Philo[0]
|
||||||
|
Obj-Dict 0x20000280->AO_Philo[1]
|
||||||
|
Obj-Dict 0x20000380->AO_Philo[2]
|
||||||
|
Obj-Dict 0x20000480->AO_Philo[3]
|
||||||
|
Obj-Dict 0x20000580->AO_Philo[4]
|
||||||
|
Obj-Dict 0x0000A52C->timerID
|
||||||
|
Usr-Dict 00000100->PHILO_STAT
|
||||||
|
Usr-Dict 00000101->PAUSED_STAT
|
||||||
|
Usr-Dict 00000102->COMMAND_STAT
|
||||||
|
Usr-Dict 00000103->CONTEXT_SW
|
||||||
|
Obj-Dict 0x20003054->EvtPool1
|
||||||
|
Obj-Dict 0x20000180->Philo::inst[0]
|
||||||
|
Obj-Dict 0x2000026C->Philo::inst[0].m_timeEvt
|
||||||
|
Obj-Dict 0x20000280->Philo::inst[1]
|
||||||
|
Obj-Dict 0x2000036C->Philo::inst[1].m_timeEvt
|
||||||
|
Obj-Dict 0x20000380->Philo::inst[2]
|
||||||
|
Obj-Dict 0x2000046C->Philo::inst[2].m_timeEvt
|
||||||
|
Obj-Dict 0x20000480->Philo::inst[3]
|
||||||
|
Obj-Dict 0x2000056C->Philo::inst[3].m_timeEvt
|
||||||
|
Obj-Dict 0x20000580->Philo::inst[4]
|
||||||
|
Obj-Dict 0x2000066C->Philo::inst[4].m_timeEvt
|
||||||
|
Fun-Dict 0x00008929->Philo::initial
|
||||||
|
Fun-Dict 0x0000890F->Philo::thinking
|
||||||
|
Fun-Dict 0x00008917->Philo::hungry
|
||||||
|
Fun-Dict 0x0000891F->Philo::eating
|
||||||
|
Sig-Dict 00000004,Obj=0x00000000->TIMEOUT_SIG
|
||||||
|
0000000327 AO-Subsc Obj=Philo::inst[0],Sig=00000005,Obj=0x20000180
|
||||||
|
0000000327 AO-Subsc Obj=Philo::inst[0],Sig=00000009,Obj=0x20000180
|
||||||
|
===RTC===> St-Init Obj=Philo::inst[0],State=0x00009B1B->Philo::thinking
|
||||||
|
===RTC===> St-Entry Obj=Philo::inst[0],State=Philo::thinking
|
||||||
|
0000000328 Init===> Obj=Philo::inst[0],State=Philo::thinking
|
||||||
|
0000000334 AO-Subsc Obj=Philo::inst[1],Sig=00000005,Obj=0x20000280
|
||||||
|
0000000334 AO-Subsc Obj=Philo::inst[1],Sig=00000009,Obj=0x20000280
|
||||||
|
===RTC===> St-Init Obj=Philo::inst[1],State=0x00009B1B->Philo::thinking
|
||||||
|
===RTC===> St-Entry Obj=Philo::inst[1],State=Philo::thinking
|
||||||
|
0000000334 Init===> Obj=Philo::inst[1],State=Philo::thinking
|
||||||
|
0000000340 AO-Subsc Obj=Philo::inst[2],Sig=00000005,Obj=0x20000380
|
||||||
|
0000000340 AO-Subsc Obj=Philo::inst[2],Sig=00000009,Obj=0x20000380
|
||||||
|
===RTC===> St-Init Obj=Philo::inst[2],State=0x00009B1B->Philo::thinking
|
||||||
|
===RTC===> St-Entry Obj=Philo::inst[2],State=Philo::thinking
|
||||||
|
0000000340 Init===> Obj=Philo::inst[2],State=Philo::thinking
|
||||||
|
0000000346 AO-Subsc Obj=Philo::inst[3],Sig=00000005,Obj=0x20000480
|
||||||
|
0000000346 AO-Subsc Obj=Philo::inst[3],Sig=00000009,Obj=0x20000480
|
||||||
|
===RTC===> St-Init Obj=Philo::inst[3],State=0x00009B1B->Philo::thinking
|
||||||
|
===RTC===> St-Entry Obj=Philo::inst[3],State=Philo::thinking
|
||||||
|
0000000346 Init===> Obj=Philo::inst[3],State=Philo::thinking
|
||||||
|
0000000352 AO-Subsc Obj=Philo::inst[4],Sig=00000005,Obj=0x20000580
|
||||||
|
0000000352 AO-Subsc Obj=Philo::inst[4],Sig=00000009,Obj=0x20000580
|
||||||
|
===RTC===> St-Init Obj=Philo::inst[4],State=0x00009B1B->Philo::thinking
|
||||||
|
===RTC===> St-Entry Obj=Philo::inst[4],State=Philo::thinking
|
||||||
|
0000000352 Init===> Obj=Philo::inst[4],State=Philo::thinking
|
||||||
|
Obj-Dict 0x20000680->Table::inst
|
||||||
|
Sig-Dict 00000006,Obj=0x00000000->DONE_SIG
|
||||||
|
Sig-Dict 00000005,Obj=0x00000000->EAT_SIG
|
||||||
|
Sig-Dict 00000007,Obj=0x00000000->PAUSE_SIG
|
||||||
|
Sig-Dict 00000008,Obj=0x00000000->SERVE_SIG
|
||||||
|
Sig-Dict 00000009,Obj=0x00000000->TEST_SIG
|
||||||
|
Sig-Dict 00000011,Obj=0x20000680->HUNGRY_SIG
|
||||||
|
0000000370 AO-Subsc Obj=Table::inst,Sig=DONE_SIG
|
||||||
|
0000000370 AO-Subsc Obj=Table::inst,Sig=PAUSE_SIG
|
||||||
|
0000000370 AO-Subsc Obj=Table::inst,Sig=SERVE_SIG
|
||||||
|
0000000371 AO-Subsc Obj=Table::inst,Sig=TEST_SIG
|
||||||
|
0000000371 PHILO_STAT 0 thinking
|
||||||
|
0000000371 PHILO_STAT 1 thinking
|
||||||
|
0000000371 PHILO_STAT 2 thinking
|
||||||
|
0000000371 PHILO_STAT 3 thinking
|
||||||
|
@endverbatim
|
||||||
|
|
||||||
@next{exa_os}
|
@next{exa_os}
|
||||||
*/
|
*/
|
||||||
|
@ -8,20 +8,15 @@ To check what's new in QP™/C++, please see @ref history "QP/C++ Revision H
|
|||||||
|
|
||||||
|
|
||||||
@section over_about What is it?
|
@section over_about What is it?
|
||||||
<b>QP™/C++ Real-Time Embedded Framework (RTEF)</b> is a lightweight implementation of the @webref{active-object, Active Object model of computation} specifically tailored for real-time embedded (RTE) systems. QP is both a software infrastructure for building applications consisting of Active Objects (actors) and a runtime environment for executing the Active Objects in a deterministic fashion. Additionally, QP Framework supports @webref{fsm#HSM, Hierarchical State Machines} with which to specify the behavior of Active Objects @ref srs_ref "[ROOM:94], [UML 2.5],[Sutter:10]".
|
<b>QP™/C++ Real-Time Embedded Framework (RTEF)</b> is a lightweight implementation of the @webref{active-object, Active Object model of computation} specifically tailored for real-time embedded (RTE) systems. QP is both a *software infrastructure* for building applications consisting of active objects (actors) and a *runtime environment* for executing the active objects in a deterministic fashion. Additionally, QP Framework supports @webref{fsm#HSM, Hierarchical State Machines} with which to specify the behavior of Active Objects @ref srs_ref "[ROOM:94], [UML 2.5],[Sutter:10]". You can think of the QP/C RTEF as a modern, truly *event-driven* real-time operating system (RTOS).
|
||||||
|
|
||||||
@note
|
|
||||||
<a href="https://www.state-machine.com/products/qp#CERT" title="QP Cert-Pack"><img src="cert-pack.png" style="float:right; margin:0 20px 0 20px;"></img></a>
|
|
||||||
The @webref{products/qp#CERT,QP Certification Pack} provides:
|
|
||||||
- @ref srs_over "Software Requirements Specification" with a good overview of the QP/C++ Framework
|
|
||||||
- @ref sas_core "Software Architecture Specification" with concise description of QP/C++ architecture
|
|
||||||
- @ref sds "Software Design Specification" with detailed description of the QP/C++ design.
|
|
||||||
|
|
||||||
|
|
||||||
@section over_goals What does it do?
|
@section over_goals What does it do?
|
||||||
The main objectives of the QP/C++ RTEF are:
|
The main objectives of the QP/C++ RTEF are:
|
||||||
|
|
||||||
- to provide a modern, event-driven model of concurrency based on the best practices of concurrent programming @ref srs_ref "[ROOM:94], [Cummings:10], [Sutter:10]", collectively known as the @webref{active-object, Active Object (Actor) model of computation}, which is inherently *safer* than the traditional "shared-state concurrency, mutual-exclusion, and blocking" approach based on a conventional Real-Time Operating System (RTOS);
|
- to provide a modern, event-driven model of concurrency based on the best practices of concurrent programming collectively known as the @webref{active-object, Active Object (Actor) model of computation}, which is inherently *safer* than the traditional "shared-state concurrency, mutual-exclusion, and blocking" approach based on a conventional Real-Time Operating System (RTOS);
|
||||||
|
|
||||||
|
- to provide an efficient, @ref tr "bidirectionally traceable" implementation of @webref{fsm#HSM, Hierarchical State Machines} for specifying the internal behavior of Active Objects;
|
||||||
|
|
||||||
- to provide a *higher-level of abstraction* closer to the problem domain than the "naked" RTOS threads;
|
- to provide a *higher-level of abstraction* closer to the problem domain than the "naked" RTOS threads;
|
||||||
|
|
||||||
@ -31,7 +26,10 @@ The main objectives of the QP/C++ RTEF are:
|
|||||||
|
|
||||||
|
|
||||||
@section over_special What's special about it?
|
@section over_special What's special about it?
|
||||||
The QP™/C++ Real-Time Embedded Framework (RTEF) is a unique offering on the embedded software market. It provides a modern, reusable **architecture** of embedded applications, which combines object-orientation with the particular model of concurrency, known as @webref{active-object, <strong>active objects</strong>} (actors). This architecture is generally **safer**, more responsive and easier to understand than "free threading" with a traditional Real-Time Operating System (RTOS). It also provides sufficiently high level of abstraction and the right abstractions to effectively apply modeling and code generation to deeply embedded systems.
|
The QP™/C++ Real-Time Embedded Framework (RTEF) provides a modern, reusable **architecture** of embedded applications, which combines the model of concurrency, known as @webref{active-object, <strong>active objects</strong>} (actors) with @webref{fsm#HSM, Hierarchical State Machines}. This architecture is generally **safer**, more responsive and easier to understand than "free threading" with a traditional Real-Time Operating System (RTOS). It also provides sufficiently high level of abstraction and the *right* abstractions to effectively apply modeling and code generation to deeply embedded systems.
|
||||||
|
|
||||||
|
@note
|
||||||
|
The most unique aspect of the QP™/C++ RTEF is its @ref over_eff "tiny size and efficiency" suitable for embedded microcontrollers, such as MCUs based on ARM Cortex-M.
|
||||||
|
|
||||||
|
|
||||||
@subsection over_oop Object Orientation
|
@subsection over_oop Object Orientation
|
||||||
@ -46,7 +44,7 @@ The behavior of active objects is specified in QP™/C++ by means of @webref
|
|||||||
The QP™/C++ framework can run on @ref exa_native "bare-metal single-chip microcontrollers", completely replacing a traditional RTOS. The framework contains a selection of built-in real-time kernels, such as the cooperative @ref srs_qv "QV kernel", the preemptive non-blocking @ref srs_qk "QK kernel", and the preemptive, dual-mode, blocking @ref srs_qxk "QXK kernel". The QXK kernel <span class="highlight">provides all the features you might expect from a traditional <strong>RTOS kernel</strong></span> and has been specifically designed for mixing event-driven active objects with traditional blocking code, such as commercial middleware (TCP/IP stacks, UDP stacks, embedded file systems, etc.) or legacy software. @ref ports_native "Native QP ports" and ready-to-use @ref exa_native "examples" are provided for major @ref exa_ref_mcu "CPU families".
|
The QP™/C++ framework can run on @ref exa_native "bare-metal single-chip microcontrollers", completely replacing a traditional RTOS. The framework contains a selection of built-in real-time kernels, such as the cooperative @ref srs_qv "QV kernel", the preemptive non-blocking @ref srs_qk "QK kernel", and the preemptive, dual-mode, blocking @ref srs_qxk "QXK kernel". The QXK kernel <span class="highlight">provides all the features you might expect from a traditional <strong>RTOS kernel</strong></span> and has been specifically designed for mixing event-driven active objects with traditional blocking code, such as commercial middleware (TCP/IP stacks, UDP stacks, embedded file systems, etc.) or legacy software. @ref ports_native "Native QP ports" and ready-to-use @ref exa_native "examples" are provided for major @ref exa_ref_mcu "CPU families".
|
||||||
|
|
||||||
|
|
||||||
@subsection over_eff Efficiency
|
@subsection over_eff Size and Efficiency
|
||||||
Even though QP™/C++ offers much higher level of abstraction than a traditional RTOS, it typically outperforms equivalent traditional RTOS offerings both in RAM/ROM footprint and in CPU efficiency. The specific measurements and results are reported in the following @webref{doc/AN_QP_Performance.pdf, Application Note: "QP Performance Tests and Results"}:
|
Even though QP™/C++ offers much higher level of abstraction than a traditional RTOS, it typically outperforms equivalent traditional RTOS offerings both in RAM/ROM footprint and in CPU efficiency. The specific measurements and results are reported in the following @webref{doc/AN_QP_Performance.pdf, Application Note: "QP Performance Tests and Results"}:
|
||||||
|
|
||||||
[![Application Note: "QP Performance Tests and Results"](an-qp_performance.png)](https://www.state-machine.com/doc/AN_QP_Performance.pdf)
|
[![Application Note: "QP Performance Tests and Results"](an-qp_performance.png)](https://www.state-machine.com/doc/AN_QP_Performance.pdf)
|
||||||
@ -57,7 +55,7 @@ The QP Framework is simple to get started, simple to use and simple to build. Th
|
|||||||
|
|
||||||
|
|
||||||
@subsection over_inter Interoperability
|
@subsection over_inter Interoperability
|
||||||
QP™/C++ can also work with many traditional @ref exa_rtos "RTOSes" and @ref exa_os "general-purpose OSes" (such as Linux and Windows).
|
QP™/C++ can also work with many traditional @ref exa_rtos "RTOSes" and @ref exa_os "general-purpose operating systems (GPOSes)" (such as Linux and Windows).
|
||||||
|
|
||||||
|
|
||||||
@subsection over_trace Traceability
|
@subsection over_trace Traceability
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
@set DOXHOME="C:\tools\doxygen\bin"
|
@set DOXHOME="C:\tools\doxygen\bin"
|
||||||
|
|
||||||
:: Generate Resource Standard Metrics for QP/C++ .............................
|
:: Generate Resource Standard Metrics for QP/C++ .............................
|
||||||
@set RCMHOME="C:\tools\MSquared\M2 RSM"
|
@set RCMHOME="C:\tools\MSquared\M2 RSM"
|
||||||
|
|
||||||
@set RSM_OUTPUT=metrics.dox
|
@set RSM_OUTPUT=metrics.dox
|
||||||
@ -58,11 +58,11 @@
|
|||||||
@echo @endcode >> %RSM_OUTPUT%
|
@echo @endcode >> %RSM_OUTPUT%
|
||||||
@echo */ >> %RSM_OUTPUT%
|
@echo */ >> %RSM_OUTPUT%
|
||||||
|
|
||||||
:: Generate Doxygen Documentation ...........................................
|
:: Generate Doxygen Documentation ...........................................
|
||||||
if "%1"=="-CHM" (
|
if "%1"=="-CHM" (
|
||||||
@echo Generating HTML...
|
@echo Generating HTML...
|
||||||
%DOXHOME%\doxygen.exe Doxyfile-CHM
|
%DOXHOME%\doxygen.exe Doxyfile-CHM
|
||||||
|
|
||||||
@echo Adding custom images...
|
@echo Adding custom images...
|
||||||
xcopy preview.js tmp\
|
xcopy preview.js tmp\
|
||||||
xcopy img tmp\img\
|
xcopy img tmp\img\
|
||||||
@ -70,7 +70,7 @@ if "%1"=="-CHM" (
|
|||||||
|
|
||||||
@echo Generating CHM...
|
@echo Generating CHM...
|
||||||
"C:\tools\HTML Help Workshop\hhc.exe" tmp\index.hhp
|
"C:\tools\HTML Help Workshop\hhc.exe" tmp\index.hhp
|
||||||
|
|
||||||
@echo.
|
@echo.
|
||||||
@echo Cleanup...
|
@echo Cleanup...
|
||||||
@rmdir /S /Q tmp
|
@rmdir /S /Q tmp
|
||||||
@ -80,7 +80,7 @@ if "%1"=="-CHM" (
|
|||||||
@echo.
|
@echo.
|
||||||
@echo Cleanup...
|
@echo Cleanup...
|
||||||
rmdir /S /Q C:\qp_lab\qpcpp\html
|
rmdir /S /Q C:\qp_lab\qpcpp\html
|
||||||
|
|
||||||
echo Adding custom images...
|
echo Adding custom images...
|
||||||
xcopy preview.js C:\qp_lab\qpcpp\html\
|
xcopy preview.js C:\qp_lab\qpcpp\html\
|
||||||
xcopy img C:\qp_lab\qpcpp\html\img\
|
xcopy img C:\qp_lab\qpcpp\html\img\
|
||||||
|
@ -28,42 +28,46 @@
|
|||||||
@echo usage:
|
@echo usage:
|
||||||
@echo make
|
@echo make
|
||||||
@echo make -CHM
|
@echo make -CHM
|
||||||
@echo make ...
|
@echo make -CERT
|
||||||
|
@echo make -LATEX
|
||||||
|
|
||||||
:: Doxygen tool (adjust to your system) ......................................
|
:: tools (adjust to your system)---------------------------------------------
|
||||||
|
:: Doxygen tool
|
||||||
@set DOXYGEN=doxygen
|
@set DOXYGEN=doxygen
|
||||||
|
|
||||||
:: HTML Help tool (needed only with the -CHM option, (adjust to your system) .
|
:: Simple complexity metrics tool (adjust to your system)
|
||||||
|
@set METRICS=lizard -m -L500 -a10 -C20 -V
|
||||||
|
|
||||||
|
:: HTML Help tool (needed only with the -CHM option) .
|
||||||
@set HHC="C:\tools\HTML Help Workshop\hhc.exe"
|
@set HHC="C:\tools\HTML Help Workshop\hhc.exe"
|
||||||
|
|
||||||
:: Simple complexity metrics tool (adjust to your system) ...................
|
:: QP directory .............................................................
|
||||||
@set LIZARD=lizard
|
@set QP=..
|
||||||
|
|
||||||
:: QP/C++ directory ..........................................................
|
:: Outut directories ........................................................
|
||||||
@set QPCPP=..
|
@set HTML_OUT=%QP%\html
|
||||||
|
IF "%1"=="-CERT" (
|
||||||
:: HTML outut directory ......................................................
|
@set HTML_OUT=%QP%\cert-pack
|
||||||
@set HTML_OUT=%QPCPP%\html
|
|
||||||
if "%1"=="-CERT" (
|
|
||||||
@set HTML_OUT=%QPCPP%\cert-pack
|
|
||||||
)
|
)
|
||||||
|
@set LATEX_OUT=%QP%\latex
|
||||||
|
|
||||||
:: Generate metrics.dox file...
|
:: Generate metrics.dox file-------------------------------------------------
|
||||||
@set METRICS_INP=%QPCPP%\include %QPCPP%\src -x %QPCPP%\src\qs\*
|
@set METRICS_INP=%QP%\include %QP%\src -x %QP%\src\qs\*
|
||||||
@set METRICS_OUT=metrics.dox
|
@set METRICS_OUT=metrics.dox
|
||||||
|
|
||||||
@echo /** @defgroup metrics Code Metrics> %METRICS_OUT%
|
@echo /** @defgroup metrics Code Metrics> %METRICS_OUT%
|
||||||
@echo.>> %METRICS_OUT%
|
@echo.>> %METRICS_OUT%
|
||||||
@echo @code{.cpp}>> %METRICS_OUT%
|
@echo @code{.cpp}>> %METRICS_OUT%
|
||||||
@echo QP/C++ Code Metrics >> %METRICS_OUT%
|
@echo Code Metrics >> %METRICS_OUT%
|
||||||
|
|
||||||
%LIZARD% -m -L500 -a10 -C20 -V %METRICS_INP% >> %METRICS_OUT%
|
%METRICS% %METRICS_INP% >> %METRICS_OUT%
|
||||||
|
|
||||||
@echo @endcode>> %METRICS_OUT%
|
@echo @endcode>> %METRICS_OUT%
|
||||||
@echo */ >> %METRICS_OUT%
|
@echo */>> %METRICS_OUT%
|
||||||
|
|
||||||
:: Generate Doxygen Documentation...
|
:: Generate Doxygen Documentation -------------------------------------------
|
||||||
if "%1"=="-CHM" (
|
if "%1"=="-CHM" (
|
||||||
|
|
||||||
@echo Generating HTML...
|
@echo Generating HTML...
|
||||||
%DOXYGEN% Doxyfile-CHM
|
%DOXYGEN% Doxyfile-CHM
|
||||||
|
|
||||||
@ -79,7 +83,24 @@ if "%1"=="-CHM" (
|
|||||||
@rmdir /S /Q tmp
|
@rmdir /S /Q tmp
|
||||||
@echo CHM file generated
|
@echo CHM file generated
|
||||||
|
|
||||||
|
) else if "%1"=="-LATEX" (
|
||||||
|
|
||||||
|
@echo.
|
||||||
|
@echo Cleanup...
|
||||||
|
rmdir /S /Q %LATEX_OUT%
|
||||||
|
|
||||||
|
@echo Generating LATEX...
|
||||||
|
%DOXYGEN% Doxyfile-LATEX
|
||||||
|
|
||||||
|
@echo Adding custom files...
|
||||||
|
xcopy img %LATEX_OUT%\img\
|
||||||
|
|
||||||
|
@echo TODO...
|
||||||
|
@echo cd ..\latex
|
||||||
|
@echo make.bat
|
||||||
|
|
||||||
) else (
|
) else (
|
||||||
|
|
||||||
@echo.
|
@echo.
|
||||||
@echo Cleanup...
|
@echo Cleanup...
|
||||||
rmdir /S /Q %HTML_OUT%
|
rmdir /S /Q %HTML_OUT%
|
||||||
@ -87,7 +108,7 @@ if "%1"=="-CHM" (
|
|||||||
@echo Generating HTML...
|
@echo Generating HTML...
|
||||||
%DOXYGEN% Doxyfile%1
|
%DOXYGEN% Doxyfile%1
|
||||||
|
|
||||||
@echo Adding custom images...
|
@echo Adding custom files...
|
||||||
xcopy img %HTML_OUT%\img\
|
xcopy img %HTML_OUT%\img\
|
||||||
xcopy /Y ..\..\ql-doxygen\jquery.js %HTML_OUT%
|
xcopy /Y ..\..\ql-doxygen\jquery.js %HTML_OUT%
|
||||||
rem @qclean %HTML_OUT%
|
rem @qclean %HTML_OUT%
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @defgroup metrics Code Metrics
|
/** @defgroup metrics Code Metrics
|
||||||
|
|
||||||
@code{.cpp}
|
@code{.cpp}
|
||||||
QP/C++ Code Metrics
|
Code Metrics
|
||||||
================================================
|
================================================
|
||||||
NLOC CCN token PARAM length location
|
NLOC CCN token PARAM length location
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
@ -87,7 +87,7 @@ C# File Extensions : cs
|
|||||||
Java File Extensions : java
|
Java File Extensions : java
|
||||||
# Other files are not officially supported by RSM
|
# Other files are not officially supported by RSM
|
||||||
# but lines will be counted as LOC
|
# but lines will be counted as LOC
|
||||||
Other File Extensions :
|
Other File Extensions :
|
||||||
|
|
||||||
# When analyzing *.h files, treat header files as
|
# When analyzing *.h files, treat header files as
|
||||||
# both C and C++. If you use separate extensions for C++ and
|
# both C and C++. If you use separate extensions for C++ and
|
||||||
@ -136,7 +136,7 @@ Wrap long names in reports : Yes
|
|||||||
# are to be created. The path must be a location with write
|
# are to be created. The path must be a location with write
|
||||||
# permissions. RSM will create work files in the current
|
# permissions. RSM will create work files in the current
|
||||||
# directory if no path is specified.
|
# directory if no path is specified.
|
||||||
Work file location path :
|
Work file location path :
|
||||||
|
|
||||||
# When processing code line differentials, ignore
|
# When processing code line differentials, ignore
|
||||||
# blank line changes in the code.
|
# blank line changes in the code.
|
||||||
@ -261,7 +261,7 @@ Maximum Function Name Length : 32
|
|||||||
# Emit a quality notice when a file does not contain
|
# Emit a quality notice when a file does not contain
|
||||||
# the specified key string.
|
# the specified key string.
|
||||||
Quality Notice 21 : No
|
Quality Notice 21 : No
|
||||||
RSM KEY String :
|
RSM KEY String :
|
||||||
|
|
||||||
# RSM Quality Notices For Stability and Maintainability ################
|
# RSM Quality Notices For Stability and Maintainability ################
|
||||||
|
|
||||||
@ -492,13 +492,13 @@ Min. Class/Struct LOC content analysis : 10
|
|||||||
# or interface white space percentage is less than
|
# or interface white space percentage is less than
|
||||||
# the specified minimum.
|
# the specified minimum.
|
||||||
Quality Notice 16 : Yes
|
Quality Notice 16 : Yes
|
||||||
Minimum Function Whitespace Percent : 10.00
|
Minimum Function Whitespace Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 17
|
# Quality Notice No. 17
|
||||||
# Emit a quality notice when function comment line
|
# Emit a quality notice when function comment line
|
||||||
# percentage is less than the specified minimum.
|
# percentage is less than the specified minimum.
|
||||||
Quality Notice 17 : No
|
Quality Notice 17 : No
|
||||||
Minimum Function Comment Line Percent : 10.00
|
Minimum Function Comment Line Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 18
|
# Quality Notice No. 18
|
||||||
# Emit a quality notice when the eLOC within a
|
# Emit a quality notice when the eLOC within a
|
||||||
@ -517,14 +517,14 @@ Minimum Function lLOC : 0
|
|||||||
# Emit a quality notice when class/struct comment line
|
# Emit a quality notice when class/struct comment line
|
||||||
# percentage is less than the specified minimum.
|
# percentage is less than the specified minimum.
|
||||||
Quality Notice 31 : Yes
|
Quality Notice 31 : Yes
|
||||||
Minimum Class/Struct Comment Percent : 10.00
|
Minimum Class/Struct Comment Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 46
|
# Quality Notice No. 46
|
||||||
# Emit a quality notice when function, struct, class
|
# Emit a quality notice when function, struct, class
|
||||||
# or interface blank line percentage is less than the
|
# or interface blank line percentage is less than the
|
||||||
# specified minimum.
|
# specified minimum.
|
||||||
Quality Notice 46 : No
|
Quality Notice 46 : No
|
||||||
Minimum Function Blank Line Percent : 10.00
|
Minimum Function Blank Line Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 51
|
# Quality Notice No. 51
|
||||||
# Emit a quality notice when a function
|
# Emit a quality notice when a function
|
||||||
@ -553,20 +553,20 @@ Quality Notice 54 : Yes
|
|||||||
# percentage is less than the specified minimum.
|
# percentage is less than the specified minimum.
|
||||||
# Consider setting Notice 30 to No.
|
# Consider setting Notice 30 to No.
|
||||||
Quality Notice 19 : Yes
|
Quality Notice 19 : Yes
|
||||||
Minimum File Whitespace Percent : 10.00
|
Minimum File Whitespace Percent : 10.00
|
||||||
A TAB is equivalent to n space : 2
|
A TAB is equivalent to n space : 2
|
||||||
|
|
||||||
# Quality Notice No. 20
|
# Quality Notice No. 20
|
||||||
# Emit a quality notice when file comment line
|
# Emit a quality notice when file comment line
|
||||||
# percentage is less than the specified minimum.
|
# percentage is less than the specified minimum.
|
||||||
Quality Notice 20 : Yes
|
Quality Notice 20 : Yes
|
||||||
Minimum File Comment Line Percent : 10.00
|
Minimum File Comment Line Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 47
|
# Quality Notice No. 47
|
||||||
# Emit a quality notice when file blank line
|
# Emit a quality notice when file blank line
|
||||||
# percentage is less than the specified minimum.
|
# percentage is less than the specified minimum.
|
||||||
Quality Notice 47 : No
|
Quality Notice 47 : No
|
||||||
Minimum File Blank Line Percent : 10.00
|
Minimum File Blank Line Percent : 10.00
|
||||||
|
|
||||||
# Quality Notice No. 57
|
# Quality Notice No. 57
|
||||||
# Emit a quality notice when RSM skip lines conditions
|
# Emit a quality notice when RSM skip lines conditions
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
Binary file not shown.
Binary file not shown.
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
Binary file not shown.
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -35,5 +35,5 @@ place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
|||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place in RAM_region { readwrite,
|
place in RAM_region { readwrite,
|
||||||
block CSTACK, block HEAP };
|
block CSTACK, block HEAP };
|
||||||
place in CRP_region { section .crp };
|
place in CRP_region { section .crp };
|
||||||
place in RAM1_region { section .sram };
|
place in RAM1_region { section .sram };
|
@ -35,5 +35,5 @@ place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
|||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place in RAM_region { readwrite,
|
place in RAM_region { readwrite,
|
||||||
block CSTACK, block HEAP };
|
block CSTACK, block HEAP };
|
||||||
place in CRP_region { section .crp };
|
place in CRP_region { section .crp };
|
||||||
place in RAM1_region { section .sram };
|
place in RAM1_region { section .sram };
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -3,11 +3,11 @@
|
|||||||
+-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+
|
+-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+
|
||||||
|l_SysTick_Handl| | Table::inst | |Philo::inst[0] | |Philo::inst[1] | |Philo::inst[2] | |Philo::inst[3] | |Philo::inst[4] |
|
|l_SysTick_Handl| | Table::inst | |Philo::inst[0] | |Philo::inst[1] | |Philo::inst[2] | |Philo::inst[3] | |Philo::inst[4] |
|
||||||
+-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+
|
+-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+
|
||||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0000042896 *--SERVE_SIG------->| | | | | |
|
0000042896 *--SERVE_SIG------->| | | | | |
|
||||||
0001070723 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
0001070723 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0001075362 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
0001075362 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
||||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0001079975 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
0001079975 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0001080774 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
0001080774 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||||
0001081583 | *--EAT_SIG----------+-------------------+------------------>| | |
|
0001081583 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||||
@ -18,7 +18,7 @@
|
|||||||
0001762885 *--TIMEOUT_SIG------+------------------>| | | | |
|
0001762885 *--TIMEOUT_SIG------+------------------>| | | | |
|
||||||
0001767416 | |<------HUNGRY_SIG--* | | | |
|
0001767416 | |<------HUNGRY_SIG--* | | | |
|
||||||
0001772368 | | <Philo::hungry> | | | |
|
0001772368 | | <Philo::hungry> | | | |
|
||||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0002098016 *--PAUSE_SIG------->| | | | | |
|
0002098016 *--PAUSE_SIG------->| | | | | |
|
||||||
0002101049 | <Table::paused> | | | | |
|
0002101049 | <Table::paused> | | | | |
|
||||||
0002140275 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
0002140275 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
||||||
@ -31,21 +31,21 @@
|
|||||||
0003109447 | |<------------------+-------------------+-------------------+-------HUNGRY_SIG--* |
|
0003109447 | |<------------------+-------------------+-------------------+-------HUNGRY_SIG--* |
|
||||||
0003114370 | | | | | <Philo::hungry> |
|
0003114370 | | | | | <Philo::hungry> |
|
||||||
0005013277 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
0005013277 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0005016745 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
0005016745 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||||
0005017655 | |<------------------+-------------------+-------------------+-------------------+---------DONE_SIG--*
|
0005017655 | |<------------------+-------------------+-------------------+-------------------+---------DONE_SIG--*
|
||||||
0005025076 | | | | | | <Philo::thinking>
|
0005025076 | | | | | | <Philo::thinking>
|
||||||
0007760487 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
0007760487 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0007764998 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
0007764998 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
||||||
0007769921 | | | | | | <Philo::hungry>
|
0007769921 | | | | | | <Philo::hungry>
|
||||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0011828417 *--SERVE_SIG------->| | | | | |
|
0011828417 *--SERVE_SIG------->| | | | | |
|
||||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0011833291 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
0011833291 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0011834089 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
0011834089 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||||
0011834887 | *--EAT_SIG----------+-------------------+------------------>| | |
|
0011834887 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||||
0011835685 | *--EAT_SIG----------+------------------>| | | |
|
0011835685 | *--EAT_SIG----------+------------------>| | | |
|
||||||
0011836483 | *--EAT_SIG--------->| | | | |
|
0011836483 | *--EAT_SIG--------->| | | | |
|
||||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0011840421 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
0011840421 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0011841199 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
0011841199 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||||
0011841977 | *--EAT_SIG----------+-------------------+------------------>| | |
|
0011841977 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||||
@ -55,9 +55,9 @@
|
|||||||
0011864225 | | | | <Philo::eating> | |
|
0011864225 | | | | <Philo::eating> | |
|
||||||
0011874191 | | <Philo::eating> | | | |
|
0011874191 | | <Philo::eating> | | | |
|
||||||
0015268086 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
0015268086 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
||||||
0015271590 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . .
|
0015271590 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . .
|
||||||
0015272500 | |<------------------+-------------------+---------DONE_SIG--* | |
|
0015272500 | |<------------------+-------------------+---------DONE_SIG--* | |
|
||||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0015277545 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
0015277545 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0015278343 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
0015278343 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||||
0015279141 | *--EAT_SIG----------+-------------------+------------------>| | |
|
0015279141 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||||
@ -66,9 +66,9 @@
|
|||||||
0015289641 | | | | | <Philo::eating> |
|
0015289641 | | | | | <Philo::eating> |
|
||||||
0015294035 | | | | <Philo::thinking> | |
|
0015294035 | | | | <Philo::thinking> | |
|
||||||
0015540732 *--TIMEOUT_SIG------+------------------>| | | | |
|
0015540732 *--TIMEOUT_SIG------+------------------>| | | | |
|
||||||
0015544272 . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0015544272 . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0015545182 | |<--------DONE_SIG--* | | | |
|
0015545182 | |<--------DONE_SIG--* | | | |
|
||||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||||
0015550227 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
0015550227 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||||
0015551025 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
0015551025 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||||
0015551823 | *--EAT_SIG----------+-------------------+------------------>| | |
|
0015551823 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
+-------+-------+ +-------+-------+ +-------+-------+
|
+-------+-------+ +-------+-------+ +-------+-------+
|
||||||
|l_SysTick_Handl| | Table::inst | | ? |
|
|l_SysTick_Handl| | Table::inst | | ? |
|
||||||
+-------+-------+ +-------+-------+ +-------+-------+
|
+-------+-------+ +-------+-------+ +-------+-------+
|
||||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||||
0000042896 *--SERVE_SIG------->| /
|
0000042896 *--SERVE_SIG------->| /
|
||||||
0001070723 *--TIMEOUT_SIG------+------------------>/
|
0001070723 *--TIMEOUT_SIG------+------------------>/
|
||||||
0001075362 | |<------HUNGRY_SIG--*
|
0001075362 | |<------HUNGRY_SIG--*
|
||||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||||
0001079975 | *--EAT_SIG--------->/
|
0001079975 | *--EAT_SIG--------->/
|
||||||
0001080774 | *--EAT_SIG--------->/
|
0001080774 | *--EAT_SIG--------->/
|
||||||
0001081583 | *--EAT_SIG--------->/
|
0001081583 | *--EAT_SIG--------->/
|
||||||
@ -15,7 +15,7 @@
|
|||||||
0001083181 | *--EAT_SIG--------->/
|
0001083181 | *--EAT_SIG--------->/
|
||||||
0001762885 *--TIMEOUT_SIG------+------------------>/
|
0001762885 *--TIMEOUT_SIG------+------------------>/
|
||||||
0001767416 | |<------HUNGRY_SIG--*
|
0001767416 | |<------HUNGRY_SIG--*
|
||||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . / . . .
|
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . / . . .
|
||||||
0002098016 *--PAUSE_SIG------->| /
|
0002098016 *--PAUSE_SIG------->| /
|
||||||
0002101049 | <Table::paused> /
|
0002101049 | <Table::paused> /
|
||||||
0002140275 *--TIMEOUT_SIG------+------------------>/
|
0002140275 *--TIMEOUT_SIG------+------------------>/
|
||||||
@ -25,19 +25,19 @@
|
|||||||
0003104906 *--TIMEOUT_SIG------+------------------>/
|
0003104906 *--TIMEOUT_SIG------+------------------>/
|
||||||
0003109447 | |<------HUNGRY_SIG--*
|
0003109447 | |<------HUNGRY_SIG--*
|
||||||
0005013277 *--TIMEOUT_SIG------+------------------>/
|
0005013277 *--TIMEOUT_SIG------+------------------>/
|
||||||
0005016745 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
0005016745 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||||
0005017655 | |<--------DONE_SIG--*
|
0005017655 | |<--------DONE_SIG--*
|
||||||
0007760487 *--TIMEOUT_SIG------+------------------>/
|
0007760487 *--TIMEOUT_SIG------+------------------>/
|
||||||
0007764998 | |<------HUNGRY_SIG--*
|
0007764998 | |<------HUNGRY_SIG--*
|
||||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||||
0011828417 *--SERVE_SIG------->| /
|
0011828417 *--SERVE_SIG------->| /
|
||||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||||
0011833291 | *--EAT_SIG--------->/
|
0011833291 | *--EAT_SIG--------->/
|
||||||
0011834089 | *--EAT_SIG--------->/
|
0011834089 | *--EAT_SIG--------->/
|
||||||
0011834887 | *--EAT_SIG--------->/
|
0011834887 | *--EAT_SIG--------->/
|
||||||
0011835685 | *--EAT_SIG--------->/
|
0011835685 | *--EAT_SIG--------->/
|
||||||
0011836483 | *--EAT_SIG--------->/
|
0011836483 | *--EAT_SIG--------->/
|
||||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||||
0011840421 | *--EAT_SIG--------->/
|
0011840421 | *--EAT_SIG--------->/
|
||||||
0011841199 | *--EAT_SIG--------->/
|
0011841199 | *--EAT_SIG--------->/
|
||||||
0011841977 | *--EAT_SIG--------->/
|
0011841977 | *--EAT_SIG--------->/
|
||||||
@ -45,18 +45,18 @@
|
|||||||
0011843533 | *--EAT_SIG--------->/
|
0011843533 | *--EAT_SIG--------->/
|
||||||
0011846001 | <Table::serving> /
|
0011846001 | <Table::serving> /
|
||||||
0015268086 *--TIMEOUT_SIG------+------------------>/
|
0015268086 *--TIMEOUT_SIG------+------------------>/
|
||||||
0015271590 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
0015271590 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||||
0015272500 | |<--------DONE_SIG--*
|
0015272500 | |<--------DONE_SIG--*
|
||||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||||
0015277545 | *--EAT_SIG--------->/
|
0015277545 | *--EAT_SIG--------->/
|
||||||
0015278343 | *--EAT_SIG--------->/
|
0015278343 | *--EAT_SIG--------->/
|
||||||
0015279141 | *--EAT_SIG--------->/
|
0015279141 | *--EAT_SIG--------->/
|
||||||
0015279939 | *--EAT_SIG--------->/
|
0015279939 | *--EAT_SIG--------->/
|
||||||
0015280737 | *--EAT_SIG--------->/
|
0015280737 | *--EAT_SIG--------->/
|
||||||
0015540732 *--TIMEOUT_SIG------+------------------>/
|
0015540732 *--TIMEOUT_SIG------+------------------>/
|
||||||
0015544272 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
0015544272 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||||
0015545182 | |<--------DONE_SIG--*
|
0015545182 | |<--------DONE_SIG--*
|
||||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||||
0015550227 | *--EAT_SIG--------->/
|
0015550227 | *--EAT_SIG--------->/
|
||||||
0015551025 | *--EAT_SIG--------->/
|
0015551025 | *--EAT_SIG--------->/
|
||||||
0015551823 | *--EAT_SIG--------->/
|
0015551823 | *--EAT_SIG--------->/
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,9 +1,9 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||||
::
|
::
|
||||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ setlocal
|
|||||||
|
|
||||||
::----------------------------------------------------------------------------
|
::----------------------------------------------------------------------------
|
||||||
:: NOTE: Adjust the following symbol to the location of the
|
:: NOTE: Adjust the following symbol to the location of the
|
||||||
:: STLINK utility on your machine
|
:: STLINK utility on your machine
|
||||||
::
|
::
|
||||||
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||||
::
|
::
|
||||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ setlocal
|
|||||||
|
|
||||||
::----------------------------------------------------------------------------
|
::----------------------------------------------------------------------------
|
||||||
:: NOTE: Adjust the following symbol to the location of the
|
:: NOTE: Adjust the following symbol to the location of the
|
||||||
:: STLINK utility on your machine
|
:: STLINK utility on your machine
|
||||||
::
|
::
|
||||||
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||||
::
|
::
|
||||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ setlocal
|
|||||||
|
|
||||||
::----------------------------------------------------------------------------
|
::----------------------------------------------------------------------------
|
||||||
:: NOTE: Adjust the following symbol to the location of the
|
:: NOTE: Adjust the following symbol to the location of the
|
||||||
:: STLINK utility on your machine
|
:: STLINK utility on your machine
|
||||||
::
|
::
|
||||||
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
set STLINK="C:\tools\ST\ST-LINK\ST-LINK Utility\ST-LINK_CLI.exe"
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,13 +1,13 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||||
::
|
::
|
||||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||||
:: https://www.segger.com/j-link-commander.html
|
:: https://www.segger.com/j-link-commander.html
|
||||||
::
|
::
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
@echo Load a given binary file to the flash of EFM32-SLSTK3401A
|
||||||
@echo usage: flash bin-file
|
@echo usage: flash bin-file
|
||||||
@echo example: flash dbg\blinky-qk.bin
|
@echo example: flash dbg\blinky-qk.bin
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ setlocal
|
|||||||
::
|
::
|
||||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||||
if not exist "%JLINK%\JLink.exe" (
|
if not exist "%JLINK%\JLink.exe" (
|
||||||
@echo The JLink tool not found. Please adjust flash.bat
|
@echo The JLink tool not found. Please adjust flash.bat
|
||||||
@goto end
|
@goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
Binary file not shown.
Binary file not shown.
@ -58,9 +58,9 @@ Additional information:
|
|||||||
#define _THUMB_CODE .code 16
|
#define _THUMB_CODE .code 16
|
||||||
#define _WORD .word
|
#define _WORD .word
|
||||||
#define _SECTION(Sect, Type, AlignExp) .section Sect ##, "ax"
|
#define _SECTION(Sect, Type, AlignExp) .section Sect ##, "ax"
|
||||||
#define _ALIGN(Exp) .align Exp
|
#define _ALIGN(Exp) .align Exp
|
||||||
#define _PLACE_LITS .ltorg
|
#define _PLACE_LITS .ltorg
|
||||||
#define _DATA_SECT_START
|
#define _DATA_SECT_START
|
||||||
#define _C_STARTUP _start
|
#define _C_STARTUP _start
|
||||||
#define _STACK_END __stack_end__
|
#define _STACK_END __stack_end__
|
||||||
#define _RAMFUNC
|
#define _RAMFUNC
|
||||||
@ -80,7 +80,7 @@ Additional information:
|
|||||||
#define _THUMB_CODE THUMB
|
#define _THUMB_CODE THUMB
|
||||||
#define _WORD DCD
|
#define _WORD DCD
|
||||||
#define _SECTION(Sect, Type, AlignExp) SECTION Sect ## : ## Type ## :REORDER:NOROOT ## (AlignExp)
|
#define _SECTION(Sect, Type, AlignExp) SECTION Sect ## : ## Type ## :REORDER:NOROOT ## (AlignExp)
|
||||||
#define _ALIGN(Exp) alignrom Exp
|
#define _ALIGN(Exp) alignrom Exp
|
||||||
#define _PLACE_LITS
|
#define _PLACE_LITS
|
||||||
#define _DATA_SECT_START DATA
|
#define _DATA_SECT_START DATA
|
||||||
#define _C_STARTUP __iar_program_start
|
#define _C_STARTUP __iar_program_start
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program to the flash of EK-LM3S6965
|
:: Batch file to program to the flash of EK-LM3S6965
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ setlocal
|
|||||||
::----------------------------------------------------------------------------
|
::----------------------------------------------------------------------------
|
||||||
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
||||||
:: be found on the PATH. You might need to adjust this symbol to the
|
:: be found on the PATH. You might need to adjust this symbol to the
|
||||||
:: location of the LMFlash utility on your machine
|
:: location of the LMFlash utility on your machine
|
||||||
::
|
::
|
||||||
set LMFLASH=LMFlash.exe
|
set LMFLASH=LMFlash.exe
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program to the flash of EK-LM3S6965
|
:: Batch file to program to the flash of EK-LM3S6965
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ setlocal
|
|||||||
::----------------------------------------------------------------------------
|
::----------------------------------------------------------------------------
|
||||||
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
||||||
:: be found on the PATH. You might need to adjust this symbol to the
|
:: be found on the PATH. You might need to adjust this symbol to the
|
||||||
:: location of the LMFlash utility on your machine
|
:: location of the LMFlash utility on your machine
|
||||||
::
|
::
|
||||||
set LMFLASH=LMFlash.exe
|
set LMFLASH=LMFlash.exe
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -27,5 +27,5 @@ do not initialize { section .noinit };
|
|||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
|
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
@ -1,8 +1,8 @@
|
|||||||
::============================================================================
|
::============================================================================
|
||||||
:: Batch file to program the flash of EK-TM4C123GXL
|
:: Batch file to program the flash of EK-TM4C123GXL
|
||||||
::
|
::
|
||||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||||
::
|
::
|
||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
|
|
||||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
|||||||
|
|
||||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
place in ROM_region { readonly };
|
place in ROM_region { readonly };
|
||||||
place at start of RAM_region {block CSTACK };
|
place at start of RAM_region {block CSTACK };
|
||||||
place in RAM_region { readwrite, block HEAP };
|
place in RAM_region { readwrite, block HEAP };
|
Binary file not shown.
Binary file not shown.
@ -1,19 +1,5 @@
|
|||||||
//$file${include::qstamp.cpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
// QP/C++ Real-Time Embedded Framework (RTEF)
|
||||||
//
|
// Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
|
||||||
// Model: qpcpp.qm
|
|
||||||
// File: ${include::qstamp.cpp}
|
|
||||||
//
|
|
||||||
// This code has been generated by QM 5.2.2 <www.state-machine.com/qm>.
|
|
||||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
|
||||||
//
|
|
||||||
// This code is covered by the following QP license:
|
|
||||||
// License # : LicenseRef-QL-dual
|
|
||||||
// Issued to : Any user of the QP/C++ real-time embedded framework
|
|
||||||
// Framework(s) : qpcpp
|
|
||||||
// Support ends : 2023-12-31
|
|
||||||
// License scope:
|
|
||||||
//
|
|
||||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
|
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
|
||||||
//
|
//
|
||||||
@ -32,25 +18,17 @@
|
|||||||
// Plagiarizing this software to sidestep the license obligations is illegal.
|
// Plagiarizing this software to sidestep the license obligations is illegal.
|
||||||
//
|
//
|
||||||
// Contact information:
|
// Contact information:
|
||||||
// <www.state-machine.com/licensing>
|
// <www.state-machine.com>
|
||||||
// <info@state-machine.com>
|
// <info@state-machine.com>
|
||||||
//
|
|
||||||
//$endhead${include::qstamp.cpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
//! @file
|
//! @file
|
||||||
//! @brief Application build time-stamp
|
//! @brief Application build time-stamp
|
||||||
//! @note
|
//! @deprecated
|
||||||
//! This module needs to be re-compiled in every new software build. To achive
|
//! File `include/qstamp.cpp` is kept only for backwards compatibility.
|
||||||
//! this, it is recommended to delete the object file (qstamp.o or qstamp.obj)
|
//! Instead, please use file `src/qs/qstamp.cpp`.
|
||||||
//! in the build directory before each build. (Most development tools allow
|
|
||||||
//! you to specify a pre-build action, which is the ideal place to delete
|
|
||||||
//! the qstamp object file.)
|
|
||||||
|
|
||||||
#include "qstamp.hpp"
|
#include "qstamp.hpp"
|
||||||
|
|
||||||
namespace QP {
|
namespace QP {
|
||||||
//! the calendar date of the last translation of the form: "Mmm dd yyyy"
|
|
||||||
char const BUILD_DATE[12] = __DATE__;
|
char const BUILD_DATE[12] = __DATE__;
|
||||||
|
|
||||||
//! the time of the last translation of the form: "hh:mm:ss"
|
|
||||||
char const BUILD_TIME[9] = __TIME__;
|
char const BUILD_TIME[9] = __TIME__;
|
||||||
} // namespace QP
|
} // namespace QP
|
||||||
|
@ -55,7 +55,7 @@ if "%1"=="16bit" (
|
|||||||
@del *.log
|
@del *.log
|
||||||
|
|
||||||
:: linting -------------------------------------------------------------------
|
:: linting -------------------------------------------------------------------
|
||||||
%PCLP% -os(lint_qf.log) %LINTFLAGS% -iqv ..\..\src\qf\*.cpp
|
%PCLP% -os(lint_qf.log) %LINTFLAGS% -iqv ..\..\src\qf\*.cpp
|
||||||
|
|
||||||
%PCLP% -os(lint_qv.log) %LINTFLAGS% -iqv ..\..\src\qv\*.cpp
|
%PCLP% -os(lint_qv.log) %LINTFLAGS% -iqv ..\..\src\qv\*.cpp
|
||||||
|
|
||||||
|
42
qpcpp.qm
42
qpcpp.qm
@ -13388,27 +13388,6 @@ extern char const BUILD_TIME[9];
|
|||||||
|
|
||||||
#endif // QP_INC_QSTAMP_HPP_</text>
|
#endif // QP_INC_QSTAMP_HPP_</text>
|
||||||
</file>
|
</file>
|
||||||
<!--${include::qstamp.cpp}-->
|
|
||||||
<file name="qstamp.cpp">
|
|
||||||
<text>//! @file
|
|
||||||
//! @brief Application build time-stamp
|
|
||||||
//! @note
|
|
||||||
//! This module needs to be re-compiled in every new software build. To achive
|
|
||||||
//! this, it is recommended to delete the object file (qstamp.o or qstamp.obj)
|
|
||||||
//! in the build directory before each build. (Most development tools allow
|
|
||||||
//! you to specify a pre-build action, which is the ideal place to delete
|
|
||||||
//! the qstamp object file.)
|
|
||||||
|
|
||||||
#include "qstamp.hpp"
|
|
||||||
|
|
||||||
namespace QP {
|
|
||||||
//! the calendar date of the last translation of the form: "Mmm dd yyyy"
|
|
||||||
char const BUILD_DATE[12] = __DATE__;
|
|
||||||
|
|
||||||
//! the time of the last translation of the form: "hh:mm:ss"
|
|
||||||
char const BUILD_TIME[9] = __TIME__;
|
|
||||||
} // namespace QP</text>
|
|
||||||
</file>
|
|
||||||
</directory>
|
</directory>
|
||||||
<!--${src}-->
|
<!--${src}-->
|
||||||
<directory name="src">
|
<directory name="src">
|
||||||
@ -14819,6 +14798,27 @@ $define ${QUTest-stub}
|
|||||||
|
|
||||||
#endif // def Q_UTEST</text>
|
#endif // def Q_UTEST</text>
|
||||||
</file>
|
</file>
|
||||||
|
<!--${src::qs::qstamp.cpp}-->
|
||||||
|
<file name="qstamp.cpp">
|
||||||
|
<text>//! @file
|
||||||
|
//! @brief Application build time-stamp
|
||||||
|
//! @note
|
||||||
|
//! This module needs to be re-compiled in every new software build. To achive
|
||||||
|
//! this, it is recommended to delete the object file (qstamp.o or qstamp.obj)
|
||||||
|
//! in the build directory before each build. (Most development tools allow
|
||||||
|
//! you to specify a pre-build action, which is the ideal place to delete
|
||||||
|
//! the qstamp object file.)
|
||||||
|
|
||||||
|
#include "qstamp.hpp"
|
||||||
|
|
||||||
|
namespace QP {
|
||||||
|
//! the calendar date of the last translation of the form: "Mmm dd yyyy"
|
||||||
|
char const BUILD_DATE[12] = __DATE__;
|
||||||
|
|
||||||
|
//! the time of the last translation of the form: "hh:mm:ss"
|
||||||
|
char const BUILD_TIME[9] = __TIME__;
|
||||||
|
} // namespace QP</text>
|
||||||
|
</file>
|
||||||
</directory>
|
</directory>
|
||||||
</directory>
|
</directory>
|
||||||
</model>
|
</model>
|
||||||
|
56
src/qs/qstamp.cpp
Normal file
56
src/qs/qstamp.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
//$file${src::qs::qstamp.cpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||||
|
//
|
||||||
|
// Model: qpcpp.qm
|
||||||
|
// File: ${src::qs::qstamp.cpp}
|
||||||
|
//
|
||||||
|
// This code has been generated by QM 5.2.2 <www.state-machine.com/qm>.
|
||||||
|
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||||
|
//
|
||||||
|
// This code is covered by the following QP license:
|
||||||
|
// License # : LicenseRef-QL-dual
|
||||||
|
// Issued to : Any user of the QP/C++ real-time embedded framework
|
||||||
|
// Framework(s) : qpcpp
|
||||||
|
// Support ends : 2023-12-31
|
||||||
|
// License scope:
|
||||||
|
//
|
||||||
|
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
|
||||||
|
//
|
||||||
|
// This software is dual-licensed under the terms of the open source GNU
|
||||||
|
// General Public License version 3 (or any later version), or alternatively,
|
||||||
|
// under the terms of one of the closed source Quantum Leaps commercial
|
||||||
|
// licenses.
|
||||||
|
//
|
||||||
|
// The terms of the open source GNU General Public License version 3
|
||||||
|
// can be found at: <www.gnu.org/licenses/gpl-3.0>
|
||||||
|
//
|
||||||
|
// The terms of the closed source Quantum Leaps commercial licenses
|
||||||
|
// can be found at: <www.state-machine.com/licensing>
|
||||||
|
//
|
||||||
|
// Redistributions in source code must retain this top-level comment block.
|
||||||
|
// Plagiarizing this software to sidestep the license obligations is illegal.
|
||||||
|
//
|
||||||
|
// Contact information:
|
||||||
|
// <www.state-machine.com/licensing>
|
||||||
|
// <info@state-machine.com>
|
||||||
|
//
|
||||||
|
//$endhead${src::qs::qstamp.cpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
//! @file
|
||||||
|
//! @brief Application build time-stamp
|
||||||
|
//! @note
|
||||||
|
//! This module needs to be re-compiled in every new software build. To achive
|
||||||
|
//! this, it is recommended to delete the object file (qstamp.o or qstamp.obj)
|
||||||
|
//! in the build directory before each build. (Most development tools allow
|
||||||
|
//! you to specify a pre-build action, which is the ideal place to delete
|
||||||
|
//! the qstamp object file.)
|
||||||
|
|
||||||
|
#include "qstamp.hpp"
|
||||||
|
|
||||||
|
namespace QP {
|
||||||
|
//! the calendar date of the last translation of the form: "Mmm dd yyyy"
|
||||||
|
char const BUILD_DATE[12] = __DATE__;
|
||||||
|
|
||||||
|
//! the time of the last translation of the form: "hh:mm:ss"
|
||||||
|
char const BUILD_TIME[9] = __TIME__;
|
||||||
|
} // namespace QP
|
Loading…
x
Reference in New Issue
Block a user