Skip to content

Commit

Permalink
6.8.2
Browse files Browse the repository at this point in the history
  • Loading branch information
QL committed Jul 18, 2020
1 parent d340087 commit c100cea
Show file tree
Hide file tree
Showing 35 changed files with 4,927 additions and 608 deletions.
2,301 changes: 2,249 additions & 52 deletions doxygen/Doxyfile

Large diffs are not rendered by default.

2,304 changes: 2,252 additions & 52 deletions doxygen/Doxyfile-CHM

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions doxygen/gs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ It is also highly recommended that you keep checking the <a class="extern" targe
Alternatively, you can download QTools&trade; separately as described below.


------------------------------------------------------------------------------

@section install_win32 Installing QTools&trade; on Windows
On Windows, you simply unzip the `qtools-windows_<x.y.z>.zip` archive to the installation folder of your choice (`C:\qp\qtools` is the recommended default). After the installation, you still need to:

Expand All @@ -33,7 +33,7 @@ set QTOOLS=C:\qp\qtools
Defining the `QTOOLS` environment variable is required to run @ref qutest "QUTest Unit Testing" and @ref qspyview "QSpyView Visualization and Monitoring" utilities.


------------------------------------------------------------------------------

@section install_posix Installing QTools&trade; on POSIX (Linux/MacOS)
On POSIX (Linux/MacOS), you simply unzip the `qtools-posix_<x.y.z>.zip` archive to the installation folder of your choice (`~/qp/qtools` is the recommended default). After the installation, you still need to:

Expand All @@ -52,7 +52,7 @@ export QTOOLS=~/qp/qtools
Defining the `QTOOLS` environment variable is required to run @ref qutest "QUTest Unit Testing" and @ref qspyview "QSpyView Visualization and Monitoring" utilities.


------------------------------------------------------------------------------

@section files Directories and Files
The following annotated directory tree in the standard <strong>QTools&trade;</strong> distribution lists the top-level directories and files:

Expand Down
76 changes: 42 additions & 34 deletions doxygen/history.dox

Large diffs are not rendered by default.

Binary file added doxygen/img/logo_ql-compact.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doxygen/img/logo_ql.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 20 additions & 28 deletions doxygen/main.dox
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
To check what's new in QTools, please see @ref history "QTools Revision History".


------------------------------------------------------------------------------

@section qtools_about What is it?
QTools&trade; is a collection of open source tools for embedded software development on desktop platforms, such as Windows, Linux and macOS. The QTools collection contains the following tools developed by <a href="https://www.state-machine.com/">Quantum Leaps</a>:

- @ref qpspy "QP/Spy software tracing and testing for embedded systems", which includes:
+ @ref qs "QS&trade; Target-Resident Component"
+ @ref qspy "QSPY&trade; Host Application"
+ @ref qutest "QUTest&trade; Unit Testing Harness"
+ @ref qspyview "QSpyView&trade; Visualization &amp; Monitoring"
Expand All @@ -20,32 +21,26 @@ QTools&trade; is a collection of open source tools for embedded software develop
- @ref qcalc "QCalc C programmer's calculator"


------------------------------------------------------------------------------
@section qtools_win QTools&trade; on Windows
The QTools Collection for Windows contains additionally the following open-source, third-party tools:

- GNU-make for Windows (version 3.82)
- GNU C/C++ toolchain for Windows (MinGW version 6.3.0)
- GNU-make for Windows (version 4.2.1)
- GNU C/C++ toolchain for Windows (MinGW version 9.2.0)
- GNU C/C++ toolchain for ARM Cortex-M and Cortex-R ([GNU Arm Embedded Toolchain](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/))
- TCL/TK for Windows (version 8.4) with **UDP sockets extension**
- ResEdit utility (version 1.6.6-x64)
- AVRDUDE for Windows (version 6.1)

Additionally, QTools&trade; for Windows contains the following PC-Lint option files various compilers (in sub-directory `lint`):

- `co-gnu-arm.*` (PC-Lint option files for GNU-ARM)
- `co-iar-arm.*` (PC-Lint option files for IAR-ARM)
- Python for Windows (version 3.8 embeddable)
- Tcl/Tk for Windows (version 8.6) with **UDP sockets extension**




------------------------------------------------------------------------------
@section qtools_licensing Licensing QTools&trade;
Most tools included in the QTools&trade; collection are distributed under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. The text of GPL version 2 is included in the
file GPLv2.txt in the root directory of the QTools distribution.

The Python package is distributed under the terms of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, included in the file LICENSE.txt in the Python38 sub-directory of the QTools distribution.

The TCL/TK 8.4 package is distributed under the terms of the TCL LICENSE AGREEMENT, included in the file TCL_LICENSE.txt in the root directory of the QTools distribution.
The Tcl/Tk package is distributed under the terms of the TCL LICENSE AGREEMENT, included in the file LICENSE.txt in the tcl_8.6 sub-directory of the QTools distribution.


------------------------------------------------------------------------------
@section qtools_source Source Code
In compliance with GPL, this distribution contains the source code for
the utilities contributed by Quantum Leaps in the `<qtools>/source/`
Expand All @@ -54,7 +49,7 @@ subdirectory, except for the QSPY source code, which is provided in the
have been developed and are copyrighted by Quantum Leaps.


<div class="separate"></div>

@subsection qtools_mingw The MinGW C and C++ compilers for Windows
Have been taken from the MinGW project at:

Expand All @@ -64,7 +59,7 @@ The installer `mingw-get-setup.exe` has been used and after the
installation, the files have been pruned to reduce the size of the
distribution. Please refer to the MinGW project for the source code.

<div class="separate"></div>

@subsection qtools_gnu-arm The GNU-ARM (NONE-EABI) compilers for Windows
Have been taken from:

Expand All @@ -73,7 +68,7 @@ https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
The source code is available from the download page under "Source Invariant".


<div class="separate"></div>

@subsection qtools_make The GNU make executable for Windows
Has been taken from the MinGW project at:

Expand All @@ -85,7 +80,7 @@ project at:
http://www.gnu.org/software/make


<div class="separate"></div>

@subsection qtools_util The file and diff utilities
Have been taken from the UnixUtils project at SourceForge.net:

Expand All @@ -98,18 +93,15 @@ been taken from:
https://prdownloads.sourceforge.net/unxutils/UnxUtilsSrc.zip


------------------------------------------------------------------------------

@section qtools_help How to get help?

Please post any **technical questions** to the <a class="extern" target="_blank" href="http://sourceforge.net/p/qpc/discussion/668726"><strong>Free Support Forum</strong></a> hosted on SourceForge.net. Posts to this forum benefit the whole community and are typically answered the same day.

Direct **Commercial Support** is available to the commercial licensees. Every commercial license includes one year of Technical Support for the licensed software. The support term can be extended annually.

Training and consulting services are also available from Quantum Leaps. Please refer to the <a class="extern" target="_blank" href="https://www.state-machine.com/support/">Support web-page</a> for more information.

@image html logo_ql_TM.jpg
Direct [commercial support](https://www.state-machine.com/licensing/#Support) is available to the commercial licensees. Every commercial license includes one year of Technical Support for the licensed software. The support term can be extended annually.

Copyright &copy; 2005-2019 Quantum Leaps, LLC. All Rights Reserved.@n
[Training and consulting](https://www.state-machine.com/support/training) services are also available from Quantum Leaps.

@next{start}

@next{gs}
*/
32 changes: 18 additions & 14 deletions doxygen/make.bat
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
@echo off
:: ==========================================================================
:: Product: QTools script for generating Doxygen documentation
:: Last Updated for Version: 6.8.0
:: Date of the Last Update: 2020-01-20
:: Last Updated for Version: 6.8.2
:: Date of the Last Update: 2020-06-22
::
:: Q u a n t u m L e a P s
:: ------------------------
Expand All @@ -26,7 +26,7 @@
:: GNU General Public License for more details.
::
:: You should have received a copy of the GNU General Public License
:: along with this program. If not, see <www.gnu.org/licenses/>.
:: along with this program. If not, see <http://www.gnu.org/licenses/>.
::
:: Contact information:
:: <www.state-machine.com/licensing>
Expand All @@ -38,39 +38,43 @@
@echo make
@echo make -CHM

@set DOXHOME="C:\tools\doxygen\bin"
:: Doxygen tool (adjust to your system) ......................................
@set DOXYGEN=doxygen

:: Generate Doxygen Documentation ...........................................
:: HTML Help tool (needed only with the -CHM option, (adjust to your system) .
@set HHC="C:\tools\HTML Help Workshop\hhc.exe"

:: Generate Doxygen Documentation...
if "%1"=="-CHM" (
@echo Generating HTML...
%DOXHOME%\doxygen.exe Doxyfile-CHM
%DOXYGEN% Doxyfile-CHM

@echo Adding custom images...
xcopy preview.js tmp\
xcopy img tmp\img\
@echo img\img.htm >> tmp\index.hhp

@echo Generating CHM...
"C:\tools\HTML Help Workshop\hhc.exe" tmp\index.hhp
%HHC% tmp\index.hhp

@echo.
@echo Cleanup...
@rmdir /S /Q tmp
@echo CHM file generated in qtools.chm
@echo CHM file generated

) else (
@echo.
@echo Cleanup...
rmdir /S /Q C:\qp_lab\qtools\html
rmdir /S /Q ..\html

@echo Adding custom images...
xcopy preview.js C:\qp_lab\qtools\html\
xcopy img C:\qp_lab\qtools\html\img\
copy images\favicon.ico C:\qp_lab\qtools\html
xcopy preview.js ..\html\
xcopy img ..\html\img\
copy images\favicon.ico ..\html

@echo Generating HTML...
%DOXHOME%\doxygen.exe Doxyfile
@qclean C:\qp_lab\qtools\html
%DOXYGEN% Doxyfile
@qclean ..\html
)

@endlocal
8 changes: 6 additions & 2 deletions doxygen/modules.dox
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
@brief
Software tracing and testing system

@description
QP/Spy&trade; is a software tracing and testing system specifically designed for embedded systems, such as single chip microcontrollers. The job of QP/Spy is to capture information about an embedded code's execution and send it to the host computer with minimal impact on the real-time performance of the embedded code.
*/

Expand All @@ -12,6 +13,7 @@ QP/Spy&trade; is a software tracing and testing system specifically designed for
@brief
Unit Testing Harness (Framework)

@description
QUTest&trade; (pronounced 'cutest') is a unit testing harness (a.k.a. unit testing framework), which is specifically designed for deeply embedded systems, but also supports unit testing of embedded code on host computers ("dual targeting"). QUTest is the fundamental tooling for Test-Driven Development (TDD) of QP/C/C++ applications, which is a highly recommended best-practice.
*/

Expand All @@ -21,6 +23,7 @@ QUTest&trade; (pronounced 'cutest') is a unit testing harness (a.k.a. unit testi
@brief
free software toolkit for prototyping (dual-targeting) embedded systems on Windows in C

@description
QF is a portable, event-driven, real-time framework for execution of active objects (concurrent state machines) specifically designed for real-time embedded (RTE) systems.
*/

Expand All @@ -30,6 +33,7 @@ QF is a portable, event-driven, real-time framework for execution of active obje
@brief
White space cleanup utility

@description
QS is software tracing system that enables developers to monitor live event-driven QP applications with minimal target system resources and without stopping or significantly slowing down the code. QS is an ideal tool for testing, troubleshooting, and optimizing QP applications. QS can even be used to support acceptance testing in product manufacturing.
*/

Expand All @@ -43,9 +47,9 @@ ROM file system generator
QV is a simple **cooperative** kernel (previously called "Vanilla" kernel). This kernel executes active objects one at a time, with priority-based scheduling performed before processing of each event. Due to naturally short duration of event processing in state machines, the simple QV kernel is often adequate for many real-time systems.


------------------------------------------------------------------------------

@section qv_overview QV Overview
The QV scheduler is engaged after every RTC step of any @termref{active object} to choose the next active object to execute. The QV scheduler always chooses the highest-priority active object that has any events in its event queue. The QV scheduler then extracts the next event from this queue and dispatches it to the state machine associated with the active object. The state machine runs to completion, after which the QV scheduler runs and the cycle repeats.
The QV scheduler is engaged after every RTC step of any active object to choose the next active object to execute. The QV scheduler always chooses the highest-priority active object that has any events in its event queue. The QV scheduler then extracts the next event from this queue and dispatches it to the state machine associated with the active object. The state machine runs to completion, after which the QV scheduler runs and the cycle repeats.

Please note that because the state machines always return to the QV scheduler after each RTC step, a single stack can be used to process all state machines (memory-friendly architecture).

Expand Down
20 changes: 10 additions & 10 deletions doxygen/qcalc.dox
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
The calculator GUI provides a resizable *user input* filed, where you can type **complete C expressions**. You can also **copy-and-paste** expressions into and from the *input filed* to use them directly in **your C code**.


------------------------------------------------------------------------------

@section qcalc_usage QCalc Usage
<strong>QCalc</strong> is included in the QTools Collection in the sub-directory <span class="img folder">qtools/bin/</span> and consists of a single file <b>qcalc.tcl</b>. To launch QCalc, you need to open this file with the <span class="img file_wish">wish</span> Tk interpreter.

Expand All @@ -21,21 +21,21 @@ The <span class="img file_wish">wish</span> Tk interpreter is included in the QT

You use QCalc by typing (or pasting) an expression in the *user input* field and pressing <span class="img key_ret">Enter</span> to evaluate the expression. You can conveniently edit any expression already inside the *user input* field, and you can @ref qcacl_hist "recall the previous expressions" by means of the <span class="img key_up">Up</span> and <span class="img key_down">Down</span> keys. You can also resize the QCalc window to see more or less of the *input field*.

<div class="separate"></div>

@subsection qcalc_win QCalc on Windows
The <span class="img file_wish">wish</span> Tk interpreter is conveniently provided in the same <span class="img folder">qtools/bin/</span> directory as the <span class="img file_tcl">qcalc.tcl</span> script. The directory contains also a shortcut <span class="img file_wish">qcalc</span>, which you can copy to your desktop.

@image html qcalc_lnk.png "Shortcut for launching QCalc on Windows"


<div class="separate"></div>

@subsection qcalc_linux QCalc on Linux
Most Linux distributions contain the Tk interpreter, which you can use to launch QCalc. You can do this either from a terminal, by typing `wish $QTOOLS/qcalc.tcl &` or by creating a shortcut to `wish` with the command-line argument `$QTOOLS/qcalc.tcl`.

@image html qcalc_linux.png "Calc on Linux"


------------------------------------------------------------------------------

@section qcalc_features QCalc Features

@subsection qcalc_expr Expressions in C-Syntax
Expand All @@ -51,31 +51,31 @@ The most important feature of QCalc is that it accepts expressions in the **C-sy
QCalc internally uses the Tcl command <b>expr</b> to evaluate the expressions. Please refer to the documentation of the <a href="http://www.tcl.tk/man/tcl8.4/TclCmd/expr.htm" target="_blank" class="extern">Tcl <b>expr</b> command</a> for more details of supported syntax and features.


<div class="separate"></div>

@subsection qcalc_conv Automatic conversion to hexadecimal and binary
If the result of expression evaluation is integer (as opposed to floating point), QCalc automatically displays the result in hexadecimal and binary formats (see QCalc GUI). For better readability the hex display shows a comma between the two 16-bit half-words (e.g., `0xDEAD,BEEF`). Similarly, the binary output shows a comma between the four 8-bit bytes (e.g., `0b11011110,10101101,10111110,11101111`).


<div class="separate"></div>

@subsection qcalc_bin Binary constants
As the extension to the C-syntax, QCalc supports **binary numbers** in the range from 0-15 (0b0000-0b1111). These binary constants are represented as `$0000`, `$0001`, `$0010`,..., `$1110`, and `$1111` and can be mixed into expressions. Here are a few examples of such expressions:

`($0110 << 14) & 0xDEADBEEF`<span class="img key_ret"></span>@n
`($0010 | $1000) * 123`<span class="img key_ret"></span>@n


<div class="separate"></div>

@subsection qcalc_hist History of inputs
QCalc remembers the history of up to 8 most recently entered expressions. You can recall and navigate the history of previously entered expressions by pressing the <span class="img key_up">Up</span> / <span class="img key_down">Down</span> keys.

<div class="separate"></div>

@subsection qcalc_ans The $ans variable
QCalc stores the result of the last computation in the **$ans** variable (note the dollar sign `$` in front of the variable name). Here are some examples of expressions with the `$ans` variable:

`1/$ans`<span class="img key_ret"></span> -- find the inverse of the last computation@n
`log($ans)/log(2)`<span class="img key_ret"></span> -- find log-base-2 of the last computation@n

<div class="separate"></div>

@subsection qcalc_var User variables
QCalc allows you also to define any number of your own **user variables**. To set a variable, you simply type the expression `=alpha` in the *user input* field. This will define the variable `alpha` and assign it the value of the last computation (`$ans`). Subsequently, you can use your `alpha` variable in expressions by typing <b>$</b>`alpha` (note the dollar sign `$` in front of the variable name). Here is example of defining and using variable `$GPIO_BASE`:

Expand All @@ -87,7 +87,7 @@ QCalc allows you also to define any number of your own **user variables**. To se
@note
The names of user variables are case-sensitive.

<div class="separate"></div>

@subsection qcalc_error Error handling
Expressions that you enter into QCalc might have all kinds of errors: syntax errors, computation errors (e.g., division by zero), undefined variable errors, etc. In all these cases, QCalc responds with the `Error` message and the explanation of the error:

Expand Down
Loading

0 comments on commit c100cea

Please sign in to comment.