[ Please excuse the delay. It took a while to get
   something worth posting sorted out. ]

On 04/03/2016 14:46, Sambeet Panigrahi wrote:
I wanted to build a hello world image of RTEMS using cmake. Can someone
provide me steps for doing so or point me to the right resources ?

I attach a couple of files from a friend of mine, Andi, who knows and works with cmake. I have not tried them and I do not know if they work.

If you have any questions please feel free to ask.

Chris
cmake_minimum_required(VERSION 2.8.11)

set(RTEMS_ROOT_PATH             "/home/andi/development/rtems")
set(RTEMS_TOOLS_INSTALL_DIR     "${RTEMS_ROOT_PATH}/4.12")
set(RTEMS_TOOLS_BSP_LIB_DIR     "${RTEMS_ROOT_PATH}/4.12/sparc-rtems4.12/lib")
set(RTEMS_KERNEL_INSTALL_DIR    "${RTEMS_ROOT_PATH}/sparc-sis")
set(RTEMS_KERNEL_BSP_LIB_DIR    
"${RTEMS_ROOT_PATH}/sparc-sis/sparc-rtems4.12/sis/lib")

set(ENV{PATH} "${RTEMS_TOOLS_INSTALL_DIR}/bin:$ENV{PATH}")
set(RTEMS_TOOLS_BSP_INCLUDE_DIR       "${RTEMS_TOOLS_BSP_LIB_DIR}/include")
set(RTEMS_KERNEL_BSP_INCLUDE_DIR      "${RTEMS_KERNEL_BSP_LIB_DIR}/include")
set(RTEMS_COMPILE_OPTIONS             "-B${RTEMS_KERNEL_BSP_LIB_DIR} 
-B${RTEMS_TOOLS_BSP_LIB_DIR} -specs bsp_specs -qrtems -mcpu=cypress") 

include(CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME         Generic)
set(CMAKE_SYSTEM_PROCESSOR    sparc)
cmake_force_c_compiler("${RTEMS_TOOLS_INSTALL_DIR}/bin/sparc-rtems4.12-gcc"     
GNU)

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE          "RelWithDebInfo"     CACHE STRING "")
endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug RelWithDebInfo 
Release)

set(CMAKE_C_FLAGS_DEBUG             "${RTEMS_COMPILE_OPTIONS} -g"              
CACHE STRING "")
set(CMAKE_C_FLAGS_RELWITHDEBINFO    "${RTEMS_COMPILE_OPTIONS} -g -O2"          
CACHE STRING "")
set(CMAKE_C_FLAGS_RELEASE           "${RTEMS_COMPILE_OPTIONS} -O2 -DNDEBUG"    
CACHE STRING "")

project(hello)

add_executable(HELLO hello.c)
target_include_directories(HELLO BEFORE PRIVATE                           
                           ${RTEMS_TOOLS_BSP_INCLUDE_DIR}
                           ${RTEMS_KERNEL_BSP_INCLUDE_DIR})
/*
 *  Classic API Hello World
 */

#include <rtems.h>
#include <stdlib.h>
#include <stdio.h>

rtems_task Init(rtems_task_argument argument);

rtems_task Init(rtems_task_argument argument)
{    
  printf( "Hello there from rtems_task Init with arg %d\n", argument);
  
  exit( 0 );
}

/* configuration information */

#include <bsp.h>

/* NOTICE: the clock driver is explicitly disabled */
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM

#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_MAXIMUM_TASKS 1

#define CONFIGURE_INIT
#include <rtems/confdefs.h>
/* end of file */
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to