forked from arobenko/embxx_on_rpi
-
Notifications
You must be signed in to change notification settings - Fork 0
Bare metal applications with embxx on Raspberry Pi
License
gazzatav/embxx_on_rpi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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: [email protected]
About
Bare metal applications with embxx on Raspberry Pi
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C++ 93.2%
- CMake 5.3%
- Assembly 1.2%
- C 0.3%