Skip to content

Commit 6d29ea6

Browse files
committed
8.0.2
1 parent 12c924a commit 6d29ea6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+3209
-12440
lines changed

LICENSES/LicenseRef-QL-commercial.txt

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ licenses designed for licensees interested in retaining the proprietary
77
status of their code.
88

99
The Quantum Leaps commercial licenses expressly supersede the GPL open source
10-
license. This means that when you license the QP/C or QP/C++ Real-Time
10+
license. This means that when you license the QP/C or QP/C++ Real-Time
1111
Embedded Frameworks under a Quantum Leaps commercial license, you specifically
1212
do not use the software under the open source license and therefore you are
1313
not subject to any of its terms.
1414

1515
Quantum Leaps commercial licensing options are described below:
1616

1717

18-
Single Product License
19-
----------------------
18+
SPDX-License-Identifier: LicenseRef-QL-Single-Product
19+
-----------------------------------------------------
2020
Single Product License allows a given company ("Licensee") to embed the
2121
specified type(s) of the QP Real-Time Embedded Framework(s) into one end-
2222
product of the Licensee (Single Product). Licensee can distribute/sell an
@@ -33,8 +33,8 @@ Volume discounts are offered if several Single Products are licensed at once
3333
with one license agreement.
3434

3535

36-
Product Line License
37-
--------------------
36+
SPDX-License-Identifier: LicenseRef-QL-Product-Line
37+
---------------------------------------------------
3838
Product Line License allows a given company ("Licensee") to embed the
3939
specified type(s) of the QP Real-Time Embedded Framework(s) into any number
4040
of end-products within a family of related products (Product Line). Licensee
@@ -44,17 +44,17 @@ Product Line. Product Line License applies to all end-products that do
4444
similar functions within the same Product Line.
4545

4646

47-
Any-Product License
48-
-------------------
47+
SPDX-License-Identifier: LicenseRef-QL-Any-Product
48+
--------------------------------------------------
4949
Any-Product License allows a given company ("Licensee") to embed the
5050
specified type(s) of the QP Real-Time Embedded Framework(s) into any end-
5151
product of that company. The Licensee can distribute/sell an unlimited number
5252
of the products containing the licensed QP framework type(s) (royalty-free
5353
licensing).
5454

5555

56-
Site License
57-
------------
56+
SPDX-License-Identifier: LicenseRef-QL-Site
57+
-------------------------------------------
5858
Site-License allows a given company ("Licensee") to embed the specified
5959
type(s) of the QP Real-Time Embedded Framework(s) into any end-customer
6060
product, as long as the products are designed at a given physical location
@@ -64,8 +64,8 @@ designed for development contractors and consultants, who develop embedded
6464
software for other companies.
6565

6666

67-
OEM License
68-
-----------
67+
SPDX-License-Identifier: LicenseRef-QL-OEM
68+
------------------------------------------
6969
OEM License allows a given company ("Licensee") to embed the specified
7070
type(s) of the QP Real-Time Embedded Framework(s) in any product of that
7171
company (Original Equipment Manufacturer) and gives limited sublicensing
@@ -74,14 +74,12 @@ affiliates. OEM licenses are customizable to match exactly the specific
7474
licensing needs of a given Licensee.
7575

7676

77-
Education License
78-
-----------------
79-
Education License allows a given accredited educational institution
80-
("Licensee") to use and embed the specified type(s) of the QP Real-Time
81-
Embedded Framework(s) in any project completed at that educational
82-
institution. To be eligible for this license, the institution must be
83-
focused mainly on teaching students. The Education Licenses are free
84-
and will be granted liberally upon request.
77+
SPDX-License-Identifier: LicenseRef-QL-Eval
78+
-------------------------------------------
79+
Evaluation License allows a specific company ("Licensee") to temporarily
80+
use the specified type(s) of the QP Real-Time Embedded Framework(s) for
81+
in-house evaluation. This license expressly prohibits any distribution
82+
of the licensed QP software.
8583

8684

8785
****

LICENSES/LicenseRef-QL-dual.qlc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
public
22
qpc
33
2025-12-31
4+
45
Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
56

67
Q u a n t u m L e a P s
@@ -9,9 +10,9 @@ Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
910

1011
SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
1112

12-
The QP/C software is dual-licensed under the terms of the open-source GNU
13-
General Public License (GPL) or under the terms of one of the closed-
14-
source Quantum Leaps commercial licenses.
13+
This software is dual-licensed under the terms of the open-source GNU
14+
General Public License (GPL) or, alternatively under the terms of one of
15+
the closed-source Quantum Leaps commercial licenses.
1516

1617
Redistributions in source code must retain this top-level comment block.
1718
Plagiarizing this software to sidestep the license obligations is illegal.
@@ -25,4 +26,4 @@ closed-source distribution.
2526
Quantum Leaps contact information:
2627
<www.state-machine.com/licensing>
2728
28-
#2BACD81DCE8ED122C193E4F48A14170D660DFF1E
29+
#1671FF5623AF7CA93973FA6EC044A008F7F65702

README.md

Lines changed: 52 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,39 @@ git clone https://github.com/QuantumLeaps/qpc --recurse-submodules --depth 1
1616
Alternatively, you can also download one of the stable
1717
[QP/C Releases][QP-Rel].
1818

19+
# About QP/C Real-Time Embedded Framework
20+
QP/C real-time embedded framework (RTEF) is a lightweight implementation of
21+
the [Active Object (a.k.a. Actor) model of computation][AOmod] specifically
22+
tailored for deeply embedded real-time systems, such as microcontrollers (MCUs).
23+
QP/C is both a software infrastructure for building applications consisting
24+
of Active Objects (Actors) and a runtime environment for executing the Active
25+
Objects in a deterministic, real-time fashion. Additionally, QP/C Framework
26+
supports Hierarchical State Machines with which to specify the behavior of
27+
Active Objects [UML 2.5], [Sutter:10], [ROOM:94]. The QP/C Framework can be
28+
viewed as a modern, asynchronous, and truly event driven real-time operating
29+
system (RTOS).
30+
31+
## QP Framework Family
32+
QP/C framework is part of the larger QP family consisting of the following
33+
QP editions:
34+
35+
|QP Edition | Language | API | Safety Functions |Certification Artifacts| Licensing
36+
|:----------|:-----------:|:-----------------|:-------------------|:----------------|:---------
37+
| QP/C | C (C11) |same as SafeQP/C |Selected Assertions |Req/Arch/Design | [dual][Lic]
38+
| SafeQP/C | C (C11) |same as QP/C |All Safety Functions|Certification Kit| [commercial][Com]
39+
| QP/C++ | C++ (C++17) |same as SafeQP/C++|Selected Assertions |Req/Arch/Design | [dual][Lic]
40+
| SafeQP/C++| C++ (C++17) |same as QP/C++ |All Safety Functions|Certification Kit| [commercial][Com]
41+
42+
[The documentation](#documentation) of all QP editions includes the
43+
[Requirements][SRS], [Architecture][SAS], and [Design Specifications][SDS],
44+
which are the best source of information about the underlying concepts,
45+
functionality, architecture, and design of the QP Frameworks and the QP
46+
Applications based on the frameworks.
47+
48+
> **NOTE:** The **SafeQP** frameworks additionally contain **Safety Functions**
49+
required to achieve the higher safety integrity levels and come with much more
50+
extensive [Certification Kits][Cert].
51+
1952

2053
# Getting Started with QP/C
2154
The most recommended way of obtaining QP/C is by downloading the
@@ -25,7 +58,7 @@ The main advantage of obtaining QP/C bundled together like that is
2558
that you get all components, tools and examples ready to go.
2659

2760
### Getting Started Resources
28-
- ["QP/C Tutorial"][Tutorial]
61+
- ["QP/C Tutorial"][Tut]
2962
describes a series of progressively advanced QP/C example applications.
3063

3164
- [Video: "Getting Started with QP Real-Time Embedded Frameworks"][Video]
@@ -67,69 +100,11 @@ have been **removed from the open-source GPL distribution**:
67100
the active Support Term. Please contact [Quantum Leaps technical support][Sup]
68101
to get the complete QP/C framework distribution.
69102

70-
> NOTE: To request **evaluation** of the complete QP/C framework, please contact
103+
> **NOTE:** To request **evaluation** of the complete QP/C framework, please contact
71104
Quantum Leaps at: https://www.state-machine.com/contact
72105

73-
# About QP/C
74-
QP/C (Quantum Platform in C) is a lightweight, open source
75-
[Real-Time Embedded Framework (RTEF)][RTEF] for building modern embedded
76-
software as systems of asynchronous, event-driven [Active Objects][Active]
77-
(actors). The [QP/C] framework is a member of a [QP] family consisting of
78-
[QP/C] and [QP/C++] frameworks, which are strictly quality controlled,
79-
thoroughly documented, and [commercially licensable][Lic].
80-
81-
## Safer Model of Concurrency
82-
The [QP] framework family implements the
83-
[Active Object model of computation][AO_model], which is **inherently safer**
84-
than the traditional "shared state concurrency" based on explicit mutual
85-
exclusion and managing RTOS threads by blocking. The Active Object model
86-
supports and automatically enforces the following best practices
87-
of concurrent programming:
88-
89-
- Keep data isolated and bound to Active Objects' threads. Threads should
90-
hide (**encapsulate**) their private data and other resources, and not
91-
share them with the rest of the system.
92-
93-
- Communicate among Active Object threads **asynchronously** via [Event
94-
objects][Event]. Using asynchronous events keeps the threads running truly
95-
independently, **without blocking** on each other.
96-
97-
- Active Object threads should spend their lifetime responding to incoming
98-
events, so their mainline should consist of an **event-loop** that handles
99-
events one at a time (to completion), thus avoiding any concurrency hazards
100-
within an Active Object thread itself.
101-
102-
This architecture also provides higher level of abstraction and the *correct*
103-
abstractions to effectively apply [Hierarchical State Machines][HSM],
104-
**modeling** and **code generation** to deeply embedded real-time systems.
105-
106-
## Hierarchical State Machines
107-
The behavior of Active Objects is specified in QP/C by means of
108-
[Hierarchical State Machines][HSM] (UML statecharts). The framework
109-
supports manual coding of UML state machines in C as well as automatic
110-
**code generation** by means of the free [QM modeling tool][QM].
111-
112-
## Built-in Real-Time Kernels
113-
The QP/C framework can run on standalone on single-chip microcontrollers,
114-
without any traditional RTOS. The framework contains a selection of
115-
**built-in real-time kernels**, such as the [non-preemptive QV kernel][QV],
116-
the [preemptive non-blocking QK kernel][QK], and the preemptive,
117-
[dual-mode QXK kernel][QXK] that provides all the features you might expect
118-
from a traditional RTOS. Native QP ports and ready-to-use examples are provided
119-
for major CPUs, such as ARM Cortex-M (M0/M0+/M3/M4/M7/M23/M33/...).
120-
121-
## Traditional RTOS/OS
122-
QP/C can also work with a traditional RTOS, such as ThreadX, embOS, FreeRTOS,
123-
uC/OS-II and Zephyr, as well as with (embedded) Linux (POSIX) and Windows.
124-
125-
## Popularity and Maturity
126-
With 20 years of continuous development, [400+ commercial licensees][Cust],
127-
and many times more open source users worldwide, the QP frameworks are the
128-
most popular such offering on the market. They power countless electronic
129-
products ranging from implantable medical devices to complex weapon systems.
130-
131-
132-
# QP/C Documentation
106+
107+
# Documentation
133108
The online HTML documentation for the **latest** version of QP/C is located
134109
at: https://www.state-machine.com/qpc
135110

@@ -159,20 +134,25 @@ If you like this project, please give it a star (in the upper-right corner of yo
159134
[QP]: <https://www.state-machine.com/products/qp>
160135
[QP/C]: <https://github.com/QuantumLeaps/qpc>
161136
[QP/C++]: <https://github.com/QuantumLeaps/qpcpp>
162-
[QS/C]: <https://www.state-machine.com/qpc/srs-qp_qs.html>
163-
[QV]: <https://www.state-machine.com/qpc/srs-qp_qv.html>
164-
[QK]: <https://www.state-machine.com/qpc/srs-qp_qk.html>
165-
[QXK]: <https://www.state-machine.com/qpc/srs-qp_qxk.html>
137+
[Cert]: <https://www.state-machine.com/products/qp#CERT>
166138
[QM]: <https://github.com/QuantumLeaps/qm>
167139
[QTools]: <https://github.com/QuantumLeaps/qtools>
168-
[QP-Rel]: <https://github.com/QuantumLeaps/qpc/releases>
169-
[Active]: <https://www.state-machine.com/qpc/srs-qp_ao.html>
170-
[AO_model]: <https://www.state-machine.com/qpc/srs-qp_ao.html#srs-qp_ao-model>
171-
[Event]: <https://www.state-machine.com/qpc/srs-qp_evt.html>
172-
[HSM]: <https://www.state-machine.com/qpc/srs-qp_sm.html>
173140
[Lic]: <https://www.state-machine.com/licensing>
141+
[Com]: <https://www.state-machine.com/licensing#Commercial>
174142
[Cust]: <https://www.state-machine.com/customers>
175143
[Sup]: <mailto:[email protected]>
176144
[AN]: <https://www.state-machine.com/doc/AN_Getting_Started_with_QP.pdf>
177-
[Tutorial]: <https://www.state-machine.com/qpc/gs_tut.html>
178145
[Video]: <https://youtu.be/O7ER6_VqIH0>
146+
[QS]: <https://www.state-machine.com/qpc/srs-qp_qs.html>
147+
[QV]: <https://www.state-machine.com/qpc/srs-qp_qv.html>
148+
[QK]: <https://www.state-machine.com/qpc/srs-qp_qk.html>
149+
[QXK]: <https://www.state-machine.com/qpc/srs-qp_qxk.html>
150+
[SRS]: <https://www.state-machine.com/qpc/srs-qp.html>
151+
[SAS]: <https://www.state-machine.com/qpc/sas-qp.html>
152+
[SDS]: <https://www.state-machine.com/qpc/sds-qp.html>
153+
[Active]: <https://www.state-machine.com/qpc/srs-qp_ao.html>
154+
[AOmod]: <https://www.state-machine.com/qpc/srs-qp_ao.html#srs-qp_ao-model>
155+
[Event]: <https://www.state-machine.com/qpc/srs-qp_evt.html>
156+
[HSM]: <https://www.state-machine.com/qpc/srs-qp_sm.html>
157+
[QP-Rel]: <https://github.com/QuantumLeaps/qpc/releases>
158+
[Tut]: <https://www.state-machine.com/qpc/gs_tut.html>

examples

Submodule examples updated 654 files

0 commit comments

Comments
 (0)