|
From: | Felix Ruess |
Subject: | Re: [Paparazzi-devel] Real Time Paparazzi with ChibiOS/RT |
Date: | Thu, 10 Oct 2013 15:10:37 +0200 |
Here is the first version of Real Time Paparazzi, based on ChibiOS/RT(http://www.chibios.org) and extending work of @enacuavlab. It is certainly not a complete work, rather the first step how to adapt Paparazzi to a RT OS. The system is developed and tested on Lia 1.1 (STM32F1, http://paparazzi.enac.fr/wiki/Lisa/M_v2.0) board, so it can be easily used in existing autopilots.
The system architecture is shown below. To change as little code as possible, Paparazzi interfaces with ChibiOS via new main_chibios.c file (main thread, invoking other threads according to the system settings) and via arch/chibios files. Those are basically middleware, translating between high-level architecture independent paparazzi functions (such as uart_transmit) and ChibiOS HAL API (such as sdWrite).
To get the full potential of RT system, the monolithic Paparazzi application had to be split into more individual threads. Threads are effectively replacing periodic function and events. That is probably the biggest change.
The rewards are control over task timing and priorities,
and hardware independence for Paparazzi.
The ChibiOS drivers are also expected to be more efficient, since DMA is natively used where applicable (USART, SPI).
The code is available here: https://github.com/paparazzi/paparazzi/pull/554
- GCC ARM Embedded toolchain was used for compilation https://launchpad.net/gcc-arm-embedded
[Prev in Thread] | Current Thread | [Next in Thread] |