Changes between Initial Version and Version 1 of WikiStart/Toolchain/RTPlatforms


Ignore:
Timestamp:
11/08/12 15:58:43 (7 years ago)
Author:
sylvain.joyeux
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart/Toolchain/RTPlatforms

    v1 v1  
     1For Linux with the RT patchset, nothing special is required 
     2 
     3For Xenomai, you have to realize that: 
     4 * gdb is not accessible to the Xenomai tasks 
     5 * doing non-RT things in a Xenomai tasks leads to primary-to-secondary domains switches which is expensive, so avoid that. 
     6 
     7== Compilation == 
     8Nothing special for LinuxRT 
     9 
     10In the case of Xenomai, one usually compiles RTT two times: one time for gnulinux and one time for xenomai, so that it is possible to use both. '''Autoproj currently does not support this''', so you will have do to one of the two compilations manually. The second compilation should be installed in the same prefix as the overall autoproj prefix (i.e. install/) 
     11 
     12Which target each task should be compiled on is defined by the #orocos_target attribute on the autobuild tasks. Pick the "default" target using the global autoproj configuration option (the "the target operating system for Orocos/RTT (gnulinux or xenomai)" question) and then override this for the packages that you want to deploy on the other target by adding 
     13 
     14{{{ 
     15setup_package("my/orogen/package") do |pkg| 
     16  pkg.orocos_target = "xenomai" 
     17end 
     18}}} 
     19 
     20to autoproj/overrides.rb 
     21 
     22== Deployment == 
     23 
     24There is the need for two things to run as a RT-task: 
     25 
     26  * to be compiled for the RT OS that you chose 
     27  * to be deployed as a realtime task 
     28 
     29The second point requires you to create a manual deployment (automatic deployments always deploy as non-RT). Each RT task needs to be deployed with a priority and on the realtime scheduler with 
     30 
     31{{{ 
     32deployment "controller" do 
     33  task("can0", "canbus::Task"). 
     34    priority(80). 
     35    realtime 
     36end 
     37}}}