mirror of
https://github.com/QuantumLeaps/qpcpp.git
synced 2025-01-14 05:42:57 +08:00
Revert "7.1.2"
This reverts commit fd0f76334cf4ec45e4aea18feed803d2f780e4a8.
This commit is contained in:
parent
fd0f76334c
commit
cc4323b27f
1
3rd_party
Submodule
1
3rd_party
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit cc0333938b9618b5a25394ebd81c8f235f5ff192
|
15
README.md
15
README.md
@ -3,15 +3,12 @@
|
||||
# What's New?
|
||||
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 GitHub,
|
||||
it is highly recommened that you clone this repo like that:
|
||||
|
||||
```
|
||||
git clone https://github.com/QuantumLeaps/qpcpp --recurse-submodules --depth 1
|
||||
```
|
||||
|
||||
Alternatively, you can also download the latest
|
||||
[QP/C++ Release](https://github.com/QuantumLeaps/qpcpp/releases).
|
||||
>**NOTE:** If you're interested in the latest QP/C++ version from Git,
|
||||
it is highly recommened that you download the latest
|
||||
[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
|
||||
`qpcpp` repository (and is provided in the QP/C++ release).
|
||||
|
||||
|
||||
# Getting Started with QP/C++
|
||||
|
1
doxygen/.gitignore
vendored
1
doxygen/.gitignore
vendored
@ -1 +0,0 @@
|
||||
metrics.dox
|
131
doxygen/Doxyfile
131
doxygen/Doxyfile
@ -1,7 +1,5 @@
|
||||
# Doxyfile 1.9.5
|
||||
|
||||
@INCLUDE = ../../ql-doxygen/ql-doxyfile
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
@ -42,6 +40,17 @@ PYTHON_DOCSTRING = YES
|
||||
INHERIT_DOCS = YES
|
||||
SEPARATE_MEMBER_PAGES = NO
|
||||
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_JAVA = NO
|
||||
OPTIMIZE_FOR_FORTRAN = NO
|
||||
@ -141,17 +150,13 @@ INPUT = main.dox \
|
||||
../../cert-pack/srs.dox \
|
||||
../../cert-pack/sas.dox \
|
||||
../../cert-pack/sds.dox \
|
||||
../../cert-pack/sds_sm-cpp.dox \
|
||||
../../cert-pack/autosar.dox \
|
||||
../../cert-pack/tr.dox \
|
||||
metrics.dox \
|
||||
dir.dox \
|
||||
config.hpp \
|
||||
../include \
|
||||
../src \
|
||||
../ports/lint-plus/std.lnt \
|
||||
../ports/lint-plus/qpcpp.lnt \
|
||||
../ports/lint-plus/options.lnt
|
||||
../src
|
||||
INPUT_ENCODING = UTF-8
|
||||
INPUT_FILE_ENCODING =
|
||||
FILE_PATTERNS = *.dox \
|
||||
@ -190,7 +195,7 @@ FORTRAN_COMMENT_AFTER = 72
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = NO
|
||||
REFERENCES_RELATION = NO
|
||||
REFERENCES_LINK_SOURCE = YES
|
||||
@ -278,6 +283,68 @@ SEARCHDATA_FILE = searchdata.xml
|
||||
EXTERNAL_SEARCH_ID = QPCPP
|
||||
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
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
@ -306,3 +373,51 @@ PREDEFINED = Q_SPY \
|
||||
QXK_ON_CONTEXT_SW
|
||||
EXPAND_AS_DEFINED =
|
||||
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,8 +1,11 @@
|
||||
# Doxyfile 1.9.5
|
||||
# Doxyfile 1.9.3
|
||||
|
||||
@INCLUDE = Doxyfile
|
||||
|
||||
ENABLED_SECTIONS += CERT LATEX
|
||||
GENERATE_LATEX = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
ENABLED_SECTIONS += CERT
|
||||
HTML_OUTPUT = ../cert-pack
|
||||
LATEX_OUTPUT = ../cert-latex
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Doxyfile 1.9.4
|
||||
# Doxyfile 1.9.3
|
||||
|
||||
@INCLUDE = Doxyfile
|
||||
|
||||
|
@ -1,7 +0,0 @@
|
||||
# Doxyfile 1.9.5
|
||||
|
||||
@INCLUDE = Doxyfile
|
||||
|
||||
GENERATE_HTML = NO
|
||||
GENERATE_LATEX = YES
|
||||
ENABLED_SECTIONS += LATEX
|
@ -343,76 +343,47 @@ The QP/C++ examples for Zephyr are as follows:
|
||||
/*##########################################################################*/
|
||||
/*! @page zephyr_blinky Blinky
|
||||
|
||||
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
|
||||
Blinks an on-board LED once per second.
|
||||
|
||||
The blinking is done by an Active Object (Blinky) with a state machine.
|
||||
|
||||
@section zephyr_blinky-build Building and Running
|
||||
|
||||
- Linux:
|
||||
Open a terminal in the blinky directory.
|
||||
|
||||
@verbatim
|
||||
[1] cd <qpcpp>/examples/zephyr/blinky
|
||||
source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||
|
||||
[2] source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||
west build -b <board>
|
||||
|
||||
[3] west build -b <board>
|
||||
[3a] west build -b nucleo_h743zi
|
||||
[3b] west build -b nucleo_l053r8
|
||||
...
|
||||
|
||||
[4] west flush
|
||||
west flush
|
||||
@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
|
||||
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
||||
|
||||
@verbatim
|
||||
*** Booting Zephyr OS build v2.6.0-rc2-88-g3d39f72a88b3 ***
|
||||
BSP::ledOff
|
||||
QF::onStartup
|
||||
BSP::ledOn
|
||||
BSP::ledOff
|
||||
BSP::ledOn
|
||||
BSP::ledOff
|
||||
BSP_ledOff
|
||||
QF_onStartup
|
||||
BSP_ledOn
|
||||
BSP_ledOff
|
||||
BSP_ledOn
|
||||
BSP_ledOff
|
||||
@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
|
||||
The simple Blinky example does not support the QS software tracing.
|
||||
|
||||
@ -423,61 +394,19 @@ The simple Blinky example does not support the QS software tracing.
|
||||
|
||||
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
|
||||
|
||||
- Linux:
|
||||
Open a terminal in the dpp directory.
|
||||
|
||||
@verbatim
|
||||
[1] cd <qpcpp>/examples/zephyr/dpp
|
||||
source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||
|
||||
[2] source ~/zephyrproject/zephyr/zephyr-env.sh
|
||||
west build -b <board>
|
||||
|
||||
[3] west build -b <board>
|
||||
[3a] west build -b nucleo_h743zi
|
||||
[3b] west build -b nucleo_l053r8
|
||||
...
|
||||
|
||||
[4] west flush
|
||||
west flush
|
||||
@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
|
||||
Once flashed to the board, the application also produces ASCII output to the serial terminal (if supported by the board):
|
||||
|
||||
@ -506,118 +435,20 @@ Philo[2]->eating
|
||||
Philo[0]->thinking
|
||||
@endverbatim
|
||||
|
||||
@note
|
||||
The example has been tested with the following boards:
|
||||
|
||||
@section zephyr_dpp-qpspy Using the QP/SPY Software Tracing
|
||||
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-L053R8 board](bd_NUCLEO-L053R8.jpg)
|
||||
<br>
|
||||
|
||||
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
|
||||
![STM32-NUCLEO-H743ZI board](bd_NUCLEO-H743ZI.jpg)
|
||||
|
||||
@note
|
||||
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.
|
||||
The example should also work with most boards supported by Zephyr.
|
||||
|
||||
|
||||
If yo have built the example with QP/Spy, you might want to watch the QP/Spy output.
|
||||
|
||||
|
||||
@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
|
||||
@section zephyr_dpp-limits Limitations
|
||||
The DPP example currently does not support the QS software tracing,
|
||||
because implementation of the QS output over UART is board dependent. However, for a specific board, re-implementing the QS callbacks should be straightforward.
|
||||
|
||||
@next{exa_os}
|
||||
*/
|
||||
|
@ -8,15 +8,20 @@ To check what's new in QP™/C++, please see @ref history "QP/C++ Revision H
|
||||
|
||||
|
||||
@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]". You can think of the QP/C RTEF as a modern, truly *event-driven* real-time operating system (RTOS).
|
||||
<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]".
|
||||
|
||||
@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?
|
||||
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 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 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 *higher-level of abstraction* closer to the problem domain than the "naked" RTOS threads;
|
||||
|
||||
@ -26,10 +31,7 @@ The main objectives of the QP/C++ RTEF are:
|
||||
|
||||
|
||||
@section over_special What's special about it?
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
@subsection over_oop Object Orientation
|
||||
@ -44,7 +46,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".
|
||||
|
||||
|
||||
@subsection over_eff Size and Efficiency
|
||||
@subsection over_eff 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"}:
|
||||
|
||||
[![Application Note: "QP Performance Tests and Results"](an-qp_performance.png)](https://www.state-machine.com/doc/AN_QP_Performance.pdf)
|
||||
@ -55,7 +57,7 @@ The QP Framework is simple to get started, simple to use and simple to build. Th
|
||||
|
||||
|
||||
@subsection over_inter Interoperability
|
||||
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).
|
||||
QP™/C++ can also work with many traditional @ref exa_rtos "RTOSes" and @ref exa_os "general-purpose OSes" (such as Linux and Windows).
|
||||
|
||||
|
||||
@subsection over_trace Traceability
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
@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 RSM_OUTPUT=metrics.dox
|
||||
@ -58,11 +58,11 @@
|
||||
@echo @endcode >> %RSM_OUTPUT%
|
||||
@echo */ >> %RSM_OUTPUT%
|
||||
|
||||
:: Generate Doxygen Documentation ...........................................
|
||||
:: Generate Doxygen Documentation ...........................................
|
||||
if "%1"=="-CHM" (
|
||||
@echo Generating HTML...
|
||||
%DOXHOME%\doxygen.exe Doxyfile-CHM
|
||||
|
||||
|
||||
@echo Adding custom images...
|
||||
xcopy preview.js tmp\
|
||||
xcopy img tmp\img\
|
||||
@ -70,7 +70,7 @@ if "%1"=="-CHM" (
|
||||
|
||||
@echo Generating CHM...
|
||||
"C:\tools\HTML Help Workshop\hhc.exe" tmp\index.hhp
|
||||
|
||||
|
||||
@echo.
|
||||
@echo Cleanup...
|
||||
@rmdir /S /Q tmp
|
||||
@ -80,7 +80,7 @@ if "%1"=="-CHM" (
|
||||
@echo.
|
||||
@echo Cleanup...
|
||||
rmdir /S /Q C:\qp_lab\qpcpp\html
|
||||
|
||||
|
||||
echo Adding custom images...
|
||||
xcopy preview.js C:\qp_lab\qpcpp\html\
|
||||
xcopy img C:\qp_lab\qpcpp\html\img\
|
||||
|
@ -28,46 +28,42 @@
|
||||
@echo usage:
|
||||
@echo make
|
||||
@echo make -CHM
|
||||
@echo make -CERT
|
||||
@echo make -LATEX
|
||||
@echo make ...
|
||||
|
||||
:: tools (adjust to your system)---------------------------------------------
|
||||
:: Doxygen tool
|
||||
:: Doxygen tool (adjust to your system) ......................................
|
||||
@set DOXYGEN=doxygen
|
||||
|
||||
:: 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) .
|
||||
:: HTML Help tool (needed only with the -CHM option, (adjust to your system) .
|
||||
@set HHC="C:\tools\HTML Help Workshop\hhc.exe"
|
||||
|
||||
:: QP directory .............................................................
|
||||
@set QP=..
|
||||
:: Simple complexity metrics tool (adjust to your system) ...................
|
||||
@set LIZARD=lizard
|
||||
|
||||
:: Outut directories ........................................................
|
||||
@set HTML_OUT=%QP%\html
|
||||
IF "%1"=="-CERT" (
|
||||
@set HTML_OUT=%QP%\cert-pack
|
||||
:: QP/C++ directory ..........................................................
|
||||
@set QPCPP=..
|
||||
|
||||
:: HTML outut directory ......................................................
|
||||
@set HTML_OUT=%QPCPP%\html
|
||||
if "%1"=="-CERT" (
|
||||
@set HTML_OUT=%QPCPP%\cert-pack
|
||||
)
|
||||
@set LATEX_OUT=%QP%\latex
|
||||
|
||||
:: Generate metrics.dox file-------------------------------------------------
|
||||
@set METRICS_INP=%QP%\include %QP%\src -x %QP%\src\qs\*
|
||||
:: Generate metrics.dox file...
|
||||
@set METRICS_INP=%QPCPP%\include %QPCPP%\src -x %QPCPP%\src\qs\*
|
||||
@set METRICS_OUT=metrics.dox
|
||||
|
||||
@echo /** @defgroup metrics Code Metrics> %METRICS_OUT%
|
||||
@echo.>> %METRICS_OUT%
|
||||
@echo @code{.cpp}>> %METRICS_OUT%
|
||||
@echo Code Metrics >> %METRICS_OUT%
|
||||
@echo QP/C++ Code Metrics >> %METRICS_OUT%
|
||||
|
||||
%METRICS% %METRICS_INP% >> %METRICS_OUT%
|
||||
%LIZARD% -m -L500 -a10 -C20 -V %METRICS_INP% >> %METRICS_OUT%
|
||||
|
||||
@echo @endcode>> %METRICS_OUT%
|
||||
@echo */>> %METRICS_OUT%
|
||||
@echo */ >> %METRICS_OUT%
|
||||
|
||||
:: Generate Doxygen Documentation -------------------------------------------
|
||||
:: Generate Doxygen Documentation...
|
||||
if "%1"=="-CHM" (
|
||||
|
||||
@echo Generating HTML...
|
||||
%DOXYGEN% Doxyfile-CHM
|
||||
|
||||
@ -83,24 +79,7 @@ if "%1"=="-CHM" (
|
||||
@rmdir /S /Q tmp
|
||||
@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 (
|
||||
|
||||
@echo.
|
||||
@echo Cleanup...
|
||||
rmdir /S /Q %HTML_OUT%
|
||||
@ -108,7 +87,7 @@ if "%1"=="-CHM" (
|
||||
@echo Generating HTML...
|
||||
%DOXYGEN% Doxyfile%1
|
||||
|
||||
@echo Adding custom files...
|
||||
@echo Adding custom images...
|
||||
xcopy img %HTML_OUT%\img\
|
||||
xcopy /Y ..\..\ql-doxygen\jquery.js %HTML_OUT%
|
||||
rem @qclean %HTML_OUT%
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @defgroup metrics Code Metrics
|
||||
|
||||
@code{.cpp}
|
||||
Code Metrics
|
||||
QP/C++ Code Metrics
|
||||
================================================
|
||||
NLOC CCN token PARAM length location
|
||||
------------------------------------------------
|
||||
|
@ -87,7 +87,7 @@ C# File Extensions : cs
|
||||
Java File Extensions : java
|
||||
# Other files are not officially supported by RSM
|
||||
# but lines will be counted as LOC
|
||||
Other File Extensions :
|
||||
Other File Extensions :
|
||||
|
||||
# When analyzing *.h files, treat header files as
|
||||
# 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
|
||||
# permissions. RSM will create work files in the current
|
||||
# directory if no path is specified.
|
||||
Work file location path :
|
||||
Work file location path :
|
||||
|
||||
# When processing code line differentials, ignore
|
||||
# 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
|
||||
# the specified key string.
|
||||
Quality Notice 21 : No
|
||||
RSM KEY String :
|
||||
RSM KEY String :
|
||||
|
||||
# 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
|
||||
# the specified minimum.
|
||||
Quality Notice 16 : Yes
|
||||
Minimum Function Whitespace Percent : 10.00
|
||||
Minimum Function Whitespace Percent : 10.00
|
||||
|
||||
# Quality Notice No. 17
|
||||
# Emit a quality notice when function comment line
|
||||
# percentage is less than the specified minimum.
|
||||
Quality Notice 17 : No
|
||||
Minimum Function Comment Line Percent : 10.00
|
||||
Minimum Function Comment Line Percent : 10.00
|
||||
|
||||
# Quality Notice No. 18
|
||||
# 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
|
||||
# percentage is less than the specified minimum.
|
||||
Quality Notice 31 : Yes
|
||||
Minimum Class/Struct Comment Percent : 10.00
|
||||
Minimum Class/Struct Comment Percent : 10.00
|
||||
|
||||
# Quality Notice No. 46
|
||||
# Emit a quality notice when function, struct, class
|
||||
# or interface blank line percentage is less than the
|
||||
# specified minimum.
|
||||
Quality Notice 46 : No
|
||||
Minimum Function Blank Line Percent : 10.00
|
||||
Minimum Function Blank Line Percent : 10.00
|
||||
|
||||
# Quality Notice No. 51
|
||||
# Emit a quality notice when a function
|
||||
@ -553,20 +553,20 @@ Quality Notice 54 : Yes
|
||||
# percentage is less than the specified minimum.
|
||||
# Consider setting Notice 30 to No.
|
||||
Quality Notice 19 : Yes
|
||||
Minimum File Whitespace Percent : 10.00
|
||||
Minimum File Whitespace Percent : 10.00
|
||||
A TAB is equivalent to n space : 2
|
||||
|
||||
# Quality Notice No. 20
|
||||
# Emit a quality notice when file comment line
|
||||
# percentage is less than the specified minimum.
|
||||
Quality Notice 20 : Yes
|
||||
Minimum File Comment Line Percent : 10.00
|
||||
Minimum File Comment Line Percent : 10.00
|
||||
|
||||
# Quality Notice No. 47
|
||||
# Emit a quality notice when file blank line
|
||||
# percentage is less than the specified minimum.
|
||||
Quality Notice 47 : No
|
||||
Minimum File Blank Line Percent : 10.00
|
||||
Minimum File Blank Line Percent : 10.00
|
||||
|
||||
# Quality Notice No. 57
|
||||
# Emit a quality notice when RSM skip lines conditions
|
||||
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
BIN
examples/arm-cm/dpp_efm32-slstk3401a/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_efm32-slstk3401a/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_efm32-slstk3401a/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_efm32-slstk3401a/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_ek-tm4c123gxl/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -35,5 +35,5 @@ place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block HEAP };
|
||||
place in CRP_region { section .crp };
|
||||
place in RAM1_region { section .sram };
|
||||
place in CRP_region { section .crp };
|
||||
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 RAM_region { readwrite,
|
||||
block CSTACK, block HEAP };
|
||||
place in CRP_region { section .crp };
|
||||
place in RAM1_region { section .sram };
|
||||
place in CRP_region { section .crp };
|
||||
place in RAM1_region { section .sram };
|
BIN
examples/arm-cm/dpp_nucleo-h743zi/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-h743zi/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-h743zi/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-h743zi/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-l053r8/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l053r8/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-l053r8/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l053r8/qview/qview-dpp1.lnk
Normal file
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] |
|
||||
+-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+ +-------+-------+
|
||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0000042896 *--SERVE_SIG------->| | | | | |
|
||||
0001070723 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||
0001075362 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0001079975 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||
0001080774 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||
0001081583 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||
@ -18,7 +18,7 @@
|
||||
0001762885 *--TIMEOUT_SIG------+------------------>| | | | |
|
||||
0001767416 | |<------HUNGRY_SIG--* | | | |
|
||||
0001772368 | | <Philo::hungry> | | | |
|
||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0002098016 *--PAUSE_SIG------->| | | | | |
|
||||
0002101049 | <Table::paused> | | | | |
|
||||
0002140275 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
||||
@ -31,21 +31,21 @@
|
||||
0003109447 | |<------------------+-------------------+-------------------+-------HUNGRY_SIG--* |
|
||||
0003114370 | | | | | <Philo::hungry> |
|
||||
0005013277 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||
0005016745 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0005016745 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0005017655 | |<------------------+-------------------+-------------------+-------------------+---------DONE_SIG--*
|
||||
0005025076 | | | | | | <Philo::thinking>
|
||||
0007760487 *--TIMEOUT_SIG------+-------------------+-------------------+-------------------+-------------------+------------------>|
|
||||
0007764998 | |<------------------+-------------------+-------------------+-------------------+-------HUNGRY_SIG--*
|
||||
0007769921 | | | | | | <Philo::hungry>
|
||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011828417 *--SERVE_SIG------->| | | | | |
|
||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011833291 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||
0011834089 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||
0011834887 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||
0011835685 | *--EAT_SIG----------+------------------>| | | |
|
||||
0011836483 | *--EAT_SIG--------->| | | | |
|
||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0011840421 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||
0011841199 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||
0011841977 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||
@ -55,9 +55,9 @@
|
||||
0011864225 | | | | <Philo::eating> | |
|
||||
0011874191 | | <Philo::eating> | | | |
|
||||
0015268086 *--TIMEOUT_SIG------+-------------------+-------------------+------------------>| | |
|
||||
0015271590 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . .
|
||||
0015271590 . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . .
|
||||
0015272500 | |<------------------+-------------------+---------DONE_SIG--* | |
|
||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015277545 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||
0015278343 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||
0015279141 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||
@ -66,9 +66,9 @@
|
||||
0015289641 | | | | | <Philo::eating> |
|
||||
0015294035 | | | | <Philo::thinking> | |
|
||||
0015540732 *--TIMEOUT_SIG------+------------------>| | | | |
|
||||
0015544272 . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015544272 . . . . | . . . . . . . . . | . . . . . . . . . * .DONE_SIG . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015545182 | |<--------DONE_SIG--* | | | |
|
||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . . . . . . . . | . . .
|
||||
0015550227 | *--EAT_SIG----------+-------------------+-------------------+-------------------+------------------>|
|
||||
0015551025 | *--EAT_SIG----------+-------------------+-------------------+------------------>| |
|
||||
0015551823 | *--EAT_SIG----------+-------------------+------------------>| | |
|
||||
|
@ -3,11 +3,11 @@
|
||||
+-------+-------+ +-------+-------+ +-------+-------+
|
||||
|l_SysTick_Handl| | Table::inst | | ? |
|
||||
+-------+-------+ +-------+-------+ +-------+-------+
|
||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0000042339 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0000042896 *--SERVE_SIG------->| /
|
||||
0001070723 *--TIMEOUT_SIG------+------------------>/
|
||||
0001075362 | |<------HUNGRY_SIG--*
|
||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0001079065 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0001079975 | *--EAT_SIG--------->/
|
||||
0001080774 | *--EAT_SIG--------->/
|
||||
0001081583 | *--EAT_SIG--------->/
|
||||
@ -15,7 +15,7 @@
|
||||
0001083181 | *--EAT_SIG--------->/
|
||||
0001762885 *--TIMEOUT_SIG------+------------------>/
|
||||
0001767416 | |<------HUNGRY_SIG--*
|
||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0002097460 . . . . * .PAUSE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0002098016 *--PAUSE_SIG------->| /
|
||||
0002101049 | <Table::paused> /
|
||||
0002140275 *--TIMEOUT_SIG------+------------------>/
|
||||
@ -25,19 +25,19 @@
|
||||
0003104906 *--TIMEOUT_SIG------+------------------>/
|
||||
0003109447 | |<------HUNGRY_SIG--*
|
||||
0005013277 *--TIMEOUT_SIG------+------------------>/
|
||||
0005016745 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0005016745 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0005017655 | |<--------DONE_SIG--*
|
||||
0007760487 *--TIMEOUT_SIG------+------------------>/
|
||||
0007764998 | |<------HUNGRY_SIG--*
|
||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0011827861 . . . . * .SERVE_SIG. . . . | . . . . . . . . . / . . .
|
||||
0011828417 *--SERVE_SIG------->| /
|
||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0011832381 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0011833291 | *--EAT_SIG--------->/
|
||||
0011834089 | *--EAT_SIG--------->/
|
||||
0011834887 | *--EAT_SIG--------->/
|
||||
0011835685 | *--EAT_SIG--------->/
|
||||
0011836483 | *--EAT_SIG--------->/
|
||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0011839510 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0011840421 | *--EAT_SIG--------->/
|
||||
0011841199 | *--EAT_SIG--------->/
|
||||
0011841977 | *--EAT_SIG--------->/
|
||||
@ -45,18 +45,18 @@
|
||||
0011843533 | *--EAT_SIG--------->/
|
||||
0011846001 | <Table::serving> /
|
||||
0015268086 *--TIMEOUT_SIG------+------------------>/
|
||||
0015271590 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0015271590 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0015272500 | |<--------DONE_SIG--*
|
||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0015276635 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0015277545 | *--EAT_SIG--------->/
|
||||
0015278343 | *--EAT_SIG--------->/
|
||||
0015279141 | *--EAT_SIG--------->/
|
||||
0015279939 | *--EAT_SIG--------->/
|
||||
0015280737 | *--EAT_SIG--------->/
|
||||
0015540732 *--TIMEOUT_SIG------+------------------>/
|
||||
0015544272 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0015544272 . . . . | . . . . . . . . . | . . . . DONE_SIG. * . . .
|
||||
0015545182 | |<--------DONE_SIG--*
|
||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0015549317 . . . . | . . . . . . . . . * .EAT_SIG. . . . . / . . .
|
||||
0015550227 | *--EAT_SIG--------->/
|
||||
0015551025 | *--EAT_SIG--------->/
|
||||
0015551823 | *--EAT_SIG--------->/
|
||||
|
BIN
examples/arm-cm/dpp_nucleo-l152re/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l152re/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-l152re/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l152re/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-l552ze/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l552ze/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cm/dpp_nucleo-l552ze/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cm/dpp_nucleo-l552ze/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
::============================================================================
|
||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
@ -12,7 +12,7 @@ setlocal
|
||||
|
||||
::----------------------------------------------------------------------------
|
||||
:: 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"
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
::============================================================================
|
||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
@ -12,7 +12,7 @@ setlocal
|
||||
|
||||
::----------------------------------------------------------------------------
|
||||
:: 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"
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
::============================================================================
|
||||
:: Batch file to load the DPP program to the flash of STM32 boards
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the ST-LINK utlity from ST, see:
|
||||
:: http://www.st.com/en/embedded-software/stsw-link004.html
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
@ -12,7 +12,7 @@ setlocal
|
||||
|
||||
::----------------------------------------------------------------------------
|
||||
:: 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"
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,13 +1,13 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EFM32-SLSTK3401A board
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the J-Link commander (JLink.exe) from SEGGER, see:
|
||||
:: https://www.segger.com/j-link-commander.html
|
||||
::
|
||||
::
|
||||
setlocal
|
||||
|
||||
@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 example: flash dbg\blinky-qk.bin
|
||||
|
||||
@ -17,7 +17,7 @@ setlocal
|
||||
::
|
||||
if [%JLINK%] EQU [] set JLINK=%QTOOLS%\..\JLink
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
BIN
examples/arm-cr/dpp_launchxl2-tms57012/qview/qview-dpp.lnk
Normal file
BIN
examples/arm-cr/dpp_launchxl2-tms57012/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/arm-cr/dpp_launchxl2-tms57012/qview/qview-dpp1.lnk
Normal file
BIN
examples/arm-cr/dpp_launchxl2-tms57012/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
@ -58,9 +58,9 @@ Additional information:
|
||||
#define _THUMB_CODE .code 16
|
||||
#define _WORD .word
|
||||
#define _SECTION(Sect, Type, AlignExp) .section Sect ##, "ax"
|
||||
#define _ALIGN(Exp) .align Exp
|
||||
#define _ALIGN(Exp) .align Exp
|
||||
#define _PLACE_LITS .ltorg
|
||||
#define _DATA_SECT_START
|
||||
#define _DATA_SECT_START
|
||||
#define _C_STARTUP _start
|
||||
#define _STACK_END __stack_end__
|
||||
#define _RAMFUNC
|
||||
@ -80,7 +80,7 @@ Additional information:
|
||||
#define _THUMB_CODE THUMB
|
||||
#define _WORD DCD
|
||||
#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 _DATA_SECT_START DATA
|
||||
#define _C_STARTUP __iar_program_start
|
||||
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program to the flash of EK-LM3S6965
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
@ -13,7 +13,7 @@ setlocal
|
||||
::----------------------------------------------------------------------------
|
||||
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
||||
:: 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
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program to the flash of EK-LM3S6965
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
@ -13,7 +13,7 @@ setlocal
|
||||
::----------------------------------------------------------------------------
|
||||
:: NOTE: The following symbol LMFLASH assumes that LMFlash.exe can
|
||||
:: 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
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
@ -27,5 +27,5 @@ do not initialize { section .noinit };
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
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 };
|
@ -1,8 +1,8 @@
|
||||
::============================================================================
|
||||
:: Batch file to program the flash of EK-TM4C123GXL
|
||||
::
|
||||
::
|
||||
:: NOTE: requires the LMFlash programmer (included in QTools for Windows)
|
||||
::
|
||||
::
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
|
@ -25,5 +25,5 @@ do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
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 };
|
BIN
examples/workstation/dpp/qview/qview-dpp.lnk
Normal file
BIN
examples/workstation/dpp/qview/qview-dpp.lnk
Normal file
Binary file not shown.
BIN
examples/workstation/dpp/qview/qview-dpp1.lnk
Normal file
BIN
examples/workstation/dpp/qview/qview-dpp1.lnk
Normal file
Binary file not shown.
@ -1,5 +1,19 @@
|
||||
// QP/C++ Real-Time Embedded Framework (RTEF)
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
|
||||
//$file${include::qstamp.cpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
//
|
||||
// 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
|
||||
//
|
||||
@ -18,17 +32,25 @@
|
||||
// Plagiarizing this software to sidestep the license obligations is illegal.
|
||||
//
|
||||
// Contact information:
|
||||
// <www.state-machine.com>
|
||||
// <www.state-machine.com/licensing>
|
||||
// <info@state-machine.com>
|
||||
//
|
||||
//$endhead${include::qstamp.cpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
//! @file
|
||||
//! @brief Application build time-stamp
|
||||
//! @deprecated
|
||||
//! File `include/qstamp.cpp` is kept only for backwards compatibility.
|
||||
//! Instead, please use file `src/qs/qstamp.cpp`.
|
||||
//! @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
|
||||
|
@ -55,7 +55,7 @@ if "%1"=="16bit" (
|
||||
@del *.log
|
||||
|
||||
:: 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
|
||||
|
||||
|
42
qpcpp.qm
42
qpcpp.qm
@ -13388,6 +13388,27 @@ extern char const BUILD_TIME[9];
|
||||
|
||||
#endif // QP_INC_QSTAMP_HPP_</text>
|
||||
</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>
|
||||
<!--${src}-->
|
||||
<directory name="src">
|
||||
@ -14798,27 +14819,6 @@ $define ${QUTest-stub}
|
||||
|
||||
#endif // def Q_UTEST</text>
|
||||
</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>
|
||||
</model>
|
||||
|
@ -1,56 +0,0 @@
|
||||
//$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