Linux ERT target uses heavily real-time capabilities of
[real-time variant of the Linux kernel](https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch)
that provides bounded maximal latencies. The resulting control system
-supports sampling frequencies up to 20 kHz.</p>
+supports sampling frequencies **up to 20 kHz**. Matlab/Simulink GUI
+running on the same GNU/Linux desktop system as the generated
+real-time application is supported.
+
+More information about current version can be found in
+[Michal Sojka's blog post](http://rtime.felk.cvut.cz/~sojka/blog/on-generating-linux-applications-from-simulink/).
+
+
[MathWorks]: http://www.mathworks.com/
[Simulink]: http://en.wikipedia.org/wiki/Simulink
- We will present the a paper
[Usable Simulink Embedded Coder Target for Linux](https://www.osadl.org/?id=2018)
- and RPi motor control demonstartion at
+ and RPi motor control demonstration at
[16th Real Time Linux Workshop](https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html)
taking place on 12 and 13 October 2014 in Dusseldorf Germany. The
[Paper](http://rtime.felk.cvut.cz/publications/public/ert_linux.pdf)
**lintarget** project
[download area](https://sourceforge.net/projects/lintarget/files/).
-- The basic blocks for
- [CAN messages sending and receiption](can_bus/index.html) under
- Linux are implemented.
-
-
-<!-- Current version of the Linux ERT target is optimized to use the proper -->
-<!-- Linux kernel timing mechanism with bounded maximal latencies. -->
-<!-- Matlab/Simulink running on GNU/Linux desktop system as development -->
-<!-- system is supported. More information about current version can be -->
-<!-- found -->
-<!-- in <a href="http://rtime.felk.cvut.cz/~sojka/blog/on-generating-linux-applications-from-simulink/">Michal -->
-<!-- Sojka's blog post</a>. -->
+- The basic blocks for [CAN bus communication](can_bus/index.html)
+ under Linux are implemented.
RT-Capable Platform and Kernel
--------------------
-Standard distribution Linux kernel does not guarantee bounded latencies for many operations.
-The use of [real-time variant](http://rt.wiki.kernel.org/) of [Linux](http://en.wikipedia.org/wiki/Linux)
-kernel is required to make system durable. This kernel variants minimizes regions
-where switch to the highest priority (i.e. Linux ERT generated) task is blocked by
-kernel when servicing system calls for other tasks.
-
-Selection of the right version of the kernel is not enough for non-disruptive
-operation. Computer system hardware selection is critical as well. The system
-has to provide enough computational power for compiled in blocks data evaluation
-evaluation and Linux kernel services processing. Other critical disturbance sources
-are hardware caused latencies and lags in a program processing by CPU. The source
-can be bus systems load by other subsystems (i.e. graphic processor memory access,
-peripheral DMA - SSD, SD-card, Flash controller etc.). The other critical source of
-latencies in x86 based systems is [SMI](http://en.wikipedia.org/wiki/System_Management_Mode)
-processing. The SMI enable and processing is under BIOS and motherboard vendor control
-and this problem cannot be resolved by operating system. This means that proper
-hardware selection is critical.
-
-A long period evaluation data of different combinations of Linux kernel version
-runing on many CPU architectures and boards from many vendors is [OSADL](http://www.osadl.org/)
+Standard distribution Linux kernel does not guarantee bounded
+latencies for many operations. The use of
+[real-time variant](http://rt.wiki.kernel.org/) of
+[Linux](http://en.wikipedia.org/wiki/Linux) kernel is required to
+guarantee bounded latencies. This kernel variants minimizes regions
+where switch to the highest priority (e.g. Linux ERT generated) task
+is blocked by kernel when servicing system calls for other tasks.
+
+Selection of the right version of the kernel is not enough for
+non-disruptive operation. Computer system hardware selection is
+critical as well. The system has to provide enough computational power
+for compiled in blocks data evaluation evaluation and Linux kernel
+services processing. Other critical disturbance sources are hardware
+caused latencies and lags in a program processing by CPU. The source
+can be bus systems load by other subsystems (i.e. graphic processor
+memory access, peripheral DMA - SSD, SD-card, Flash controller etc.).
+The other critical source of latencies in x86 based systems is
+[SMI](http://en.wikipedia.org/wiki/System_Management_Mode) processing.
+The SMI enable and processing is under BIOS and motherboard vendor
+control and this problem cannot be resolved by the operating system.
+This means that proper hardware selection is critical.
+
+A long period evaluation data of different combinations of Linux
+kernel version running on many CPU architectures and boards from many
+vendors is [OSADL](http://www.osadl.org/)
[Quality Assurance Farm](http://www.osadl.org/Quality-assurance-at-the-OSADL-QA-Farm.osadl-services-qa.0.html).
-According to these track records carefully selected x86 or embedded GNU/Linux system can run
-real-time tasks with sampling frequencies up to 20 kHz with no losing sample per months.
+According to these track records carefully selected x86 or embedded
+GNU/Linux system can run real-time tasks with sampling frequencies up
+to 20 kHz with no losing sample per months.
Source Code and Download
--------------------
-<dl>
- <dt>Lintarget at Source Forge</dt>
- <dd>[project download area](https://sourceforge.net/projects/lintarget/files/)
- contains released versions of the Linux target and CANopen based distributed system
- </dd>
- <dt>Linux ERT source code repository</dt>
- <dd>[http://rtime.felk.cvut.cz/gitweb/ert_linux.git](http://rtime.felk.cvut.cz/gitweb/ert_linux.git)
- <br>version updated for real-time and native GNU/Linux host/target system setup
- </dd>
- <dt>Humusoft MF624 card support blockset</dt>
- <dd>[http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git](http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git)
- <br>initial version of blockset supporting analog and digital input/output, IRC, PWM and PWM measurement for MF624 cards.
- </dd>
-</dl>
+- [Download area at Sourceforge](https://sourceforge.net/projects/lintarget/files/)
+ contains released versions of the Linux target and CANopen based
+ distributed system
+- [Linux ERT source code repository](http://rtime.felk.cvut.cz/gitweb/ert_linux.git)
+ (development version).
+- [Humusoft MF624 card support blockset](http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git)
+ <br>Initial version of blockset supporting analog and digital
+ input/output, IRC, PWM and PWM measurement for MF624 cards.
Project Background
[[!img LinTarget.JPG size=300x alt="Original code generation workflow"]]
[[!img CANopenExample.JPG size=300x alt="Model including node controlled over CANopen"]]
-Lukáš Hamáček, “<b>RTW target for Linux with CANopen support</b>”, Master Thesis, Prague 2009. ([Pdf](dp_2009_hamacek_lukas.pdf))
+Lukáš Hamáček, “*RTW target for Linux with CANopen support*”, Master Thesis, Prague 2009. ([Pdf](dp_2009_hamacek_lukas.pdf))
Systems Controlled Linux Target for Embedded Coder
--------------------
See <a href="rpi-motor-control/index.html"> respective page for more information
about project</a>.
</dd>
- <dt>Usable Simulink Embedded Coder Target for Linux</dt>
+ <dt><b>Permanent magnet synchronous motor control (PMSM) with SPI connected peripherals and power stage</b></dt>
+ <dd>The experiment is primarily focussed on school labs. The experiment utilizes
+ two extension boards. One is fully galvanically isolated 3/phases power stage
+ with HAL effect based current sensing and differential IRC signals receiver.
+ The other board provides peripherals (IRC processing and counting,
+ PWM generation, current ADC results collection) required
+ for vector PMSM motor control. This board is connected to
+ <a href="http://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi</a> simple board
+ computer by SPI port. The control algorithm generated by the ERT target
+ runs under fully preemptive Linux kernel at sampling rate 5 kHz.
+ See <a href="rpi-pmsm-control/index.html"> respective page for more
+ information about project</a>.
+ </dd>
+ <dt><b>Usable Simulink Embedded Coder Target for Linux</b></dt>
<dd>Michal Sojka, Pavel Pisa<br>
<a href="https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html">16th Real-Time Linux Workshop</a>,
Düsseldorf, Germany, October 2014.
</dd>
<dt>Rostislav Lisový</dt>
<dd><a href="mailto:lisovros@fel.cvut.cz">lisovros@fel.cvut.cz</a>
- <br>former CTU master study programe student, Linux related projects developer at DCE now.
+ <br>former CTU master study programme student, Linux related projects developer at DCE now.
</dd>
<dt>Libor Waszniowski</dt>
<dd><a href="mailto:xwasznio@fel.cvut.cz">xwasznio@fel.cvut.cz</a>