-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9f79417
commit 3ba405a
Showing
95 changed files
with
7,876 additions
and
2,485 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,55 @@ | ||
# QM sessions | ||
*.qms | ||
|
||
# Prerequisites | ||
*.d | ||
|
||
# Compiled Object files | ||
*.slo | ||
*.lo | ||
# Object files | ||
*.o | ||
*.ko | ||
*.obj | ||
*.elf | ||
|
||
# Linker output | ||
*.ilk | ||
*.map | ||
*.exp | ||
|
||
# Precompiled Headers | ||
*.gch | ||
*.pch | ||
|
||
# Compiled Dynamic libraries | ||
# Libraries | ||
*.lib | ||
*.a | ||
*.la | ||
*.lo | ||
|
||
# Shared objects (inc. Windows DLLs) | ||
*.dll | ||
*.so | ||
*.so.* | ||
*.dylib | ||
*.dll | ||
|
||
# Fortran module files | ||
*.mod | ||
*.smod | ||
|
||
# Compiled Static libraries | ||
*.lai | ||
*.la | ||
*.a | ||
*.lib | ||
|
||
# Executables | ||
*.exe | ||
*.out | ||
*.app | ||
*.i*86 | ||
*.x86_64 | ||
*.hex | ||
|
||
# Debug files | ||
*.dSYM/ | ||
*.su | ||
*.idb | ||
*.pdb | ||
|
||
# Kernel Module Compile Results | ||
*.mod* | ||
*.cmd | ||
.tmp_versions/ | ||
modules.order | ||
Module.symvers | ||
Mkfile.old | ||
dkms.conf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,131 @@ | ||
![STM32 EFM32-SLSTK3401A](../../../doxygen/images/bd_EFM32-SLSTK3401A.jpg) | ||
> **NOTE** | ||
This file is best viewed in a **markdown viewer**, such as the one built into GitHub. Markdown viewers are also available as plug-ins to popular Internet browsers. | ||
|
||
Documentation for this example is available in the QP/C Manual at: | ||
# DPP on EFM32-SLSTK3401A | ||
This example demonstrates the [Dining Philosophers Problem (DPP) application](https://www.state-machine.com/qpc/tut_dpp.html) on the EFM32-SLSTK3401A board (ARM Cortex-M4F). | ||
|
||
<p align="center"> | ||
<img src="efm32-slstk3401a.webp"/><br> | ||
<b>EFM32-SLSTK3401A (Pearl Gecko)</b> | ||
</p> | ||
|
||
## Features Demonstrated | ||
- multiple cooperating active objects | ||
- immutable (const) events | ||
- mutable (dynamic) events | ||
- time events | ||
- direct event posting | ||
- publish-subscribe event delivery | ||
- cooperative QV kernel | ||
+ with ARM-KEIL toolchain | ||
+ with GNU-ARM toolchain | ||
+ with IAR-ARM toolchain | ||
- preemptive run-to-completion QK kernel | ||
+ with ARM-KEIL toolchain | ||
+ with GNU-ARM toolchain | ||
+ with IAR-ARM toolchain | ||
- preemptive dual-mode QXK kernel | ||
+ with ARM-KEIL toolchain | ||
+ with GNU-ARM toolchain | ||
+ with IAR-ARM toolchain | ||
|
||
## Build Configurations | ||
- Debug | ||
- Release | ||
- Spy - software tracing with the built-in virtual COM port | ||
|
||
# Code Organization | ||
``` | ||
examples\arm-cm\dpp_efm32-slstk3401a | ||
| | ||
+---qk // preemptive QK kernel | ||
| +---gnu // GNU-ARM toolchain | ||
| | \---targetConfigs | ||
| | Makefile // Makefile for GNU-ARM | ||
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG) | ||
| | dpp-qk.uvprojx // uVision project | ||
| \---iar // IAR EWARM | ||
| dpp-qk.eww // IAR EW-ARM workspace | ||
| | ||
\---qv // cooperative QK kernel | ||
| +---gnu // GNU-ARM toolchain | ||
| | \---targetConfigs | ||
| | Makefile // Makefile for GNU-ARM | ||
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG) | ||
| | dpp-qv.uvprojx // uVision project | ||
| \---iar // IAR EWARM | ||
| dpp-qv.eww // IAR EW-ARM workspace | ||
| | ||
+---qxk // preemptive, dual-mode QXK kernel | ||
| +---gnu // GNU-ARM toolchain | ||
| | \---targetConfigs | ||
| | Makefile // Makefile for GNU-ARM | ||
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG) | ||
| | dpp-qk.uvprojx // uVision project | ||
| \---iar // IAR EWARM | ||
| dpp-qk.eww // IAR EW-ARM workspace | ||
| | ||
``` | ||
|
||
# Building the example | ||
|
||
### GNU/ARM | ||
- open terminal window | ||
- change to the desired directory (either `examples\arm-cm\dpp_efm32-slstk3401a\qk\gnu`, `examples\arm-cm\dpp_efm32-slstk3401a\qv\gnu`, or `examples\arm-cm\dpp_efm32-slstk3401a\qxk\gnu`) | ||
- to build the default Debug configuration, type: | ||
|
||
``` | ||
make | ||
``` | ||
|
||
> **NOTE** | ||
The `make` utility for Windows is provided in the QTools collection for Windows. | ||
|
||
- to build the Release configuration, type: | ||
|
||
``` | ||
make CONF=rel | ||
``` | ||
|
||
- to build the Spy configuration, type: | ||
|
||
``` | ||
make CONF=spy | ||
``` | ||
|
||
|
||
### ARM/KEIL MDK | ||
- Open the provided KEIL uVision project (either `dpp-qk.uvprojx`, `dpp-qv.uvprojx`, or `dpp-qxk.uvprojx`) | ||
in Keil uVision IDE. Build/Debug/Download to the board from the IDE. | ||
- Change the build configuration in the "Project Target" drop-down menu. | ||
|
||
|
||
### IAR EWARM | ||
- Open the provided IAR EWARM workspace (either `dpp-qk.eww`, `dpp-qv.eww`, or `dpp-qxk.eww`) | ||
in IAR EWARM IDE. Build/Debug/Download to the board from the IDE. | ||
- Change the build configuration in the "Project Configuration" drop-down menu. | ||
|
||
|
||
# Tracing with QP/Spy | ||
When the board is flashed with the Spy build configuration, it produces the QP/Spy software tracing output to the built-in virtual COM port of the TivaC LauchPad board. The trace is binary rather than ASCII, and therefore requires a special host-based application called QSPY. | ||
|
||
> **NOTE** QSPY host application is available in the QTools collection. | ||
To launch the QSPY host application: | ||
- open terminal window | ||
- type: | ||
|
||
``` | ||
qspy -c COM5 | ||
``` | ||
|
||
where "COM5" is an example virtual COM port enumerated by the board. You need to check the specific COM port number on your host computer using the Device Manager application, Ports (COM and LPT) section. | ||
|
||
|
||
The following screen shot shows a typical output from QSPY: | ||
|
||
<p align="center"> | ||
<img src="./qspy-output.png"/><br> | ||
<b>Typical QSPY output produced by the Spy build configuration</b> | ||
</p> | ||
|
||
- https://www.state-machine.com/qpcpp/arm-cm_dpp_efm32-slstk3401a.html |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.