## For instruction on writing tutorials ## http://www.ros.org/wiki/WritingTutorials #################################### ##FILL ME IN #################################### ## for a custom note with links: ## note = ## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links ## note.0= ## descriptive title for the tutorial ## title = Toolchain Bridge ## multi-line description to be displayed in search ## description = Convert an existing toolchain into an ros-ready toolchain. ## the next tutorial description (optional) ## next = ## links to next tutorial (optional) ## next.0.link= ## next.1.link= ## what level user is this tutorial for ## level= IntermediateCategory ## keywords = #################################### <> <> ## AUTOGENERATED DO NOT DELETE ## TutorialCategory ## FILL IN THE STACK TUTORIAL CATEGORY HERE == Overview == Quite often with embedded development you will be provided with a BSP (board support package) or a ready made toolchain (e.g. code sourcery's arm toolchain) to work with. This however is not ros-ready as it lacks various packages required by the ros to do a [[eros/Tutorials/Full Cross|full cross]]. This is where eros' toolchain bridge comes in. It provides build recipes to quickly deploy these few packages to an existing toolchain. These cross-compiles are often rather messy, and so having them here saves people having to reinvent the wheel and learn all the ins and outs whenever they want to tackle the job of crossing the ros. == The Bridge == === Core Rosdeps === Ok, to do a full cross, we need to make sure we have the core rosdeps installed in our toolchain, i.e. we need to bridge it. * Natively build ros core, set a cmake toolchain module and then protect the ros build (i.e. set up for a [[eros/Tutorials/Partial Cross|partial cross]]). * If you wish to change the build mode from the default, RelWithDebInfo, use [[eros_python_tools/rosbuild|rosbuild]]. * Make sure the install prefix is configured correctly using [[eros_python_tools/rosprefix|rosprefix]]. * e.g. `/usr/arm-samsung-linux-gnueabi/usr/`. * Cross compile the dependencies. {{{ roscd eros_apr; make; make install roscd eros_apr_util; make; make install roscd eros_log4cxx; make; make install roscd eros_boost; make; make install }}} * You may now proceed to the [[eros/Tutorials/Full Cross|full cross]]. The above just ensures you have the minimal set of rosdeps to cross the ros core. === Peripheral Rosdeps === Do not have any other builds for non core rosdeps yet. === Utilities === Other commonly crossed packages for embedded development include: * [[eros_opencv]] : a lightweight, gui-less compilation of opencv. * [[eros_gdbserver]] : remote debugging utility. == Notes == Note that eros does not plan to become a full repository doing this sort of thing - that is a mammoth job and already undertaken by projects such as T2 or !OpenEmbedded. Future versions of eros hope to be able to tap into these resources rather than replicate what they already do well.