# HG changeset patch # User paul@pc-solar1.lab-lpp.local # Date 2013-07-05 13:00:37 # Node ID d435771e0064f3e2bae96602c2dc6ce1b79771a1 # Parent 68625add1e50bb0c884dd6e6cf6ae04e0420f5f2 Makefile added for the srec files generation diff --git a/FSW-rtems/FSW-rtems.layout.cbTemp b/FSW-rtems/FSW-rtems.layout.cbTemp new file mode 100644 --- /dev/null +++ b/FSW-rtems/FSW-rtems.layout.cbTemp @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FSW/FSW.cbp b/FSW/FSW.cbp deleted file mode 100644 --- a/FSW/FSW.cbp +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - diff --git a/FSW/FSW.depend b/FSW/FSW.depend deleted file mode 100644 --- a/FSW/FSW.depend +++ /dev/null @@ -1,54 +0,0 @@ -# depslib dependency file v1.0 -1350886242 source:e:\missions\solo\dev_ple\src\tc_handler.c - <..\header\TC_handler.h> - -1350886291 e:\missions\solo\dev_ple\header\tc_handler.h - <..\header\ccsds_types.h> - -1350657619 e:\missions\solo\dev_ple\header\ccsds_types.h - -1350886272 source:e:\missions\solo\dev_ple\src\basic_parameters.c - <..\header\basic_parameters.h> - - -1350892168 e:\missions\solo\dev_ple\header\basic_parameters.h - -1350896474 e:\missions\solo\dev_ple\header\spwapi_lpp.h - - <..\header\grspw.h> - -1350904997 source:e:\missions\solo\dev_ple\src\spwapi_lpp.c - <..\header\spwAPI_LPP.h> - - - -1350989918 source:e:\missions\solo\dev_ple\src\fsw.c - <..\header\LPP_spwAPI.h> - <..\header\basic_parameters.h> - <..\header\ccsds_types.h> - - - - - -1350983928 e:\missions\solo\dev_ple\header\grspw.h - -1350983928 source:e:\missions\solo\dev_ple\src\grspw.c - <..\header\grspw.h> - - -1350989928 source:e:\missions\solo\dev_ple\src\lpp_grspw.c - <..\header\LPP_grspw.h> - - -1350983928 e:\missions\solo\dev_ple\header\lpp_grspw.h - -1350990063 source:e:\missions\solo\dev_ple\src\lpp_spwapi.c - <..\header\LPP_spwAPI.h> - - - -1350990050 e:\missions\solo\dev_ple\header\lpp_spwapi.h - - <..\header\LPP_grspw.h> - diff --git a/FSW/FSW.layout b/FSW/FSW.layout deleted file mode 100644 --- a/FSW/FSW.layout +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FSW/bin/Debug/FSW.exe b/FSW/bin/Debug/FSW.exe deleted file mode 100644 index 3acbd85e73486ad61bb48f3e6a297b214efb4610..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 GIT binary patch literal 0 Hc$@ - - - - - diff --git a/TC_Handler_TEST/TC_Handler_TEST.depend b/TC_Handler_TEST/TC_Handler_TEST.depend deleted file mode 100644 --- a/TC_Handler_TEST/TC_Handler_TEST.depend +++ /dev/null @@ -1,14 +0,0 @@ -# depslib dependency file v1.0 -1358260558 source:/opt/DEV_PLE/src/TC_Handler_TEST.c - - - - -1358259104 /opt/DEV_PLE/header/TC_handler.h - - -1358260528 /opt/DEV_PLE/header/ccsds_types.h - -1358257573 source:/opt/DEV_PLE/src/TC_handler.c - - diff --git a/TC_Handler_TEST/TC_Handler_TEST.layout b/TC_Handler_TEST/TC_Handler_TEST.layout deleted file mode 100644 --- a/TC_Handler_TEST/TC_Handler_TEST.layout +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/TC_Handler_TEST/bin/Debug/test b/TC_Handler_TEST/bin/Debug/test deleted file mode 100755 index c780c06d144c115abef66d99d1e6d177e3dca718..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 GIT binary patch literal 0 Hc$@ -#include <..\header\LPP_grspw.h> - -#define LPP_TIME_MANAGER 0x80000600 - -struct spectral_matrices_regs_str -{ - volatile unsigned int ctrl; - volatile unsigned int address1; - volatile unsigned int address2; -}; -typedef struct spectral_matrices_regs_str spectral_matrices_regs_t; - -struct packet_type_str -{ - char time_packet; - char tc_packet; -} packet_type; - -struct spwHeader_str -{ - unsigned char targetLogicalAddress; - unsigned char protocolIdentifier; - unsigned char reserved; - unsigned char userApplication; -}; -typedef struct spwHeader_str spwHeader_t; - -struct time_manager_regs_str -{ - volatile int ctrl; - volatile int next_coarse_time; - volatile int current_coarse_time; - volatile int fine_time; -}; -typedef struct time_manager_regs_str time_manager_regs_t; - -// GENERAL PURPOSE FUNCTIONS - -inline int loadmemAPI(int addr); - -inline char loadb(int addr); - -char *almalloc(int sz); - -//////////////// -// SPW FUNCTIONS -//////////////// - -void spw_reset(grspwregs_t *regs); - -void spw_init(int nodeaddr, int clkdiv, int destkey, int rxmaxlen, grspwregs_t *regs); - -void set_txd(char *dataAddress, unsigned int dataLength, char *headerAddress, unsigned int headerLength, volatile int *txd); - -int spw_checkrx(int* size, volatile int *rxd, grspwregs_t *regs); - -int spw_checktx(grspwregs_t *regs); - -void enable_transmitter_descriptor(unsigned int headerLength, volatile int *txd); - -void enable_transmitter(grspwregs_t *regs); - -void enable_receiver_descriptor(volatile char *rx, volatile int *rxd); - -void enable_receiver(grspwregs_t *regs); - -void send_data(unsigned int headerLength, volatile int *txd, grspwregs_t *regs, char* tx, char value); - -int enable_timecode_reception(grspwregs_t *regs); - -int check_time(grspwregs_t *grspw_regs); - -////////////// -// GENERAL USE -////////////// - -void send_fine_time(unsigned int fine_time); - -////// -// IRQ -////// - -int irqhandler_receive_CCSDS(int irq, void * args, struct leonbare_pt_regs *leon_regs); - -int enable_irq(int irq); - -int disable_irq(int irq); - -int force_irq(int irq); - -#endif // SPWAPI_LPP_H diff --git a/header/basic_parameters.h b/header/basic_parameters.h deleted file mode 100644 --- a/header/basic_parameters.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef BASIC_PARAMETERS_H_INCLUDED -#define BASIC_PARAMETERS_H_INCLUDED - -#define LPP_SPECTRAL_MATRIX_CTRL 0x80000700 -#define LPP_SPECTRAL_MATRIX_1 0x80000704 -#define LPP_SPECTRAL_MATRIX_2 0x80000708 - -#define NB_BINS_SPECTRAL_MATRIX 128 -#define NB_VALUES_PER_SPECTRAL_MATRIX 30 -#define TOTAL_SIZE_SPECTRAL_MATRIX NB_BINS_SPECTRAL_MATRIX * NB_VALUES_PER_SPECTRAL_MATRIX -#define NB_BINS_COMPRESSED_MATRIX_f0 11 -#define SIZE_COMPRESSED_SPECTRAL_MATRIX_f1 13 -#define SIZE_COMPRESSED_SPECTRAL_MATRIX_f2 12 -#define TOTAL_SIZE_COMPRESSED_MATRIX_f0 NB_BINS_COMPRESSED_MATRIX_f0 * NB_VALUES_PER_SPECTRAL_MATRIX -#define NB_AVERAGE_NORMAL_f0 4 - -volatile int spectral_matrix_f0_a[TOTAL_SIZE_SPECTRAL_MATRIX]; -volatile int spectral_matrix_f0_b[TOTAL_SIZE_SPECTRAL_MATRIX]; -int averaged_spectral_matrix_f0[TOTAL_SIZE_SPECTRAL_MATRIX]; - -float compressed_spectral_matrix_f0[TOTAL_SIZE_COMPRESSED_MATRIX_f0]; - -unsigned char LFR_BP1_F0[NB_BINS_COMPRESSED_MATRIX_f0*9]; - -void BP1_set(); -void BP2_set(); - -#endif // BASIC_PARAMETERS_H_INCLUDED diff --git a/hello/bin/Debug/hello b/hello/bin/Debug/hello new file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6b6b1d1df128d0e597e1aac4bda62a41f9664b3a GIT binary patch literal 143048 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 lM)an6N{{voRKK}p! diff --git a/hello/hello.cbp b/hello/hello.cbp new file mode 100644 --- /dev/null +++ b/hello/hello.cbp @@ -0,0 +1,42 @@ + + + + + + diff --git a/hello/hello.cbp.cbTemp b/hello/hello.cbp.cbTemp new file mode 100644 --- /dev/null +++ b/hello/hello.cbp.cbTemp @@ -0,0 +1,42 @@ + + + + + + diff --git a/hello/hello.layout b/hello/hello.layout new file mode 100644 --- /dev/null +++ b/hello/hello.layout @@ -0,0 +1,7 @@ + + + + + + + diff --git a/hello/main.c b/hello/main.c new file mode 100644 --- /dev/null +++ b/hello/main.c @@ -0,0 +1,8 @@ +#include +#include + +int main( void ) +{ + printf("hello world\n"); + return 0; +} diff --git a/rtems-spwtest-2boards/bin/Debug/rtems-spwtest-2boards.exe b/rtems-spwtest-2boards/bin/Debug/rtems-spwtest-2boards.exe deleted file mode 100644 index 02bb1485a7d4da264ecf05637b9b3d1c7a37c453..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 GIT binary patch literal 0 Hc$@ - - - - - diff --git a/rtems-spwtest-2boards/rtems-spwtest-2boards.depend b/rtems-spwtest-2boards/rtems-spwtest-2boards.depend deleted file mode 100644 --- a/rtems-spwtest-2boards/rtems-spwtest-2boards.depend +++ /dev/null @@ -1,1193 +0,0 @@ -# depslib dependency file v1.0 -1340118752 source:e:\missions\solo\dev_ple\src\fsw-rtems.c - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems.h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\system.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpuopts.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdint.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\limits.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\syslimits.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpu.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sparc.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\types.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\types.h - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bspio.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\assert.h - "_ansi.h" - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\_ansi.h - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\newlib.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\config.h - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\ieeefp.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\bitfield.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timespec.h - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\time.h - "_ansi.h" - - - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\reent.h - <_ansi.h> - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\_types.h - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\_types.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\_default_types.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\lock.h - <_ansi.h> - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\types.h - <_ansi.h> - - - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\types.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\features.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\sched.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\custom_file.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\time.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\signal.h - "_ansi.h" - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\signal.h - "_ansi.h" - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp64.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.inl - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\time.h - <_ansi.h> - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\config.h - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\config.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\config.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.h - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.h - - - - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\context.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadsync.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.inl - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fatal.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\stackchk.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\userext.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\interr.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\io.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\init.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\intr.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.h - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.inl - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\cache.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\clock.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.h - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.h - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.h - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.inl - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.h - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.h - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.inl - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\string.h - "_ansi.h" - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\string.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.h - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\signal.h - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\object.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.h - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.h - - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\debug.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.h - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.inl - -1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bsp.h - - - - - - - -1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bspopts.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\leon.h - - - -1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\amba.h - - - -1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp.h - - -1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp_ids.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\grlib.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\clockdrv.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\console.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\irq-extension.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\confdefs.h - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\apimutex.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio.h - - - - - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\stat.h - <_ansi.h> - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioctl.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ttycom.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioccom.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsd\sys\cdefs.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\filio.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\sockio.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\statvfs.h - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\cdefs.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\unistd.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\unistd.h - <_ansi.h> - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\getopt.h - <_ansi.h> - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\termios.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\termios.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fs.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\imfs.h - - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\pipe.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devfs.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio_.h - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\errno.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\errno.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\userenv.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\ftpfs.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\tftp.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\librtemsnfs.h - - - - - - - - - - - - - - - - "rpcio.h" - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\seterr.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdio.h - "_ansi.h" - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\stdio.h - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdlib.h - - "_ansi.h" - - - - - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\stdlib.h - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\alloca.h - "_ansi.h" - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\dirent.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\dirent.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netdb.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsdnet\_types.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\ctype.h - "_ansi.h" - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netinet\in.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\endian.h - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\arpa\inet.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\dosfs.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems-rfs.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\malloc.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\timerdrv.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtc.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\framebuffer.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devnull.h - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ide_ctrl.h - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ata.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\blkdev.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\diskdevs.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bdbuf.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libcsupport.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\mqueue.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.inl - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\pthread.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\psignal.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\threadsup.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\sigset.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.inl - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\semaphore.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.inl - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.inl - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.h - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.inl - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\reent.h - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg.h - - - - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids_extra.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\access.h - - - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libcpu\byteorder.h - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_auto.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_static.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_read.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_peripheral.h - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\ambapp_bus.h - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr.h - - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_list.h - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_confdefs.h - "drvmgr.h" - -1351151480 source:e:\missions\solo\dev_ple\src\rtems-spwtest-2boards.c - - - - - - - - - - - "config.c" - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\fcntl.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\fcntl.h - - -1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\_default_fcntl.h - <_ansi.h> - - - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config.c - - "networkconfig.h" - "config_leon3_drvmgr.c" - "config_leon2_grlib_drvmgr.c" - "config_leon2_drvmgr.c" - "config_pci.c" - "config_gr_rasta_io.c" - "config_spw_bus.c" - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\network_interface_add.h - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems_bsdnet.h - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\networkconfig.h - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon3_drvmgr.c - - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\ambapp_bus_grlib.h - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon2_grlib_drvmgr.c - - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon2_drvmgr.c - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_pci.c - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\pci_bus.h - - - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_gr_rasta_io.c - - - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\gr_rasta_io.h - - -1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_spw_bus.c - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\spw_bus.h - - - -1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\spw_bus_ids.h - -1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\grspw.h - - diff --git a/rtems-spwtest-2boards/rtems-spwtest-2boards.layout b/rtems-spwtest-2boards/rtems-spwtest-2boards.layout deleted file mode 100644 --- a/rtems-spwtest-2boards/rtems-spwtest-2boards.layout +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/scripts/gresb.bat b/scripts/gresb.bat deleted file mode 100644 --- a/scripts/gresb.bat +++ /dev/null @@ -1,1 +0,0 @@ -grmon -gresb -ip 129.104.27.107 -dna 0xfe -sna 32 -link 0 diff --git a/scripts/grmon-gresb.bat b/scripts/grmon-gresb.bat deleted file mode 100644 --- a/scripts/grmon-gresb.bat +++ /dev/null @@ -1,1 +0,0 @@ -grmon -gresb -ip 129.104.27.104 -dna 0xfe -sna 32 -link 0 -u diff --git a/src/FSW.c b/src/FSW.c deleted file mode 100644 --- a/src/FSW.c +++ /dev/null @@ -1,189 +0,0 @@ -#include <..\header\LPP_spwAPI.h> -#include <..\header\basic_parameters.h> -#include <..\header\ccsds_types.h> -#include -#include -#include -#include - -#define FINE_TIME_RESET time_manager_regs->ctrl = 0x00000001; - -volatile int didtick = 0; -volatile int cnt = 0; -volatile int dide = 0; - -struct timerevent e; /* this has to be a global variable, it is inserted in a linked list by addtimer() */ -struct irqaction action_receive_CCSDS; /* this has to be a global variable as it will be inserted in a list */ -void register_event(); - -int event(void *arg) -{ - dide = 1; - register_event(); - return 0; -} - -void register_event() -{ - /* add an event 1s from now */ - do_gettimeofday((struct timeval*) &e.expire); - e.handler = event; - e.expire.tv_sec = e.expire.tv_sec + 1; - addtimer(&e); -} - -int main() -{ - volatile char *rx; - char *tx; - volatile char *rmaphdr; - volatile char *rmap; - volatile int *rxd; - volatile int *txd; - int size; - int i; - int j; - unsigned char current_nb_average = 0; - spwHeader_t spwHeader; - - grspwregs_t *grspw_regs; - time_manager_regs_t *time_manager_regs; - spectral_matrices_regs_t *spectral_matrices_regs; - - grspw_regs = (grspwregs_t*) GRSPW_APB_ADDR; // the grspw registers are at the address GRSPW_APB_ADDR - time_manager_regs = (time_manager_regs_t*) LPP_TIME_MANAGER; // the time manager registers are at the address LPP_TIME_MANAGER - spectral_matrices_regs = (spectral_matrices_regs_t*) LPP_SPECTRAL_MATRIX_CTRL; // the spectral matrices registers are at this address - - rx = (char*) malloc(64); - tx = (char*) malloc(64); - rmaphdr = (char*) malloc(32); - rmap = (char*) malloc(64); - rxd = (int*) almalloc(1024); // memory allocation for the receiver descriptors table - // almalloc => 1024 bytes aligned address - txd = (int*) almalloc(1024); // memory allocation for the transmitter descriptors table - // almalloc => 1024 bytes aligned address - - // GRSPW initilization - spw_reset(grspw_regs); // RESET THE SPACEWIRE LINK - spw_init(NODEADDR, CLKDIV, DESTKEY, RXMAXLEN, grspw_regs); // INITIALIZE THE SPACEWIRE REGISTERS - enable_timecode_reception(grspw_regs); // enable time-code reception - - while( grspw_link_state(grspw_regs) != SPW_LINK_STATE_RUN ) {} // wait for the link to be in run state - - // INITIALIZE THE TRANSMITTER RECEIVER DESCRIPTORS TABLES - for(i=0; i<8; i++) { // initialize the receiver and transmitter descriptor tables - rxd[i] = 0; - txd[i] = 0; - } - grspw_regs->txdesc = (int) txd; - grspw_regs->rxdesc = (int) rxd; - - for (j=0; j<64; j++){ // initialize the rx and tx data tables - rx[j] = j; - tx[j] = 10; - } - - // INITIALIZE THE TRANSMISSION - spwHeader.targetLogicalAddress = 0x21; // initialize the SpaceWire Header - spwHeader.protocolIdentifier = 0x02; - spwHeader.reserved = 0x00; - spwHeader.userApplication = 0x00; - set_txd(tx, 32, (char*) &spwHeader, HEADERLEN, txd); // initialize the transmitter descriptor 0 - - INIT_CCSDS_TELEMETRY_HEADER - - // INITIALIZE THE RECEPTION - enable_receiver_descriptor(rx, rxd); // enable the reception of a SpaceWire packet - - // START SPW TRANSMISSION / RECEPTION - grspw_regs->dmactrl = GRSPW_DMACTRL_NS | GRSPW_DMACTRL_RD | GRSPW_DMACTRL_RI | GRSPW_DMACTRL_RE | GRSPW_DMACTRL_TE; - // NS = 1 wait for a descriptor to be activated - // RD = 1 there are enabled descriptors - // RI = 1 receive interrupts - // RE = 1 receiver enabled - // TE = 1 transmitter enabled - - // TIME FUNCTIONS - leonbare_init_ticks(); // initialize the time abilities of the Leon3 - register_event(); // create an event - - // SETS AN IRQ HANDLER UPON RECEPTION OF A SPACEWIRE PACKET - spacewire_PARAMETERS.size = &size; // size of the receive packet - spacewire_PARAMETERS.rx = rx; // location of the data - spacewire_PARAMETERS.rxd = rxd; // associated descriptor - spacewire_PARAMETERS.tx = tx; // location of the data - spacewire_PARAMETERS.txd = txd; // associated descriptor - spacewire_PARAMETERS.regs = grspw_regs; // grspw module registers - action_receive_CCSDS.handler = (irqhandler) irqhandler_receive_CCSDS; // create the irq handler - chained_catch_interrupt(GRSPW_IRQ, &action_receive_CCSDS); // associate the handler with the GRSPW_IRQ - enable_irq(GRSPW_IRQ); // enable the interruption driven by the grspw module upon reception of a packet - - packet_type.time_packet = 0; - packet_type.tc_packet = 0; - - //write spectral matrices location in the registers - spectral_matrices_regs->address1 = (unsigned int) spectral_matrix_f0_a; - spectral_matrices_regs->address2 = (unsigned int) spectral_matrix_f0_b; - - printf("let's work...\n"); - - while(1) { // infinite loop - if (packet_type.time_packet == 1) { - FINE_TIME_RESET - time_manager_regs->next_coarse_time = (rx[10+4]<<24) + (rx[11+4]<<16) + (rx[12+4]<<8) + (rx[13+4]); - send_fine_time(time_manager_regs->fine_time); - enable_receiver_descriptor(spacewire_PARAMETERS.rx, spacewire_PARAMETERS.rxd); - enable_receiver(spacewire_PARAMETERS.regs); - packet_type.time_packet = 0; - } - if ((spectral_matrices_regs->ctrl & 1) == 1) { - FINE_TIME_RESET - for (i=0; ifine_time); - spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffe; - current_nb_average++; - } - if ( ( (spectral_matrices_regs->ctrl>>1) & 1) == 1) { - FINE_TIME_RESET - for (i=0; ifine_time); - spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffd; - current_nb_average++; - } - if ( current_nb_average == NB_AVERAGE_NORMAL_f0 ) { - FINE_TIME_RESET - for(i=0;ifine_time); - current_nb_average = 0; - } - } - - return 0; -} - diff --git a/src/LPP_grspw.c b/src/LPP_grspw.c deleted file mode 100644 --- a/src/LPP_grspw.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <..\header\LPP_grspw.h> -#include - -#define REG_WRITE(addr, val) (*(volatile unsigned int *)(addr) = (unsigned int)(val)) -#define REG_READ(addr) (*(volatile unsigned int *)(addr)) - -/* Return Current Link State */ -unsigned int grspw_link_state(grspwregs_t *regs) -{ - return ((regs->status & GRSPW_STAT_LS) >> GRSPW_STAT_LS_BIT); -} diff --git a/src/LPP_spwAPI.c b/src/LPP_spwAPI.c deleted file mode 100644 --- a/src/LPP_spwAPI.c +++ /dev/null @@ -1,176 +0,0 @@ -#include <..\header\LPP_spwAPI.h> -#include -#include - -volatile int *lreg = (int*) 0x80000200; // the IRQMP controller registers are at 0x80000200 - -inline int loadmemAPI(int addr) -{ - int tmp; - asm volatile (" lda [%1]1, %0 " // LDA => Load Word from Alternate space - : "=r" (tmp) - : "r" (addr) - ); - return tmp; -} - -inline char loadb(int addr) -{ - char tmp; - asm volatile (" lduba [%1]1, %0 " - : "=r" (tmp) - : "r" (addr) - ); - return tmp; -} - -char *almalloc(int sz) -{ - char *tmp; - tmp = (char*) malloc(2*sz); - tmp = (char*) (((int)tmp+sz) & ~(sz-1)); - return(tmp); -} - -////// -// SPW -////// - -void spw_reset(grspwregs_t *regs) -{ - regs->ctrl = GRSPW_CTRL_RS; // make complete reset of the spacewire node, self clearing -} - -void spw_init(int nodeaddr, int clkdiv, int destkey, int rxmaxlen, grspwregs_t *regs) -{ - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; // link start (LS) - // RMAP enable (RE) - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; - regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; - regs->status = 0xffffffff; - regs->nodeaddr = nodeaddr; - regs->clkdiv = clkdiv; - regs->destkey = destkey; - regs->time = 0; - regs->dmactrl = GRSPW_DMACTRL_RA | GRSPW_DMACTRL_TA | GRSPW_DMACTRL_PR | GRSPW_DMACTRL_PS | GRSPW_DMACTRL_AI; - regs->rxmaxlen = rxmaxlen; - regs->txdesc = 0; - regs->rxdesc = 0; -} - -void set_txd(char *dataAddress, unsigned int dataLength, char *headerAddress, unsigned int headerLength, volatile int *txd) -{ - txd[4] = 0; - txd[3] = (int) dataAddress; // data address - txd[2] = dataLength; // data length - txd[1] = (int) headerAddress; // header address - txd[0] = (1 << 13) | (1 << 12) | headerLength; // bit 13 WR = 1 next descriptor read will be 1st one in the table (at the base address) - // bit 12 EN = 1 enable transmitter descriptor - // bit 0 to 7 stand for the header length -} - -int spw_checkrx(int* size, volatile int *rxd, grspwregs_t *regs) -{ - volatile int tmp = 0; - tmp = regs->dmactrl; - if ( ( (tmp >> 6) & 1 ) ) - { // bit 6 PR packet received - *size = loadmemAPI((int) &rxd[0]) & 0x00001fff; - regs->dmactrl = regs->dmactrl | 1 << 6; // clear bit 6 PR (packet received) by writing a one - return 1; - } - else return 0; -} - -int spw_checktx(grspwregs_t *regs) -{ - if ( ( (regs->dmactrl >> 5) & 1 )==1 ) - { // bit 5 PS (packet sent), cleared when written with a one - regs->dmactrl = regs->dmactrl | 1 << 5; // clear bit 5 PS (packet sent) by writing a one - return 1; - } - else return 0; -} - -void enable_transmitter_descriptor(unsigned int headerLength, volatile int *txd) -{ - txd[0] = GRSPW_TXBD_WR | GRSPW_TXBD_EN; - //WR = 1 next descriptor read will be 1st one in the table (at the base address) - //EN = 1 enable transmitter descriptor -} - -void enable_transmitter(grspwregs_t *regs) -{ - regs->dmactrl = regs->dmactrl | GRSPW_DMACTRL_TE; -} - -void enable_receiver_descriptor(volatile char *rx, volatile int *rxd) -{ - rxd[1] = (int) rx; - rxd[0] = GRSPW_RXBD_IE | GRSPW_RXBD_WR | GRSPW_RXBD_EN; - // IE = 1 Interrupt enable - // WR = 1 next descriptor will be the 1st one in the desc table (at the base address) - // EN = 1 activate the descriptor -} - -void enable_receiver(grspwregs_t *regs) -{ - regs->dmactrl = regs->dmactrl | 1 << 11 | 1 << 2; -} - -int enable_timecode_reception(grspwregs_t *regs) -{ - regs->ctrl = regs->ctrl | GRSPW_CTRL_TR; - return 1; -} - -int check_time(grspwregs_t *grspw_regs) -{ - int tmp = loadmemAPI((int)&(grspw_regs->status)) & 1; - if (tmp) { - grspw_regs->status = loadmemAPI((int)&(grspw_regs->status)) | 1; - } - return tmp; -} - -////////////// -// GENERAL USE -////////////// -void send_fine_time(unsigned int fine_time){ - spacewire_PARAMETERS.tx[0] = (char) fine_time; // send the fine time value to LPPMON - spacewire_PARAMETERS.tx[1] = (char) (fine_time>>8); - spacewire_PARAMETERS.tx[2] = (char) (fine_time>>16); - spacewire_PARAMETERS.tx[3] = (char) (fine_time>>24); - enable_transmitter_descriptor(HEADERLEN, spacewire_PARAMETERS.txd); // enable the descriptor for transmission - enable_transmitter(spacewire_PARAMETERS.regs); // enable the transmission -} - -////// -// IRQ -////// - -int irqhandler_receive_CCSDS(int irq, void * args, struct leonbare_pt_regs * leon_regs) -{ - if (spw_checkrx(spacewire_PARAMETERS.size, spacewire_PARAMETERS.rxd, spacewire_PARAMETERS.regs)==1) - { - packet_type.time_packet = 1; - return 1; - } - return 0; -} - -int enable_irq(int irq) -{ - lreg[ICLEAR/4] = (1 << irq); // clear any pending irq - lreg[IMASK/4] = lreg[IMASK/4] | (1 << irq); // unmask irq - return 1; -} - -int disable_irq(int irq) { lreg[IMASK/4] &= ~(1 << irq); return 1;} - -int force_irq(int irq) { lreg[IFORCE/4] = lreg[IFORCE/4] | (1 << irq); return 1;} - - diff --git a/src/TC_Handler_TEST.c b/src/TC_Handler_TEST.c deleted file mode 100644 --- a/src/TC_Handler_TEST.c +++ /dev/null @@ -1,298 +0,0 @@ -#include -#include -#include - -char *errorCCSDSMsg[8] = { "ILLEGAL_APID 0", - "WRONG_LEN_PACKET 1", - "INCOR_CHECKSUM 2", - "ILL_TYPE 3", - "ILL_SUBTYPE 4", - "WRONG_APP_DATA 5", - "WRONG_CMD_CODE 6", - "CCSDS_TM_VALID 7" -}; - -char *tmGeneratorMsg[2] = { "NOTHING_TO_DO", - "TM_GENERATED" -}; - -void test_TC_handler(){ - ccsdsTelecommandPacket_t TCPacketToCheck; - unsigned char result; - unsigned char CRCAsTwoBytes[2] = {0, 0}; - unsigned char *ccsdsContent; - unsigned int i = 0; - unsigned int length = 0; - unsigned int packetLengthField = 0; - - printf("\n*** start of test_TC_handler()\n"); - - //******************* - // TC_LFR_DUMP_PAR TC - printf("\n =============> TEST TC_LFR_DUMP_PAR_TC <============\n"); - length = 12; - packetLengthField = length - 6 - 1; // -6 for the header and -1 to meet the definition of PACKET_LENGTH - currentTC_LEN_RCV[0] = 0x00; - currentTC_LEN_RCV[1] = packetLengthField; - // - //TCPacketToCheck.targetLogicalAddress = 0xfe; - TCPacketToCheck.protocolIdentifier = 0x02; - TCPacketToCheck.reserved = 0x00; - TCPacketToCheck.userApplication = 0x00; - // - TCPacketToCheck.packetID[0] = 0x1c; - TCPacketToCheck.packetID[1] = 0xcc; - TCPacketToCheck.packetSequenceControl[0] = 0xc0; - TCPacketToCheck.packetSequenceControl[1] = 0x00; - TCPacketToCheck.packetLength[0] = 0x00; - TCPacketToCheck.packetLength[1] = packetLengthField; - TCPacketToCheck.dataFieldHeader[0] = 0x19; // - TCPacketToCheck.dataFieldHeader[1] = 0xb5; // type - TCPacketToCheck.dataFieldHeader[2] = 0x1e; // subtype - TCPacketToCheck.dataFieldHeader[3] = 0x00; // source ID - // no data, the CRC comes immediately after the packet header - GetCRCAsTwoBytes((unsigned char*)TCPacketToCheck.packetID, CRCAsTwoBytes, packetLengthField + 5); - TCPacketToCheck.dataAndCRC[length-10-2] = CRCAsTwoBytes[0]; - TCPacketToCheck.dataAndCRC[length-10-1] = CRCAsTwoBytes[1]; - - ccsdsContent = (unsigned char*)TCPacketToCheck.packetID; - // TEST 1 - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_DUMP_PAR %s\n", errorCCSDSMsg[result]); - // TEST 2 - TCPacketToCheck.dataFieldHeader[2] = 0x04; // subtype - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_DUMP_PAR (with wrong subtype) %s\n", errorCCSDSMsg[result]); - // TEST 3 - TCPacketToCheck.dataFieldHeader[2] = 0x1e; // subtype - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_DUMP_PAR %s\n", errorCCSDSMsg[result]); - // TEST 4 - TCPacketToCheck.packetLength[1] = 49; // length - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_DUMP_PAR (with wrong length) %s\n", errorCCSDSMsg[result]); - // TEST 5 - TCPacketToCheck.packetLength[1] = packetLengthField; // length - TCPacketToCheck.dataAndCRC[0] = 0; - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_DUMP_PAR (with wrong CRC) %s\n", errorCCSDSMsg[result]); - - //******************* - // TC_LFR_UPDATE_INFO - printf("\n =============> TEST TC_LFR_UPDATE_INFO <============\n"); - length = 50; - packetLengthField = length - 6 - 1; // -6 for the header and -1 to meet the definition of PACKET_LENGTH - currentTC_LEN_RCV[0] = 0x00; - currentTC_LEN_RCV[1] = packetLengthField; - // - //TCPacketToCheck.targetLogicalAddress = 0xfe; - TCPacketToCheck.protocolIdentifier = 0x02; - TCPacketToCheck.reserved = 0x00; - TCPacketToCheck.userApplication = 0x00; - // - TCPacketToCheck.packetID[0] = 0x1c; - TCPacketToCheck.packetID[1] = 0xcc; - TCPacketToCheck.packetSequenceControl[0] = 0xc0; - TCPacketToCheck.packetSequenceControl[1] = 0x00; - TCPacketToCheck.packetLength[0] = 0x00; - TCPacketToCheck.packetLength[1] = packetLengthField; - TCPacketToCheck.dataFieldHeader[0] = 0x19; // - TCPacketToCheck.dataFieldHeader[1] = 0xb5; // type - TCPacketToCheck.dataFieldHeader[2] = 0x32; // subtype - TCPacketToCheck.dataFieldHeader[3] = 0x00; // source ID - // no data, the CRC comes immediately after the packet header - for (i=0; i test TC_LFR_UPDATE_INFO %s\n", errorCCSDSMsg[result]); - // TEST 2 - TCPacketToCheck.dataFieldHeader[2] = 0x05; // subtype - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO (with wrong subtype) %s\n", errorCCSDSMsg[result]); - // TEST 3 - TCPacketToCheck.dataFieldHeader[2] = 0x32; // subtype - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO %s\n", errorCCSDSMsg[result]); - // TEST 4 - TCPacketToCheck.packetLength[1] = 49; // length - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO (invalid length) %s\n", errorCCSDSMsg[result]); - // TEST 5 - TCPacketToCheck.packetLength[1] = packetLengthField; // length reset to the right value - TCPacketToCheck.dataAndCRC[0] = TCPacketToCheck.dataAndCRC[0]+1; // introduce error in the CRC - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO (wrong CRC) %s\n", errorCCSDSMsg[result]); - // TEST 6 - currentTC_LEN_RCV[1] = 0; // introduce error in the receive packet length - GetCRCAsTwoBytes((unsigned char*)TCPacketToCheck.packetID, CRCAsTwoBytes, packetLengthField + 5); - TCPacketToCheck.dataAndCRC[packetLengthField-3-2] = CRCAsTwoBytes[0]; - TCPacketToCheck.dataAndCRC[packetLengthField-3-1] = CRCAsTwoBytes[1]; - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO (LEN RCV != SIZE) %s\n", errorCCSDSMsg[result]); - // TEST 6 - currentTC_LEN_RCV[1] = packetLengthField; // introduce error in the receive packet length - result = TM_checker(&TCPacketToCheck); - printf(" => test TC_LFR_UPDATE_INFO %s\n", errorCCSDSMsg[result]); - - printf("*** end of test_TC_handler()\n"); -} - -void test_GetCRC(){ - unsigned char indata[2]; - unsigned char indata0[3]; - unsigned char indata1[4]; - unsigned char indata2[6]; - unsigned char indata3[10]; - unsigned char crcAsTwoBytes[2]; - - printf("\n*** start of test_GetCRC()\n"); - - indata[0] = 0x00; - indata[1] = 0x00; - GetCRCAsTwoBytes(indata, crcAsTwoBytes, 2); - printf("crc is %x %x, should be 0x1d 0x0f\n", crcAsTwoBytes[0], crcAsTwoBytes[1]); - - indata0[0] = 0x00; - indata0[1] = 0x00; - indata0[2] = 0x00; - GetCRCAsTwoBytes(indata0, crcAsTwoBytes, 3); - printf("crc is %x %x, should be 0xcc 0x9c\n", crcAsTwoBytes[0], crcAsTwoBytes[1]); - - indata1[0] = 0xab; - indata1[1] = 0xcd; - indata1[2] = 0xef; - indata1[3] = 0x01; - GetCRCAsTwoBytes(indata1, crcAsTwoBytes, 4); - printf("crc is %x %x, should be 0x04 0xa2\n", crcAsTwoBytes[0], crcAsTwoBytes[1]); - - indata2[0] = 0x14; - indata2[1] = 0x56; - indata2[2] = 0xf8; - indata2[3] = 0x9a; - indata2[4] = 0x00; - indata2[5] = 0x01; - GetCRCAsTwoBytes(indata2, crcAsTwoBytes, 6); - printf("crc is %x %x, should be 0x7f 0xd5\n", crcAsTwoBytes[0], crcAsTwoBytes[1]); - - indata3[0] = 0x1c; - indata3[1] = 0xcc; - indata3[2] = 0xc0; - indata3[3] = 0x00; - indata3[4] = 0x00; - indata3[5] = 0x0c; - indata3[6] = 0x19; // - indata3[7] = 0xb5; // type - indata3[8] = 0x1e; // subtype - indata3[9] = 0x00; // source ID - GetCRCAsTwoBytes(indata3, crcAsTwoBytes, 10); - printf("crc is %x %x\n", crcAsTwoBytes[0], crcAsTwoBytes[1]); - - printf("*** end of test_GetCRC()\n"); -} - -void test_TM_acceptance_generator() -{ - unsigned char result = 0; - unsigned char code = 0; - unsigned char CRCAsTwoBytes[2] = {0,0}; - unsigned char * ccsdsContent; - unsigned int length = 0; - unsigned int packetLengthField = 0; - ccsdsTelemetryPacket_t TMPacket; - ccsdsTelecommandPacket_t TCPacket; - - //******************* - // TC_LFR_DUMP_PAR TC - length = 12; - packetLengthField = length - 6 - 1; // -6 for the header and -1 to meet the definition of PACKET_LENGTH - currentTC_LEN_RCV[0] = 0x00; - currentTC_LEN_RCV[01] = packetLengthField; - // - //TCPacket.targetLogicalAddress = 0xfe; - TCPacket.protocolIdentifier = 0x02; - TCPacket.reserved = 0x00; - TCPacket.userApplication = 0x00; - // - TCPacket.packetID[0] = 0x1c; - TCPacket.packetID[1] = 0xcc; - TCPacket.packetSequenceControl[0] = 0xc0; - TCPacket.packetSequenceControl[1] = 0x00; - TCPacket.packetLength[0] = 0x00; - TCPacket.packetLength[1] = packetLengthField; - TCPacket.dataFieldHeader[0] = 0x19; // - TCPacket.dataFieldHeader[1] = 0xb5; // type - TCPacket.dataFieldHeader[2] = 0x1e; // subtype - TCPacket.dataFieldHeader[3] = 0x00; // source ID - // no data, the CRC comes immediately after the packet header - GetCRCAsTwoBytes((unsigned char*)TCPacket.packetID, CRCAsTwoBytes, packetLengthField + 5); - TCPacket.dataAndCRC[length-10-2] = CRCAsTwoBytes[0]; - TCPacket.dataAndCRC[length-10-1] = CRCAsTwoBytes[1]; - - ccsdsContent = (unsigned char*)TCPacket.packetID; - // TEST 1 - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 1\n"); - printf(" => test TC_LFR_DUMP_PAR %s\n", errorCCSDSMsg[code]); - printf(" => result %s\n", tmGeneratorMsg[result]); - // TEST 2 - TCPacket.dataFieldHeader[2] = 0x04; // subtype - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 2\n"); - printf(" => test TC_LFR_DUMP_PAR (with wrong subtype) %s\n", errorCCSDSMsg[code]); - printf(" => result %s\n", tmGeneratorMsg[result]); - // TEST 3 - TCPacket.dataFieldHeader[2] = 0x1e; // subtype - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 2\n"); - printf(" => test TC_LFR_DUMP_PAR %s\n", errorCCSDSMsg[code]); - printf(" => result %s\n", tmGeneratorMsg[result]); - // TEST 4 - TCPacket.packetLength[1] = 49; // length - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 4\n"); - printf(" => test TC_LFR_DUMP_PAR (invalid length) %s\n", errorCCSDSMsg[code]); - printf(" => result %s\n", tmGeneratorMsg[result]); - // TEST 5 - TCPacket.packetLength[1] = packetLengthField; // length - TCPacket.dataAndCRC[0] = 0; - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 5\n"); - printf(" => test TC_LFR_DUMP_PAR (with wrong CRC) %s\n", errorCCSDSMsg[code]); - printf(" => result %s\n", tmGeneratorMsg[result]); - printf(" => received CRC: [%x, %x], should be [%x, %x]\n", - TCPacket.dataAndCRC[0], TCPacket.dataAndCRC[1], - currentTC_COMPUTED_CRC[0], TCPacket.dataAndCRC[1]); - // TEST 6 - GetCRCAsTwoBytes((unsigned char*)TCPacket.packetID, CRCAsTwoBytes, packetLengthField + 5); - TCPacket.dataAndCRC[length-10-2] = CRCAsTwoBytes[0]; // restore the CRC - currentTC_LEN_RCV[1] = 1; // put error in the received packet length - code = TM_checker(&TCPacket); - result = TM_acceptance_generator(&TCPacket, code, &TMPacket); - printf(" => TEST 6\n"); - printf(" => test TC_LFR_DUMP_PAR (RCV LEN != SIZE FIELD) %s\n", errorCCSDSMsg[code]); - printf(" => result: %s\n", tmGeneratorMsg[result]); - printf(" => RCV LEN: [%x, %x], should be [%x, %x]\n", - currentTC_LEN_RCV[0], currentTC_LEN_RCV[1], - TCPacket.packetLength[0], TCPacket.packetLength[1]); -} - -int main() -{ - InitLookUpTableForCRC(); - - //test_GetCRC(); - //test_TC_handler(); - test_TM_acceptance_generator(); - - return 0; -} diff --git a/src/basic_parameters.c b/src/basic_parameters.c deleted file mode 100644 --- a/src/basic_parameters.c +++ /dev/null @@ -1,194 +0,0 @@ -#include <..\header\basic_parameters.h> -#include - -float k14_re = 1; -float k14_im = 1; -float k14_bis_re = 1; -float k14_bis_im = 1; -float k14_tris_re = 1; -float k14_tris_im = 1; -float k15_re = 1; -float k15_im = 1; -float k15_bis_re = 1; -float k15_bis_im = 1; -float k24_re = 1; -float k24_im = 1; -float k24_bis_re = 1; -float k24_bis_im = 1; -float k24_tris_re = 1; -float k24_tris_im = 1; -float k25_re = 1; -float k25_im = 1; -float k25_bis_re = 1; -float k25_bis_im = 1; -float k34_re = 1; -float k34_im = 1; -float k44 = 1; -float k55 = 1; -float k45_re = 1; -float k45_im = 1; -float alpha_M = M_PI/4; - -void BP1_set(){ - int i, j; - unsigned char tmp_u_char; - unsigned char * pt_char; - float PSDB, PSDE; - float NVEC_V0, NVEC_V1, NVEC_V2; - float significand; - int exponent; - float aux, tr_SB_SB, tmp; - float e_cross_b_re, e_cross_b_im; - float n_cross_e_scal_b_re = 0, n_cross_e_scal_b_im = 0; - float nx = 0, ny = 0; - float bz_bz_star = 0; - for(i=0; i /* for device driver prototypes */ -rtems_task Init( rtems_task_argument argument); /* forward declaration needed */ - -/* configuration information */ -#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER 1 -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_MAXIMUM_TASKS 8 -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE -#define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE) -#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 32 -#define CONFIGURE_INIT_TASK_PRIORITY 100 -#define CONFIGURE_MAXIMUM_DRIVERS 16 - -/* #define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \ */ -/* RTEMS_TIMESLICE | \ */ -/* RTEMS_ASR | \ */ -/* RTEMS_INTERRUPT_LEVEL(0)) */ - -//#define RTEMS_PCI_CONFIG_LIB -//#define CONFIGURE_PCI_LIB PCI_LIB_AUTO - -#include - -/* Configure Driver manager */ -#if defined(RTEMS_DRVMGR_STARTUP) && defined(LEON3) /* if --drvmgr was given to configure */ - /* Add Timer and UART Driver for this example */ - #ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER - #define CONFIGURE_DRIVER_AMBAPP_GAISLER_GPTIMER - #endif - #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER - #define CONFIGURE_DRIVER_AMBAPP_GAISLER_APBUART - #endif -#endif -//#define CONFIGURE_DRIVER_AMBAPP_GAISLER_PCIF /* PCI is for RASTA-IO and GR-701 GRSPW */ -//#define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRPCI /* PCI is for RASTA-IO and GR-701 GRSPW */ -//#define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRPCI2 /* PCI is for RASTA-IO and GR-701 GRSPW */ -//#define CONFIGURE_DRIVER_PCI_GR_RASTA_IO /* GR-RASTA-IO has three GRSPW SpaceWire cores */ -//#define CONFIGURE_DRIVER_PCI_GR_701 /* GR-701 has three GRSPW SpaceWire cores */ - -#ifdef LEON2 - /* PCI support for AT697 */ - #define CONFIGURE_DRIVER_LEON2_AT697PCI - /* AMBA PnP Support for GRLIB-LEON2 */ - #define CONFIGURE_DRIVER_LEON2_AMBAPP -#endif - -#define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRSPW /* GRSPW Driver */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#undef ENABLE_NETWORK -/* Include driver configurations and system initialization */ -#include "config.c" - -#include - -/* Select GRSPW core to be used in sample application. - * - /dev/grspw0 (First ON-CHIP core) - * - /dev/grspw1 (Second ON-CHIP core) - * - /dev/rastaio0/grspw0 (The GRSPW core on first GR-RASTA-IO board) - * - /dev/rastaio0/grspw1 (The second GRSPW core on first GR-RASTA-IO board) - * - /dev/gr701_0/grspw0 (The first GRSPW core on first GR-701 board) - * - /dev/gr701_1/grspw0 (The first GRSPW core on second GR-701 board) - */ - -#define GRSPW_DEVICE_NAME1 "/dev/grspw1" -#define GRSPW_DEVICE_NAME2 "/dev/grspw0" - -rtems_task task1(rtems_task_argument argument); -rtems_task task2(rtems_task_argument argument); - -void print_config(spw_config *cnf); -void print_statistics(spw_stats *stats); -void check_init_config(spw_config *cnf); -char *link_status(int status); -extern int errno; - -char *lstates[6] = {"Error-reset", - "Error-wait", - "Ready", - "Started", - "Connecting", - "Run" -}; - -rtems_id Task_id[3]; /* array of task ids */ -rtems_name Task_name[3]; /* array of task names */ - -/* ========================================================= - initialisation */ -rtems_task Init( - rtems_task_argument ignored -) -{ - FILE *f; int fd; - rtems_status_code status; - - printf("******** Starting RTEMS Spacewire test 2 ********\n"); - - system_init(); - - Task_name[1] = rtems_build_name( 'S', 'E', 'N', 'D' ); - Task_name[2] = rtems_build_name( 'R', 'E', 'C', 'V' ); - - status = rtems_task_create( - Task_name[1], 1, RTEMS_MINIMUM_STACK_SIZE * 2, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[1] - ); - - status = rtems_task_create( - Task_name[2], 1, RTEMS_MINIMUM_STACK_SIZE * 2, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, &Task_id[2] - ); - -#ifdef TASK_TX - PRINTF("start TASK_TX\n") - status = rtems_task_start(Task_id[1], task1, 1); -#endif -#define TASK_RX -#ifdef TASK_RX - PRINTF("start TASK_RX\n") - status = rtems_task_start(Task_id[2], task2, 2); -#endif - - status = rtems_task_delete(RTEMS_SELF); -} - -unsigned int init1 = 0, init2 = 0; -static char tx_pkt[4096]; -static char tx_hpkt[256]; - -#define NODE_ADR_TX 1 -#define NODE_ADR_RX 254 - -#ifdef TASK_TX -/* ========================================================= - sender task */ -rtems_task task1( - rtems_task_argument unused -) -{ - rtems_status_code status; - rtems_event_set out; - int i; - int j; - int k; - int fd; - int lstatus; - int stat; - int ret; - spw_ioctl_pkt_send *pkt = (spw_ioctl_pkt_send *)malloc(sizeof(spw_ioctl_pkt_send)); - spw_stats *statistics = (spw_stats *)malloc(sizeof(spw_stats)); - spw_config *config = (spw_config *)malloc(sizeof(spw_config)); - spw_ioctl_packetsize *ps = (spw_ioctl_packetsize *)malloc(sizeof(spw_ioctl_packetsize)); - - PRINTF("**** Transmit test task started ****\n") - printf("\n"); - printf("Opening " GRSPW_DEVICE_NAME1 ": "); - j=0; - fd = open(GRSPW_DEVICE_NAME1, O_RDWR); - if ( fd < 0 ){ - printf("Failed to open " GRSPW_DEVICE_NAME1 " (%d)\n",errno); - exit(0); - } - printf("opened successfully\n"); - printf("**** Checking initial configuration for " GRSPW_DEVICE_NAME1 " ****\n"); - printf("\n"); - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG \n"); - exit(0); - } - print_config(config); - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_NODEADDR, NODE_ADR_TX) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_SET_NODEADDR \n"); - exit(0); - } - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n"); - exit(0); - } - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_TXBLOCK, 1) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_SET_TXBLOCK\n"); - exit(0); - } - - printf("Trying to bring link up\n"); - while(1){ - if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) { - sched_yield(); /*printf("ioctl failed: SPACEWIRE_IOCTRL_START\n");*/ - }else - break; - } - printf("Link is up\n"); - - printf("Disabling transmitter and receiver\n"); - if ( ioctl(fd, SPACEWIRE_IOCTRL_STOP, 0) == -1 ){ - printf("ioctl failed: SPACEWIRE_IOCTRL_STOP (%d)\n",errno); - exit(0); - } - - printf("Trying to bring link up again\n"); - while(1){ - if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) { - sched_yield(); /*printf("ioctl failed: SPACEWIRE_IOCTRL_START\n");*/ - }else - break; - } - printf("Link is up\n"); - - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_CLKDIV, 0) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_SET_CLKDIV\n"); - exit(0); - } - - print_config(config); - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &(lstatus)) == -1) { - printf("ioctl failed: SPACEWIRE_IOCTRL_GET_LINK_STATUS\n"); - exit(0); - } - printf("Spacewire link 1 is in %s state\n", link_status(lstatus)); - /* printf("Set link error event id and link error irq\n"); */ -/* printf("Task Id 2: %i \n", Task_id[1]); */ -/* ioctl(fd, SPACEWIRE_IOCTRL_SET_EVENT_ID, Task_id[1]); */ -/* ioctl(fd, SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ, 1); */ -/* rtems_event_receive(RTEMS_ALL_EVENTS, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &out); */ -/* printf("Got event 1\n"); */ -/* ioctl(fd, SPACEWIRE_IOCTRL_SET_DISABLE_ERR, 1); */ -/* rtems_event_receive(RTEMS_ALL_EVENTS, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &out); */ -/* printf("Got event 2\n"); */ -/* ioctl(fd, SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ, 0); */ -/* ioctl(fd, SPACEWIRE_IOCTRL_LINKSTART, 1); */ -/* printf("Link error test finished\n"); */ - /*config print finished, allow task 2 to print its config*/ - i=0; - while(1){ - printf("-------------- Sending Initiator ----------------\n"); - tx_pkt[0] = NODE_ADR_RX; - tx_pkt[1] = 'G'; - tx_pkt[2] = 'A'; - tx_pkt[3] = 'I'; - tx_pkt[4] = 'S'; - tx_pkt[5] = 'L'; - tx_pkt[6] = 'E'; - tx_pkt[7] = 'R'; - tx_pkt[8] = ' '; - tx_pkt[9] = 'S'; - tx_pkt[10] = 'P'; - tx_pkt[11] = 'W'; - tx_pkt[12] = '0'+i; - tx_pkt[13] = 0; - - /* Send packet */ - if ( (ret=write(fd, tx_pkt, 14)) <= 0 ){ - printf("Write failed, errno: %d, ret: %d\n",errno,ret); - } - - /* Sleep 5s */ - printf("Sleeping 1s\n"); - sleep(1); - i++; - if ( i>9 ) - i=0; - } -} - -#endif - - -#ifdef TASK_RX -/* ========================================================= - receiver task */ - -rtems_task task2( - rtems_task_argument unused -) -{ - rtems_status_code status; - spw_config *config; - spw_stats *statistics = (spw_stats *)malloc(sizeof(spw_stats)); - char *rx_pkt; - char *cx_pkt; - char *cx_hpkt; - int fd; - rtems_event_set event0, event1; - int len; - int i; - int j; - int k; - int st; - int lstatus; - int rd; - int tmp; - - rx_pkt = (char *)malloc(4096); - cx_pkt = (char *)malloc(4096); - cx_hpkt = (char *)malloc(256); - config = (spw_config *)malloc(sizeof(spw_config)); - spw_ioctl_packetsize *ps = (spw_ioctl_packetsize *)malloc(sizeof(spw_ioctl_packetsize)); - - PRINTF("**** Receive test task started ****\n") - j = 0; - errno =0 ; - PRINTF("Try to open "GRSPW_DEVICE_NAME2"\n") - // OPEN THE SPACEWIRE LINK - fd = open(GRSPW_DEVICE_NAME2, O_RDWR); - if (fd<0) exit(0); - // SPACEWIRE_IOCTRL_SET_RMAPEN - ioctl(fd, SPACEWIRE_IOCTRL_SET_RMAPEN, 1); - if (errno == RTEMS_IO_ERROR) exit(0); - // SPACEWIRE_IOCTRL_START - while(1) { - if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_START\n") - sched_yield(); - } - else break; - } - PRINTF("Open "GRSPW_DEVICE_NAME2" successfully\n") - -/* Make driver use the default timings as given by HW when reset */ -#if 0 - /* make driver calculate timings from system clock */ - if ( ioctl(fd,SPACEWIRE_IOCTRL_SET_COREFREQ,0) == -1 ){ - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_COREFREQ, errno: %d\n",errno) - exit(0); - } - - /* make driver calculate timings from 40MHz spacewire clock */ - if ( ioctl(fd,SPACEWIRE_IOCTRL_SET_COREFREQ,40000) == -1 ){ - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_COREFREQ, errno: %d\n",errno) - exit(0); - } -#endif - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n") - exit(0); - } - PRINTF(" Checking initial configuration for Spacewire 2 ****\n") - print_config(config); - PRINTF("config checked\n") - - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_NODEADDR, NODE_ADR_RX) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_NODEADDR\n") - exit(0); - } - PRINTF("SPACEWIRE_IOCTRL_SET_NODEADDR\n") - - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_RXBLOCK, 1) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_RXBLOCK\n"); - exit(0); - } - PRINTF("SPACEWIRE_IOCTRL_SET_RXBLOCK\n") - PRINTF("Trying to bring link up\n") - PRINTF("Link is up, Changing speed\n") - - if (ioctl(fd, SPACEWIRE_IOCTRL_SET_CLKDIV, 0) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_CLKDIV\n") - exit(0); - } - - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n") - exit(0); - } - print_config(config); - - if (ioctl(fd, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &(lstatus)) == -1) { - PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_LINK_STATUS\n") - exit(0); - } - PRINTF1("Spacewire link 2 is in %s state\n", link_status(lstatus)) - - while(1){ - printf("-------------- Receiving Initiator ----------------\n"); - tmp = 500; - len = read(fd, rx_pkt, tmp); - if ( len <= 0 ){ - printf("Read Failed, errno: %d, ret: %d\n",errno,len); - sleep(1); - continue; - } - - /* handle message */ - printf("Got Message of length %d, to address %d\n",len,rx_pkt[0]); - printf("Message data: [ 0x%x 0x%x ...] (%s)\n",rx_pkt[1],rx_pkt[2],&rx_pkt[0]); - } - close(fd); -} - -#endif - -/* ========================================================= - event task */ - -void print_config(spw_config *cnf) -{ - printf("\n"); - printf(" ******** CONFIG ******** \n"); - printf("Node Address: %i\n", cnf->nodeaddr); - printf("Destination Key: %i\n", cnf->destkey); - printf("Clock Divider: %i\n", cnf->clkdiv); - printf("Rx Maximum Packet: %i\n", cnf->rxmaxlen); - printf("Timer: %i\n", cnf->timer); - printf("Linkdisabled: %i\n", cnf->linkdisabled); - printf("Linkstart: %i\n", cnf->linkstart); - printf("Disconnect: %i\n", cnf->disconnect); - printf("Promiscuous: %i\n", cnf->promiscuous); - printf("RMAP Enable: %i\n", cnf->rmapen); - printf("RMAP Buffer Disable: %i\n", cnf->rmapbufdis); - printf("Check Rmap Error: %i\n", cnf->check_rmap_err); - printf("Remove Protocol ID: %i\n", cnf->rm_prot_id); - printf("Blocking Transmit: %i\n", cnf->tx_blocking); - printf("Disable when Link Error: %i\n", cnf->disable_err); - printf("Link Error IRQ Enabled: %i\n", cnf->link_err_irq); - printf("Link Error Event Task ID: %i\n", cnf->event_id); - printf("RMAP Available: %i\n", cnf->is_rmap); - printf("RMAP CRC Available: %i\n", cnf->is_rmapcrc); - printf("Unaligned Receive Buffer Support: %i\n", cnf->is_rxunaligned); - printf("\n"); - -} - -void print_statistics(spw_stats *stats) -{ - printf("\n"); - printf(" ******** STATISTICS ******** \n"); - printf("Transmit link errors: %i\n", stats->tx_link_err); - printf("Receiver RMAP header CRC errors: %i\n", stats->rx_rmap_header_crc_err); - printf("Receiver RMAP data CRC errors: %i\n", stats->rx_rmap_data_crc_err); - printf("Receiver EEP errors: %i\n", stats->rx_eep_err); - printf("Receiver truncation errors: %i\n", stats->rx_truncated); - printf("Parity errors: %i\n", stats->parity_err); - printf("Escape errors: %i\n", stats->escape_err); - printf("Credit errors: %i\n", stats->credit_err); - printf("Disconnect errors: %i\n", stats->disconnect_err); - printf("Write synchronization errors: %i\n", stats->write_sync_err); - printf("Early EOP/EEP: %i\n", stats->early_ep); - printf("Invalid Node Address: %i\n", stats->invalid_address); - printf("Packets transmitted: %i\n", stats->packets_sent); - printf("Packets received: %i\n", stats->packets_received); -} - -void check_init_config(spw_config *cnf) -{ - if (cnf->nodeaddr != 254) { - printf("Incorrect initial node address! Expected: %i Got: %i\n", 254, cnf->nodeaddr); - exit(0); - } - if (cnf->destkey != 0) { - printf("Incorrect initial destination key! Expected: %i Got: %i\n", 0, cnf->destkey); - exit(0); - } - if (cnf->rxmaxlen != 1024) { - printf("Incorrect initial Rx maximum packet length! Expected: %i Got: %i\n", 1024 , cnf->rxmaxlen); - exit(0); - } - if (cnf->linkdisabled != 0) { - printf("Incorrect initial linkdisabled value! Expected: %i Got: %i\n", 0, cnf->linkdisabled); - exit(0); - } - if (cnf->linkstart != 1) { - printf("Incorrect initial linkstart value! Expected: %i Got: %i\n", 1, cnf->linkstart); - exit(0); - } - if (cnf->promiscuous != 0) { - printf("Incorrect initial promiscuous mode value! Expected: %i Got: %i\n", 0, cnf->promiscuous); - exit(0); - } - if (cnf->check_rmap_err != 0) { - printf("Incorrect initial check rmap error value! Expected: %i Got: %i\n", 0, cnf->check_rmap_err); - exit(0); - } - if (cnf->rm_prot_id != 0) { - printf("Incorrect initial remove protocol id value! Expected: %i Got: %i\n", 0, cnf->rm_prot_id); - exit(0); - } - if (cnf->tx_blocking != 0) { - printf("Incorrect initial tx blocking! Expected: %i Got: %i\n", 0, cnf->tx_blocking); - exit(0); - } - if (cnf->disable_err != 0) { - printf("Incorrect initial disable when link error value! Expected: %i Got: %i\n", 0, cnf->disable_err); - exit(0); - } - if (cnf->link_err_irq != 0) { - printf("Incorrect initial link error enable value! Expected: %i Got: %i\n", 0, cnf->link_err_irq); - exit(0); - } - if (cnf->event_id != 0) { - printf("Incorrect initial event id! Expected: %i Got: %i\n", 0, cnf->event_id); - exit(0); - } -} - -char *link_status(int status) -{ - return lstates[status]; - -}