Commit 55931ad7 authored by Maxime Perrotin's avatar Maxime Perrotin
parents c5c89915 0e86b129
# This script is adapted from https://github.com/AdaCore/Ada_Drivers_Library
################################################################################
# Ocarina travis-ci configuration file.
# This script compiles and test Ocarina for Linux and OS X targets
#
# Note: this travis-ci script is adapted from
# https://github.com/AdaCore/Ada_Drivers_Library
#
# Thanks to AdaCore for providing it
# We are using Python 2.7 to run the testsuite
language: python
python:
- "2.7"
################################################################################
# Note: we are using 'generic' as a language. We need GNAT to compile
# Ocarina, and Python to run Ocarina testsuite. We install a specific
# GNAT GPL release to compile and run everything.
language: generic
osx_image: xcode8.3
# Global variables
env:
global:
- TOOLS_DIR=$HOME/build_tools
- GNAT_TAR_PATH=$TOOLS_DIR/gnat-gpl-2016-x86_64-linux-bin.tar.gz
- INSTALL_DIR=$HOME/tools
################################################################################
# Host to run the various tests
os:
- linux
- osx
################################################################################
# Install the build environment, derived from travis default installation
# 1/ Cache directory that allows us to not download GNAT GPL every time,
# speeding up the process.
# Cache directory that allows us to not download GNAT GPL every time, speeding
# up the process.
cache:
directories:
- $HOME/build_tools
- $HOME/tools
install:
# Check if the GNAT package is already available in the cache directory. If
# not, download it.
- test -f $GNAT_TAR_PATH ||( mkdir -p $TOOLS_DIR && wget http://mirrors.cdn.adacore.com/art/5739cefdc7a447658e0b016b -O $GNAT_TAR_PATH)
# 2/ Check Python installation
before_install:
- which python
# Extract GNAT from its package
- tar -xf $GNAT_TAR_PATH
# 3/ Install GNAT
# Add GNAT to $PATH
- export PATH=$PWD/gnat-gpl-2016-x86_64-linux-bin/bin/:$PATH
install:
- git clone https://github.com/OpenAADL/ocarina-build.git ; ( cd ocarina-build ; ./build_ocarina.sh --install-gnat-ce ; cd $HOME)
- export PATH=$HOME/tools/bin:$PATH
- echo $PATH
################################################################################
# Main processing starts here
script:
# Show GNAT version for the record
......@@ -37,5 +59,29 @@ script:
- gnatls -v
# Just build
#- ./support/reconfig && ./configure && make
- git clone https://github.com/OpenAADL/ocarina-build.git ; ( cd ocarina-build ; ./build_ocarina.sh --scenario=travis-ci )
\ No newline at end of file
- ( cd ocarina-build ; ./build_ocarina.sh --scenario=travis-ci )
# Codecov.io
after_success:
- bash <(curl -s https://codecov.io/bash)
################################################################################
#
before_deploy:
- export OCARINA_SRC=$(find . -name "*tar.gz")
- echo $OCARINA_SRC
- export OCARINA_BIN=$(find . -name "*tgz")
- echo $OCARINA_BIN
deploy:
provider: releases
api_key:
secure: JIs5VZq+T0m42jasHpuDHXjJwgmQNGDaNJos9xHG01b5tvrG9NRIPjB4AFh1RiJBQ8LYFRpcRkrEzbAHs9H4jh7zLrdaAGRo6v0G/h5aowWNGoTiT6sMy5ATX6cuMO/treCEWWEUpUsDy5GSebsRkGhbMjH3d2kZ3933SJIg+kI=
skip_cleanup: true
file:
- "${OCARINA_SRC}"
- "${OCARINA_BIN}"
on:
tags: true
all_branches: true
......@@ -84,6 +84,7 @@ typedef struct {
void __po_hi_c_mil_1553_conf_t_devname_Initialize(__po_hi_c_mil_1553_conf_t_devname val);
void __po_hi_c_mil_1553_conf_t_Initialize(__po_hi_c_mil_1553_conf_t* pVal);
<<<<<<< HEAD
#define ERR_MIL_1553_CONF_T 105 /**/
#define ERR_MIL_1553_CONF_T_DEVNAME 29 /**/
#define ERR_MIL_1553_CONF_T_STANDARD_2 43 /**/
......@@ -93,6 +94,17 @@ void __po_hi_c_mil_1553_conf_t_Initialize(__po_hi_c_mil_1553_conf_t* pVal);
#define ERR_MIL_1553_CONF_T_BROADCAST 84 /**/
#define ERR_MIL_1553_CONF_T_RXBLOCK 91 /**/
#define ERR_MIL_1553_CONF_T_TXBLOCK 98 /**/
=======
#define ERR_MIL_1553_CONF_T 101 /**/
#define ERR_MIL_1553_CONF_T_DEVNAME 29 /**/
#define ERR_MIL_1553_CONF_T_STANDARD 36 /**/
#define ERR_MIL_1553_CONF_T_MODE 47 /**/
#define ERR_MIL_1553_CONF_T_BUS 58 /**/
#define ERR_MIL_1553_CONF_T_TERMADDR 69 /**/
#define ERR_MIL_1553_CONF_T_BROADCAST 80 /**/
#define ERR_MIL_1553_CONF_T_RXBLOCK 87 /**/
#define ERR_MIL_1553_CONF_T_TXBLOCK 94 /**/
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
flag __po_hi_c_mil_1553_conf_t_IsConstraintValid(const __po_hi_c_mil_1553_conf_t* pVal, int* pErrCode);
......
......@@ -3,6 +3,18 @@
#include <stddef.h>
<<<<<<< HEAD
=======
#if (!defined(_MSC_VER) || _MSC_VER >= 1800)
# ifndef SWIG
# include <stdbool.h>
# endif
#else
typedef unsigned char bool;
#define true 1
#define false 0
#endif
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#ifdef __cplusplus
extern "C" {
......@@ -48,13 +60,24 @@ typedef unsigned long long uint64_t;
#ifndef FP_WORD_SIZE
#define FP_WORD_SIZE 8
#endif
<<<<<<< HEAD
#define OBJECT_IDENTIFIER_MAX_LENGTH 20
=======
#define OBJECT_IDENTIFIER_MAX_LENGTH 20
typedef float asn1Real32;
typedef double asn1Real64;
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
<<<<<<< HEAD
typedef float asn1Real32;
typedef double asn1Real64;
typedef uint8_t byte;
typedef int32_t asn1SccSint32;
......@@ -63,6 +86,14 @@ typedef uint32_t asn1SccUint32;
typedef int64_t asn1SccSint64;
typedef uint64_t asn1SccUint64;
=======
typedef int asn1SccSint32;
typedef unsigned int asn1SccUint32;
typedef long long asn1SccSint64;
typedef unsigned long long asn1SccUint64;
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#if WORD_SIZE==8
typedef asn1SccUint64 asn1SccUint;
typedef asn1SccSint64 asn1SccSint;
......@@ -71,9 +102,12 @@ typedef asn1SccUint32 asn1SccUint;
typedef asn1SccSint32 asn1SccSint;
#endif
<<<<<<< HEAD
asn1SccUint int2uint(asn1SccSint v);
asn1SccSint uint2int(asn1SccUint v, int uintSizeInBytes);
=======
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#if FP_WORD_SIZE==8
typedef asn1Real64 asn1Real;
#else
......@@ -152,6 +186,7 @@ typedef struct {
#define ERR_INVALID_BER_FILE 201
#define ERR_BER_LENGTH_MISMATCH 202
<<<<<<< HEAD
int GetCharIndex(char ch, byte allowedCharSet[], int setLen);
void ObjectIdentifier_Init(Asn1ObjectIdentifier *pVal);
......@@ -206,6 +241,22 @@ typedef struct {
Asn1Date date;
Asn1LocalTime time;
} Asn1DateLocalTime;
=======
flag OctetString_equal(int len1, int len2, const byte arr1[], const byte arr2[]);
flag BitString_equal(int nBitsLength1, int nBitsLength2, const byte arr1[], const byte arr2[]);
void ObjectIdentifier_Init(Asn1ObjectIdentifier *pVal);
flag ObjectIdentifier_equal(const Asn1ObjectIdentifier *pVal1, const Asn1ObjectIdentifier *pVal2);
flag ObjectIdentifier_isValid(const Asn1ObjectIdentifier *pVal);
flag RelativeOID_isValid(const Asn1ObjectIdentifier *pVal);
int GetCharIndex(char ch, byte allowedCharSet[], int setLen);
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
typedef struct {
Asn1Date date;
......@@ -225,11 +276,25 @@ typedef enum {
typedef asn1SccUint BerTag;
<<<<<<< HEAD
=======
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#if WORD_SIZE==8
extern const asn1SccUint64 ber_aux[];
#else
extern const asn1SccUint32 ber_aux[];
#endif
<<<<<<< HEAD
=======
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#define CHECK_BIT_STREAM(pBitStrm) assert((pBitStrm)->currentByte*8+(pBitStrm)->currentBit<=(pBitStrm)->count*8)
......
......@@ -65,15 +65,24 @@ void __po_hi_c_ip_conf_t_gateway_Initialize(__po_hi_c_ip_conf_t_gateway val);
void __po_hi_c_ip_conf_t_dns_Initialize(__po_hi_c_ip_conf_t_dns val);
void __po_hi_c_ip_conf_t_Initialize(__po_hi_c_ip_conf_t* pVal);
<<<<<<< HEAD
#define ERR_IP_CONF_T 81 /**/
=======
#define ERR_IP_CONF_T 79 /**/
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
#define ERR_IP_CONF_T_DEVNAME 15 /**/
#define ERR_IP_CONF_T_ADDRESS 22 /**/
#define ERR_IP_CONF_T_BROADCAST 29 /**/
#define ERR_IP_CONF_T_NETMASK 36 /**/
#define ERR_IP_CONF_T_GATEWAY 43 /**/
#define ERR_IP_CONF_T_DNS 50 /**/
<<<<<<< HEAD
#define ERR_IP_CONF_T_VERSION_2 64 /**/
#define ERR_IP_CONF_T_PORT_2 76 /**/
=======
#define ERR_IP_CONF_T_VERSION 57 /**/
#define ERR_IP_CONF_T_PORT 68 /**/
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
flag __po_hi_c_ip_conf_t_IsConstraintValid(const __po_hi_c_ip_conf_t* pVal, int* pErrCode);
extern const __po_hi_c_ip_conf_t localhost1;
......
......@@ -73,6 +73,7 @@ void __po_hi_c_serial_conf_t_bits_Initialize(__po_hi_c_serial_conf_t_bits* pVal)
void __po_hi_c_serial_conf_t_sending_wait_Initialize(__po_hi_c_serial_conf_t_sending_wait* pVal);
void __po_hi_c_serial_conf_t_Initialize(__po_hi_c_serial_conf_t* pVal);
<<<<<<< HEAD
#define ERR_SERIAL_CONF_T 67 /**/
#define ERR_SERIAL_CONF_T_DEVNAME 15 /**/
#define ERR_SERIAL_CONF_T_SPEED_2 29 /**/
......@@ -80,6 +81,15 @@ void __po_hi_c_serial_conf_t_Initialize(__po_hi_c_serial_conf_t* pVal);
#define ERR_SERIAL_CONF_T_BITS 46 /**/
#define ERR_SERIAL_CONF_T_SENDING_WAIT 53 /**/
#define ERR_SERIAL_CONF_T_USE_PARITYBIT 60 /**/
=======
#define ERR_SERIAL_CONF_T 65 /**/
#define ERR_SERIAL_CONF_T_DEVNAME 15 /**/
#define ERR_SERIAL_CONF_T_SPEED 22 /**/
#define ERR_SERIAL_CONF_T_PARITY 33 /**/
#define ERR_SERIAL_CONF_T_BITS 44 /**/
#define ERR_SERIAL_CONF_T_SENDING_WAIT 51 /**/
#define ERR_SERIAL_CONF_T_USE_PARITYBIT 58 /**/
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
flag __po_hi_c_serial_conf_t_IsConstraintValid(const __po_hi_c_serial_conf_t* pVal, int* pErrCode);
extern const __po_hi_c_serial_conf_t linux_ttyS0;
......
......@@ -57,6 +57,7 @@ typedef struct {
void __po_hi_c_spacewire_conf_t_devname_Initialize(__po_hi_c_spacewire_conf_t_devname val);
void __po_hi_c_spacewire_conf_t_Initialize(__po_hi_c_spacewire_conf_t* pVal);
<<<<<<< HEAD
#define ERR_SPACEWIRE_CONF_T 93 /**/
#define ERR_SPACEWIRE_CONF_T_DEVNAME 22 /**/
#define ERR_SPACEWIRE_CONF_T_NODEADDR_2 36 /**/
......@@ -66,6 +67,17 @@ void __po_hi_c_spacewire_conf_t_Initialize(__po_hi_c_spacewire_conf_t* pVal);
#define ERR_SPACEWIRE_CONF_T_REMOVE_PROT_ID 72 /**/
#define ERR_SPACEWIRE_CONF_T_RXBLOCK 79 /**/
#define ERR_SPACEWIRE_CONF_T_TXBLOCK 86 /**/
=======
#define ERR_SPACEWIRE_CONF_T 90 /**/
#define ERR_SPACEWIRE_CONF_T_DEVNAME 22 /**/
#define ERR_SPACEWIRE_CONF_T_NODEADDR 29 /**/
#define ERR_SPACEWIRE_CONF_T_COREFREQ 40 /**/
#define ERR_SPACEWIRE_CONF_T_CLOCKDIV 51 /**/
#define ERR_SPACEWIRE_CONF_T_USE_ROUTER 62 /**/
#define ERR_SPACEWIRE_CONF_T_REMOVE_PROT_ID 69 /**/
#define ERR_SPACEWIRE_CONF_T_RXBLOCK 76 /**/
#define ERR_SPACEWIRE_CONF_T_TXBLOCK 83 /**/
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
flag __po_hi_c_spacewire_conf_t_IsConstraintValid(const __po_hi_c_spacewire_conf_t* pVal, int* pErrCode);
extern const __po_hi_c_spacewire_conf_t leon_rasta_spw_sender;
......
......@@ -130,6 +130,42 @@ int __po_hi_gqueue_next_value(__po_hi_task_id id,
int __po_hi_gqueue_get_count(__po_hi_task_id id,
__po_hi_local_port_t port);
/**
* \brief Compute dispatch condition :
* return 1 when the condition of one of the transitions that stemmed from the next
* complete state is verified (i.e. all its dispatch triggers received events on
* their corresponding ports) else return 0.
* It also sets the index of the transition to execute according to the condition that is
* verified.
*
* \param id thread identifier in the local process.
* \param next_complete_state the struct that contains arrays informations about
* transitions and dispatch triggers of the next complete state.
* \param initial_sizes_of_dispatch_triggers_of_all_transitions array that contains the number of
* events that are pending each dispatch ports of all transitions.
* \param index_transition_to_execute the index of transition to execute,
* this parameter will be set according to the transition whose condition is verified.
*/
__po_hi_bool_t __po_hi_gqueue_compute_index_transition_to_execute (__po_hi_task_id id,
__po_hi_ba_automata_state_t* next_complete_state,
int* initial_sizes_of_dispatch_triggers_of_all_transitions,
__po_hi_int32_t* index_transition_to_execute);
/**
* \brief Wait until all the specified dispatch events (according to the next complete state)
* are received on the corresponding ports for a given thread.
*
* \param id thread identifier in the local process.
* \param next_complete_state the struct that contains arrays informations about
* transitions and dispatch triggers of the next complete state.
* \param index_transition_to_execute the index of transition to execute,
* this parameter will be set according to the transition whose condition is verified.
*/
void __po_hi_gqueue_wait_for_specific_incoming_events (__po_hi_task_id id,
__po_hi_ba_automata_state_t* next_complete_state,
__po_hi_int32_t* index_transition_to_execute);
/**
* \brief Wait until an event is received on any port for a given thread.
*
......
......@@ -104,6 +104,41 @@ typedef enum
__PO_HI_INVALID_PORT_KIND = 50
}__po_hi_port_kind_t;
typedef enum
{
__po_hi_initial,
__po_hi_initial_complete,
__po_hi_initial_complete_final,
__po_hi_initial_final,
__po_hi_complete,
__po_hi_complete_final,
__po_hi_final,
__po_hi_execution
} __po_hi_state_kind_t;
typedef struct
{
__po_hi_int32_t nb_transitions;
__po_hi_int32_t* nb_dispatch_triggers_of_each_transition;
__po_hi_int32_t* dispatch_triggers_of_all_transitions;
__po_hi_int32_t nb_of_all_dispatch_events;
} __po_hi_ba_automata_state_t;
/* __po_hi_vcd_event_kind_t : this type enumerates the different
* kinds of events caught in the vcd trace */
typedef enum
{
__po_hi_task_wait_dispatch,
__po_hi_task_dispatched,
__po_hi_store_in_port_queue,
__po_hi_next_value_port_queue,
} __po_hi_vcd_event_kind_t;
void __po_hi_copy_array (void* dst, void* src, __po_hi_uint32_t size);
#endif /* __PO_HI_TYPES_H_ */
......@@ -25,6 +25,66 @@ unsigned long __po_hi_swap_byte (unsigned long value);
#include <pthread.h>
#include <string.h>
#include <deployment.h>
/* Types used to store the vcd trace */
typedef struct
{
__po_hi_vcd_event_kind_t vcd_event_kind;
uint64_t __po_hi_vcd_trace_timestamp;
__po_hi_task_id task_id;
__po_hi_local_port_t port_id;
__po_hi_port_id_t port_queue_used_size;
} __po_hi_vcd_trace_element_t;
/* __po_hi_vcd_trace_max_nb_events used to reallocate the array
* of the vcd trace */
__po_hi_int32_t __po_hi_vcd_trace_max_nb_events;
/* __po_hi_vcd_trace_array an array containing the vcd trace
* as elements with type __po_hi_vcd_trace_element_t */
__po_hi_vcd_trace_element_t* __po_hi_vcd_trace_array;
/* __po_hi_vcd_trace_array_index is the index of __po_hi_vcd_trace_array
* it should be protected as it is shared between tasks used to
* save a new element in the array*/
__po_hi_int32_t __po_hi_vcd_trace_array_index;
/* mutex used to protect the index __po_hi_vcd_trace_array_index */
pthread_mutex_t __po_hi_vcd_trace_mutex;
/* __po_hi_get_larger_array_for_vcd_trace allows to reallocate a larger
* array to save the vcd trace */
void __po_hi_get_larger_array_for_vcd_trace (void);
/* __po_hi_save_event_in_vcd_trace allows to save an element in
* __po_hi_vcd_trace_array */
void __po_hi_save_event_in_vcd_trace (uint64_t timestamp, __po_hi_vcd_event_kind_t event_kind, __po_hi_task_id task, __po_hi_local_port_t port, __po_hi_port_id_t queue_size);
/* __po_hi_compute_timestamp : returns the actual instant
* based on the __po_hi_vcd_start_t instant. The returned
* value is in (ms) */
uint64_t __po_hi_compute_timestamp (void);
/* __po_hi_vcd_start_t is the start time and it is
* set in the procedure __po_hi_initialize_vcd_trace */
__po_hi_time_t __po_hi_vcd_start_t;
/* __po_hi_signalHandler is a SIGINT signal handler : it is invoked when
* Ctrl-c is pressed in the keyboard to interrupt the execution
* of the application. This handler allows a normal exit
* of the program which enables the invocation
* of the atexit function */
void __po_hi_signalHandler(int signo);
/* __po_hi_signalHandler create the vcd file and fill it
* with the vcd trace saved in __po_hi_vcd_trace_array */
void __po_hi_create_vcd_file(void);
/* __po_hi_initialize_vcd_trace initializes some variables and catches
* the SIGINT signal*/
void __po_hi_initialize_vcd_trace (void);
/* Variable keeping track of whether VCD tracing is enabled or not */
enum tagVCD {
......@@ -35,45 +95,9 @@ enum tagVCD {
void __po_hi_instrumentation_vcd_init (void);
#define __PO_HI_INSTRUMENTATION_VCD_INIT __po_hi_instrumentation_vcd_init ();
#define __PO_HI_INSTRUMENTATION_VCD_WRITE(s, args...) \
{ \
extern enum tagVCD VCD_state; \
if (VCD_state == VCD_ENABLED) { \
extern int __po_hi_vcd_file; \
extern __po_hi_time_t __po_hi_vcd_start_time; \
extern pthread_mutex_t __po_hi_vcd_mutex; \
__po_hi_time_t __po_hi_vcd_current_time; \
char buf[1024]; \
int size_to_write = 0; \
uint64_t st,ct,et = 0; \
\
pthread_mutex_lock (&__po_hi_vcd_mutex); \
\
if (__po_hi_get_time(&__po_hi_vcd_current_time) != __PO_HI_SUCCESS) \
{ \
__DEBUGMSG("[POHIC-INSTRUMENTATION] Could not retrieve time\n"); \
} \
else \
{ \
st = __PO_HI_TIME_TO_US(__po_hi_vcd_start_time); \
ct = __PO_HI_TIME_TO_US(__po_hi_vcd_current_time); \
et = ct - st ; \
memset (buf, '\0', 1024); \
size_to_write = sprintf (buf, "#%llu\n", et); \
write (__po_hi_vcd_file, buf, size_to_write); \
\
memset (buf, '\0', 1024); \
size_to_write = sprintf (buf, s, ##args); \
write (__po_hi_vcd_file, buf, size_to_write); \
} \
pthread_mutex_unlock (&__po_hi_vcd_mutex); \
} \
}
#define __PO_HI_INITIALIZE_VCD_TRACE __po_hi_initialize_vcd_trace ();
#else
#define __PO_HI_INSTRUMENTATION_VCD_WRITE(s, args...)
#define __PO_HI_INSTRUMENTATION_VCD_INIT
#define __PO_HI_INITIALIZE_VCD_TRACE
#endif
#endif /* __PO_HI_UTILS_H__ */
......@@ -6,16 +6,19 @@
## This file has been built for a generic RTEMS integration
MANAGERS = all
LIBS = -lrtemsall -lc
MANAGERS = sem rtmon msg timer io
LIBS = #-lrtemsall -lc
RTEMS_USES_NEWLIB = no
# PolyORb-HI/C specific flags
# PolyORB-HI/C specific flags
POHI_CFLAGS = -DRTEMS_POSIX -DLEON_RTEMS $(GCC_GENERIC_FLAGS)
# RTEMS/AIR specific flags
POHI_CFLAGS += -DAIR_HYPERVISOR -I$(AIR_ROOT)/pmk/core/include \
-I$(AIR_ROOT)/pmk/arch/sparc/include \
-I$(AIR_ROOT)/install/libs/imaspex/include/
POHI_CFLAGS += -DAIR_HYPERVISOR -I$(AIR_ROOT)/pmk/core/include \
-I$(AIR_ROOT)/pmk/arch/sparc/include \
-I$(AIR_ROOT)/install/libs/imaspex/include/ -I./ -B./ -I../common/ \
-B../common/ -DRTEMS5 -B$(AIR_LIBS)/imaspex/ -B$(AIR_LIBS)/libprintf/ \
-B$(AIR_LIBS)/libair/
LD_LIBS = $(AIR_LIBS)/libprintf/libprintf.a \
$(AIR_LIBS)/libair/libair.a $(AIR_LIBS)/imaspex/imaspex.a
......@@ -23,12 +26,19 @@ $(AIR_LIBS)/libair/libair.a $(AIR_LIBS)/imaspex/imaspex.a
LINK_LIBS += $(AIR_LIBS)/libprintf/libprintf.a \
$(AIR_LIBS)/libair/libair.a $(AIR_LIBS)/imaspex/imaspex.a
# The RTEMS_MAKEFILE_PATH is defined by the user for the specific CPU and BSP
RTEMS_MAKEFILE_PATH=$(AIR_POS)/rtems5/rtems5-install/sparc-rtems5/leon3
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
CPPFLAGS += -DAIR_HYPERVISOR./ -I./ -B./ -I../common/ -B../common/ \
-DRTEMS5 -B$(AIR_LIBS)/imaspex/ -B$(AIR_LIBS)/libprintf/ \
-B$(AIR_LIBS)/libair/
CPPFLAGS += -DAIR_HYPERVISOR./ -I./ -B./ -I../common/ -B../common/ -B$(AIR_LIBS)/libprintf/ -B$(AIR_LIBS)/libair/
TARGET_LDFLAGS += -Wl,--gc-sections -Wl,--wrap=printf -Wl,--wrap=puts \
-Wl,--wrap=putchar
##############################################################################
# RTEMS_API is defined as part of RTEMS BSP Makefile. It reports the
......@@ -61,8 +71,8 @@ ifeq ($(RTEMS_API),4.12)
endif
ifeq ($(RTEMS_API),5)
POHI_CFLAGS += -DRTEMS412
TARGET_LDFLAGS += -L$(RUNTIME_PATH)/libs/leon-rtems4.12/ -lm
POHI_CFLAGS += -DRTEMS5
TARGET_LDFLAGS += -lm
endif
##############################################################################
......@@ -91,20 +101,8 @@ ifeq ($(RTEMS_BSP),leon2)
POHI_CFLAGS += -DGRLEON2
endif
ifdef USE_GPROF
TARGET_LDFLAGS+=-Wl,--wrap,Clock_isr -pg
EXTERNAL_OBJECTS+=po_hi_gprof_rtems_leon.o
TARGET_INCLUDE+=-I$(RTEMS_MAKEFILE_PATH)/lib/include/
target-objects:
$(CC) $(INCLUDE) $(TARGET_INCLUDE) -D__PO_HI_USE_GPROF -Wall -c -o po_hi_gprof_rtems_leon.o $(RUNTIME_PATH)/src/po_hi_gprof_rtems_leon.c
else
target-objects:
endif
LINK_LIBS+=-lm
emulate-qemu: $(BINARY)
qemu-system-sparc -M at697 -nographic -kernel $(BINARY).exe
target-clean:
target-objects:
......@@ -137,6 +137,7 @@ flag __po_hi_c_mil_1553_conf_t_IsConstraintValid(const __po_hi_c_mil_1553_conf_t
ret = ((1 <= strlen(pVal->devname)) && (strlen(pVal->devname) <= 20));
*pErrCode = ret ? 0 : ERR_MIL_1553_CONF_T_DEVNAME;
if (ret) {
<<<<<<< HEAD
ret = __po_hi_c_Standard_T_IsConstraintValid((&(pVal->standard)), pErrCode);
if (ret) {
ret = __po_hi_c_Mode_T_IsConstraintValid((&(pVal->mode)), pErrCode);
......@@ -144,6 +145,19 @@ flag __po_hi_c_mil_1553_conf_t_IsConstraintValid(const __po_hi_c_mil_1553_conf_t
ret = __po_hi_c_Bus_T_IsConstraintValid((&(pVal->bus)), pErrCode);
if (ret) {
ret = __po_hi_c_Node_Addr_T_IsConstraintValid((&(pVal->termaddr)), pErrCode);
=======
ret = (((pVal->standard == __po_hi_c_mil1553a)) || ((pVal->standard == __po_hi_c_mil1553b)));
*pErrCode = ret ? 0 : ERR_MIL_1553_CONF_T_STANDARD;
if (ret) {
ret = (((((pVal->mode == __po_hi_c_controller)) || ((pVal->mode == __po_hi_c_terminal)))) || ((pVal->mode == __po_hi_c_monitor)));
*pErrCode = ret ? 0 : ERR_MIL_1553_CONF_T_MODE;
if (ret) {
ret = (((((((pVal->bus == __po_hi_c_none)) || ((pVal->bus == __po_hi_c_bus_a)))) || ((pVal->bus == __po_hi_c_bus_b)))) || ((pVal->bus == __po_hi_c_both)));
*pErrCode = ret ? 0 : ERR_MIL_1553_CONF_T_BUS;
if (ret) {
ret = (pVal->termaddr <= 31UL);
*pErrCode = ret ? 0 : ERR_MIL_1553_CONF_T_TERMADDR;
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
}
}
}
......
AUTOMAKE_OPTIONS = no-dependencies
C_FILES = $(srcdir)/1553.c \
<<<<<<< HEAD
$(srcdir)/ip.c \
$(srcdir)/serial.c \
$(srcdir)/spacewire.c \
......@@ -11,12 +12,30 @@ ASN_FILES = $(srcdir)/1553.asn \
$(srcdir)/serial.asn \
$(srcdir)/spacewire.asn \
$(srcdir)/bluetooth.asn
=======
$(srcdir)/ip.c \
$(srcdir)/serial.c \
$(srcdir)/spacewire.c
ASN_FILES = $(srcdir)/1553.asn \
$(srcdir)/ip.asn \
$(srcdir)/serial.asn \
$(srcdir)/spacewire.asn
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
csrc = ${shell $(CYGPATH_U) '$(OCARINA_RUNTIME)/polyorb-hi-c/src/drivers/configuration'}
t:
echo $(shell shell which asn1.exe)
echo `shell which asn1.exe`
$(srcdir)/1553.c:
<<<<<<< HEAD
mono $$(which asn1.exe) -c -typePrefix __po_hi_c_ 1553.asn
=======
mono $(shell which asn1.exe) -c -typePrefix __po_hi_c_ 1553.asn
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
sed -e 's/Mil\_1553\_Conf\_T/mil\_1553\_conf\_t/g' 1553.h > 1553new.h
mv 1553new.h 1553.h
echo "#if (defined (__PO_HI_NEED_DRIVER_1553_RASTA))\n" > 1553new.c
......@@ -27,7 +46,11 @@ $(srcdir)/1553.c:
mv asn1crt.h ../../../include/drivers/configuration/
$(srcdir)/spacewire.c:
<<<<<<< HEAD
mono $$(which asn1.exe) -c -typePrefix __po_hi_c_ spacewire.asn
=======
mono $(shell which asn1.exe) -c -typePrefix __po_hi_c_ spacewire.asn
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
sed -e 's/Spacewire\_Conf\_T/spacewire\_conf\_t/g' spacewire.h > spacewirenew.h
mv spacewirenew.h spacewire.h
echo "#if (defined (__PO_HI_NEED_DRIVER_SPACEWIRE_RASTA))\n" > spacewirenew.c
......@@ -38,7 +61,11 @@ $(srcdir)/spacewire.c:
mv asn1crt.h ../../../include/drivers/configuration/
$(srcdir)/ip.c:
<<<<<<< HEAD
mono $$(which asn1.exe) -c -typePrefix __po_hi_c_ ip.asn
=======
mono $(shell which asn1.exe) -c -typePrefix __po_hi_c_ ip.asn
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
mv asn1crt.h ../../../include/drivers/configuration/
sed -e 's/IP\_Conf\_T/ip\_conf\_t/g' ip.h > ipnew.h
mv ipnew.h ip.h
......@@ -49,7 +76,11 @@ $(srcdir)/ip.c:
mv ip.h ../../../include/drivers/configuration/
$(srcdir)/serial.c:
<<<<<<< HEAD
mono $$(which asn1.exe) -c -typePrefix __po_hi_c_ serial.asn
=======
mono $(shell which asn1.exe) -c -typePrefix __po_hi_c_ serial.asn
>>>>>>> 0e86b129902a792f4ae0c4a6bacb781c57331060
sed -e 's/Serial\_Conf\_T/serial\_conf\_t/g' serial.h > serialnew.h
mv serialnew.h serial.h
echo "#if (defined (__PO_HI_NEED_DRIVER_SERIAL_LINUX) || defined (__PO_HI_NEED_DRIVER_SERIAL_LINUX_RECEIVER) || defined (__PO_HI_NEED_DRIVER_SERIAL_LINUX_SENDER) || defined (__PO_HI_NEED_DRIVER_SERIAL_RASTA) || defined (__PO_HI_NEED_DRIVER_SERIAL_LEON) || defined (__PO_HI_NEED_DRIVER_SERIAL_LEON_SENDER) || defined (__PO_HI_NEED_DRIVER_SERIAL_LEON_RECEIVER))\n" > serialnew.c
......
......@@ -5,6 +5,45 @@
#include "asn1crt.h"
<<<<<<< HEAD
=======
int GetCharIndex(char ch, byte Set[], int setLen)
{
int i=0;
for(i=0; i<setLen; i++)
if (ch == Set[i])
return i;
return 0;
}