Skip to content
Bare metal applications with embxx on Raspberry Pi
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
external
src
.gitignore
.gitmodules
CMakeLists.txt
COPYING
README

README

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
You can’t perform that action at this time.