/embxx_on_rpi

Bare metal applications with embxx on Raspberry Pi

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Overview
-------------------
This main purpose of this project is to test embxx library and demonstrate its 
usage on Raspberry Pi as bare metal platform.

What you need
-------------------
1. Git
2. CMake
3. Cross compiling gcc v4.7 toolchain or greater

How to compile
-------------------
1. Make a build directory and cd there:
   > mkdir <embxx_on_rpi_dir>/build
   > cd <embxx_on_rpi_dir>/build
2. Generate makefiles using CMake while defining CROSS_COMPILE prefix:
   > cmake -DCROSS_COMPILE=/opt/arm-none-eabi-2013.05/bin/arm-none-eabi- ..
   
   If CROSS_COMPILE prefix is not defined "arm-none-eabi-" is used and directory 
   containing all the toolchain utilities must be PATH environment variable.
   > cmake ..
   
   Please note that default cmake build type is similar to Debug mode but 
   without any debug simbols in produced binaries. To change the default
   build type please use CMAKE_BUILD_TYPE definition when using cmake utility:
   > cmake -DCMAKE_BUILD_TYPE=Release -DCROSS_COMPILE=/opt/arm-none-eabi-2013.05/bin/arm-none-eabi- ..
   
   Please refer to CMake documentation for details about its build types.
   
   It is also possible to provide a separate toolchain file instead of 
   specifying CROSS_COMPILE prefix.
   > cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/file ..
   
   The custom toolchain file is expected to be similiar to this example:

       set (CMAKE_SYSTEM_NAME "Generic")
       include(CMakeForceCompiler)
       cmake_force_c_compiler(arm-none-eabi-gcc)
       cmake_force_cxx_compiler(arm-none-eabi-g++)

   For CMake version 3.6 or newer it can look like this:
   
       set (CMAKE_SYSTEM_NAME "Generic")
       set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
       set(CMAKE_C_COMPILER   arm-none-eabi-gcc)
       set(CMAKE_CXX_COMPILER arm-none-eabi-g++)

3. Build the binaries:
   > make
   
   For the verbose make output use VERBOSE=1 environment variable:
   > VERBOSE=1 make
4. The image of every compiled application will be:
   <embxx_build_dir>/image/<app_name>/kernel.img
   
   
Applications
-------------------
See the README files in "src/app" directory for details of what each 
application (image) does.

   
Git branches
-------------------
"master" - main branch, will always contain latest stable (released) version 
     that uses latest stable (released) version of embxx.
"develop" - current development branch that uses latest development version of
     embxx.

Contact information
-------------------
Author: Alex Robenko
E-mail: arobenko@gmail.com