##// END OF EJS Templates
Initial commit.
paul -
r0:452a68f7426f default
parent child
Show More
@@ -0,0 +1,5
1 syntax: glob
2 *.pdf
3 *~
4 *.o
5 tests/*.err
@@ -0,0 +1,49
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_project_file>
3 <FileVersion major="1" minor="6" />
4 <Project>
5 <Option title="FSW-rtems" />
6 <Option pch_mode="2" />
7 <Option compiler="sparc_rtems_gcc" />
8 <Build>
9 <Target title="Debug">
10 <Option output="bin\Debug\FSW-rtems" prefix_auto="1" extension_auto="1" />
11 <Option object_output="obj\Debug\" />
12 <Option type="1" />
13 <Option compiler="sparc_rtems_gcc" />
14 <Compiler>
15 <Add option="-O3" />
16 <Add option="-g" />
17 <Add directory="..\header" />
18 <Add directory="..\src" />
19 </Compiler>
20 </Target>
21 <Target title="Release">
22 <Option output="bin\Release\FSW-rtems" prefix_auto="1" extension_auto="1" />
23 <Option object_output="obj\Release\" />
24 <Option type="1" />
25 <Option compiler="sparc_rtems_gcc" />
26 <Compiler>
27 <Add option="-O2" />
28 </Compiler>
29 <Linker>
30 <Add option="-s" />
31 </Linker>
32 </Target>
33 </Build>
34 <Compiler>
35 <Add option="-Wall" />
36 </Compiler>
37 <Unit filename="..\header\FSW-rtems-processing.h" />
38 <Unit filename="..\src\FSW-rtems-processing.c">
39 <Option compilerVar="CC" />
40 </Unit>
41 <Unit filename="..\src\FSW-rtems.c">
42 <Option compilerVar="CC" />
43 </Unit>
44 <Extensions>
45 <code_completion />
46 <debugger />
47 </Extensions>
48 </Project>
49 </CodeBlocks_project_file>
@@ -0,0 +1,37
1 # depslib dependency file v1.0
2 1352469400 source:e:\missions\solo\dev_ple\src\fsw-rtems.c
3 <rtems.h>
4 <bsp.h>
5 <rtems/confdefs.h>
6 <drvmgr/drvmgr_confdefs.h>
7 <rtems.h>
8 <errno.h>
9 <fcntl.h>
10 <stdio.h>
11 <stdlib.h>
12 <FSW-config.c>
13 <grspw.h>
14 <apbuart.h>
15 <FSW-rtems-processing.h>
16
17 1350983928 source:e:\missions\solo\dev_ple\src\grspw.c
18 <..\header\grspw.h>
19 <stdio.h>
20
21 1350983928 e:\missions\solo\dev_ple\header\grspw.h
22
23 1351173364 source:e:\missions\solo\dev_ple\src\fsw-config.c
24 <drvmgr/ambapp_bus.h>
25
26 1351506239 e:\missions\solo\dev_ple\src\fsw-config.c
27 <drvmgr/ambapp_bus.h>
28
29 1352470008 source:e:\missions\solo\dev_ple\src\fsw-rtems-processing.c
30 <FSW-rtems-processing.h>
31 <math.h>
32 <stdio.h>
33 <leon.h>
34
35 1352470001 e:\missions\solo\dev_ple\header\fsw-rtems-processing.h
36 <rtems.h>
37
@@ -0,0 +1,13
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_layout_file>
3 <ActiveTarget name="Debug" />
4 <File name="..\header\FSW-rtems-processing.h" open="1" top="1" tabpos="3">
5 <Cursor position="1016" topLine="1" />
6 </File>
7 <File name="..\src\FSW-rtems-processing.c" open="1" top="0" tabpos="2">
8 <Cursor position="17123" topLine="155" />
9 </File>
10 <File name="..\src\FSW-rtems.c" open="1" top="0" tabpos="1">
11 <Cursor position="5330" topLine="155" />
12 </File>
13 </CodeBlocks_layout_file>
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,60
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_project_file>
3 <FileVersion major="1" minor="6" />
4 <Project>
5 <Option title="FSW" />
6 <Option pch_mode="2" />
7 <Option compiler="sparc_gcc" />
8 <Build>
9 <Target title="Debug">
10 <Option output="bin\Debug\FSW" prefix_auto="1" extension_auto="1" />
11 <Option object_output="obj\Debug\" />
12 <Option type="1" />
13 <Option compiler="sparc_gcc" />
14 <Compiler>
15 <Add directory="E:\MISSIONS\SOLO\DEV_PLE\src" />
16 <Add directory="E:\MISSIONS\SOLO\DEV_PLE\header" />
17 </Compiler>
18 </Target>
19 <Target title="Release">
20 <Option output="bin\Release\FSW" prefix_auto="1" extension_auto="1" />
21 <Option object_output="obj\Release\" />
22 <Option type="1" />
23 <Option compiler="sparc_gcc" />
24 <Compiler>
25 <Add option="-O2" />
26 </Compiler>
27 <Linker>
28 <Add option="-s" />
29 </Linker>
30 </Target>
31 </Build>
32 <Compiler>
33 <Add option="-Wall" />
34 </Compiler>
35 <Unit filename="..\header\LPP_grspw.h" />
36 <Unit filename="..\header\LPP_spwAPI.h" />
37 <Unit filename="..\header\TC_handler.h" />
38 <Unit filename="..\header\basic_parameters.h" />
39 <Unit filename="..\header\ccsds_types.h" />
40 <Unit filename="..\src\FSW.c">
41 <Option compilerVar="CC" />
42 </Unit>
43 <Unit filename="..\src\LPP_grspw.c">
44 <Option compilerVar="CC" />
45 </Unit>
46 <Unit filename="..\src\LPP_spwAPI.c">
47 <Option compilerVar="CC" />
48 </Unit>
49 <Unit filename="..\src\TC_handler.c">
50 <Option compilerVar="CC" />
51 </Unit>
52 <Unit filename="..\src\basic_parameters.c">
53 <Option compilerVar="CC" />
54 </Unit>
55 <Extensions>
56 <code_completion />
57 <debugger />
58 </Extensions>
59 </Project>
60 </CodeBlocks_project_file>
@@ -0,0 +1,54
1 # depslib dependency file v1.0
2 1350886242 source:e:\missions\solo\dev_ple\src\tc_handler.c
3 <..\header\TC_handler.h>
4
5 1350886291 e:\missions\solo\dev_ple\header\tc_handler.h
6 <..\header\ccsds_types.h>
7
8 1350657619 e:\missions\solo\dev_ple\header\ccsds_types.h
9
10 1350886272 source:e:\missions\solo\dev_ple\src\basic_parameters.c
11 <..\header\basic_parameters.h>
12 <math.h>
13
14 1350892168 e:\missions\solo\dev_ple\header\basic_parameters.h
15
16 1350896474 e:\missions\solo\dev_ple\header\spwapi_lpp.h
17 <asm-leon/leonstack.h>
18 <..\header\grspw.h>
19
20 1350904997 source:e:\missions\solo\dev_ple\src\spwapi_lpp.c
21 <..\header\spwAPI_LPP.h>
22 <stdlib.h>
23 <stdio.h>
24
25 1350989918 source:e:\missions\solo\dev_ple\src\fsw.c
26 <..\header\LPP_spwAPI.h>
27 <..\header\basic_parameters.h>
28 <..\header\ccsds_types.h>
29 <stdio.h>
30 <stdlib.h>
31 <asm-leon/timer.h>
32 <asm-leon/irq.h>
33
34 1350983928 e:\missions\solo\dev_ple\header\grspw.h
35
36 1350983928 source:e:\missions\solo\dev_ple\src\grspw.c
37 <..\header\grspw.h>
38 <stdio.h>
39
40 1350989928 source:e:\missions\solo\dev_ple\src\lpp_grspw.c
41 <..\header\LPP_grspw.h>
42 <stdio.h>
43
44 1350983928 e:\missions\solo\dev_ple\header\lpp_grspw.h
45
46 1350990063 source:e:\missions\solo\dev_ple\src\lpp_spwapi.c
47 <..\header\LPP_spwAPI.h>
48 <stdlib.h>
49 <stdio.h>
50
51 1350990050 e:\missions\solo\dev_ple\header\lpp_spwapi.h
52 <asm-leon/leonstack.h>
53 <..\header\LPP_grspw.h>
54
@@ -0,0 +1,31
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_layout_file>
3 <ActiveTarget name="Debug" />
4 <File name="..\header\LPP_grspw.h" open="0" top="0" tabpos="0">
5 <Cursor position="315" topLine="0" />
6 </File>
7 <File name="..\header\TC_handler.h" open="0" top="0" tabpos="0">
8 <Cursor position="98" topLine="0" />
9 </File>
10 <File name="..\header\basic_parameters.h" open="0" top="0" tabpos="0">
11 <Cursor position="203" topLine="0" />
12 </File>
13 <File name="..\header\ccsds_types.h" open="0" top="0" tabpos="7">
14 <Cursor position="191" topLine="0" />
15 </File>
16 <File name="..\src\FSW.c" open="0" top="0" tabpos="1">
17 <Cursor position="23" topLine="39" />
18 </File>
19 <File name="..\src\LPP_grspw.c" open="0" top="0" tabpos="0">
20 <Cursor position="24" topLine="0" />
21 </File>
22 <File name="..\src\LPP_spwAPI.c" open="0" top="0" tabpos="0">
23 <Cursor position="670" topLine="15" />
24 </File>
25 <File name="..\src\TC_handler.c" open="0" top="0" tabpos="0">
26 <Cursor position="67" topLine="0" />
27 </File>
28 <File name="..\src\basic_parameters.c" open="0" top="0" tabpos="0">
29 <Cursor position="39" topLine="0" />
30 </File>
31 </CodeBlocks_layout_file>
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,1
1 grmon -gresb -ip 129.104.27.249 -dna 0xfe -sna 32 -link 0 -u
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,32
1 #ifndef FSW_RTEMS_PROCESSING_H_INCLUDED
2 #define FSW_RTEMS_PROCESSING_H_INCLUDED
3
4 #include <rtems.h>
5
6 #define ADDRESS_APB_SPECTRAL_MATRICES 0x80000700
7 #define LPP_SPECTRAL_MATRIX_CTRL 0x80000700
8 #define LPP_SPECTRAL_MATRIX_1 0x80000704
9 #define LPP_SPECTRAL_MATRIX_2 0x80000708
10 #define IRQ_SPECTRAL_MATRICES 12
11
12 #define NB_BINS_SPECTRAL_MATRIX 128
13 #define NB_VALUES_PER_SPECTRAL_MATRIX 25
14 #define TOTAL_SIZE_SPECTRAL_MATRIX NB_BINS_SPECTRAL_MATRIX * NB_VALUES_PER_SPECTRAL_MATRIX
15 #define NB_BINS_COMPRESSED_MATRIX_f0 11
16 #define SIZE_COMPRESSED_SPECTRAL_MATRIX_f1 13
17 #define SIZE_COMPRESSED_SPECTRAL_MATRIX_f2 12
18 #define TOTAL_SIZE_COMPRESSED_MATRIX_f0 NB_BINS_COMPRESSED_MATRIX_f0 * NB_VALUES_PER_SPECTRAL_MATRIX
19 #define NB_AVERAGE_NORMAL_f0 96*4
20
21 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
22 rtems_task spw_bppr_task(rtems_task_argument argument);
23 rtems_task spw_avf0_task(rtems_task_argument argument);
24 rtems_task spw_bpf0_task(rtems_task_argument argument);
25 rtems_task spw_bppr_task_rate_monotonic(rtems_task_argument argument);
26 void matrix_average(volatile int *spectral_matrix, float *averaged_spectral_matrix);
27 void matrix_compression(float *averaged_spectral_matrix, unsigned char fChannel, float *compressed_spectral_matrix);
28 void matrix_reset(float *averaged_spectral_matrix);
29 void BP1_set(float * compressed_spectral_matrix, unsigned char nb_bins_compressed_spectral_matrix, unsigned char * LFR_BP1);
30 void BP2_set(float * compressed_spectral_matrix, unsigned char nb_bins_compressed_spectral_matrix);
31
32 #endif // FSW_RTEMS_PROCESSING_H_INCLUDED
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,235
1 #ifndef GRSPW_H_INCLUDED
2 #define GRSPW_H_INCLUDED
3
4 #define GRSPW_APB_ADDR 0x80000500
5
6 #define NODEADDR 0xfe
7 #define NODEADDR_M7A3P1000 0xfd
8 #define CLKDIV 0x0303
9 #define DESTKEY 0
10 #define RXMAXLEN 64
11 #define HEADERLEN 4
12
13 #define IFORCE 0x08
14 #define ICLEAR 0x0c
15 #define IMASK 0x40
16 #define GRSPW_IRQ 10
17
18 #define SPW_LINK_STATE_RESET 0
19 #define SPW_LINK_STATE_WAIT 1
20 #define SPW_LINK_STATE_READY 2
21 #define SPW_LINK_STATE_STARTED 3
22 #define SPW_LINK_STATE_CONNECTING 4
23 #define SPW_LINK_STATE_RUN 5
24
25 /////////////////////////////////////
26 /* GRSPW - Control Register - 0x00 */
27 #define GRSPW_CTRL_RA_BIT 31 // RMAP avaialble
28 #define GRSPW_CTRL_RX_BIT 30 // RX unaligned access
29 #define GRSPW_CTRL_RC_BIT 29 // RMAP CRC available
30 #define GRSPW_CTRL_NCH_BIT 27 // 28:27 number of DMA channels minus 1
31 #define GRSPW_CTRL_PO_BIT 26 // number of ports minus 1
32 #define GRSPW_CTRL_PS_BIT 21 // Port select
33 #define GRSPW_CTRL_NP_BIT 20 // No port force
34 #define GRSPW_CTRL_RD_BIT 17 // RMAP buffer disable
35 #define GRSPW_CTRL_RE_BIT 16 // RMAP Enable
36 #define GRSPW_CTRL_TR_BIT 11 // Time Rx enable
37 #define GRSPW_CTRL_TT_BIT 10 // Time Tx enable
38 #define GRSPW_CTRL_LI_BIT 9 // Link error IRQ
39 #define GRSPW_CTRL_TQ_BIT 8 // Tick-out IRQ
40 #define GRSPW_CTRL_RS_BIT 6 // Reset
41 #define GRSPW_CTRL_PM_BIT 5 // Promiscuous mode
42 #define GRSPW_CTRL_TI_BIT 4 // Tick In
43 #define GRSPW_CTRL_IE_BIT 3 // Interrupt enable
44 #define GRSPW_CTRL_AS_BIT 2 // Autostart
45 #define GRSPW_CTRL_LS_BIT 1 // Link Start
46 #define GRSPW_CTRL_LD_BIT 0 // Lind Disable
47
48 #define GRSPW_CTRL_RA (1<<GRSPW_CTRL_RA_BIT)
49 #define GRSPW_CTRL_RX (1<<GRSPW_CTRL_RX_BIT)
50 #define GRSPW_CTRL_RC (1<<GRSPW_CTRL_RC_BIT)
51 #define GRSPW_CTRL_NCH (0x3<<GRSPW_CTRL_NCH_BIT)
52 #define GRSPW_CTRL_PO (1<<GRSPW_CTRL_PO_BIT)
53 #define GRSPW_CTRL_PS (1<<GRSPW_CTRL_PS_BIT)
54 #define GRSPW_CTRL_NP (1<<GRSPW_CTRL_NP_BIT)
55 #define GRSPW_CTRL_RD (1<<GRSPW_CTRL_RD_BIT)
56 #define GRSPW_CTRL_RE (1<<GRSPW_CTRL_RE_BIT)
57 #define GRSPW_CTRL_TR (1<<GRSPW_CTRL_TR_BIT)
58 #define GRSPW_CTRL_TT (1<<GRSPW_CTRL_TT_BIT)
59 #define GRSPW_CTRL_LI (1<<GRSPW_CTRL_LI_BIT)
60 #define GRSPW_CTRL_TQ (1<<GRSPW_CTRL_TQ_BIT)
61 #define GRSPW_CTRL_RS (1<<GRSPW_CTRL_RS_BIT)
62 #define GRSPW_CTRL_PM (1<<GRSPW_CTRL_PM_BIT)
63 #define GRSPW_CTRL_TI (1<<GRSPW_CTRL_TI_BIT)
64 #define GRSPW_CTRL_IE (1<<GRSPW_CTRL_IE_BIT)
65 #define GRSPW_CTRL_AS (1<<GRSPW_CTRL_AS_BIT)
66 #define GRSPW_CTRL_LS (1<<GRSPW_CTRL_LS_BIT)
67 #define GRSPW_CTRL_LD (1<<GRSPW_CTRL_LD_BIT)
68
69 ////////////////////////////////////
70 /* GRSPW - Status Register - 0x04 */
71 #define GRSPW_STAT_LS_BIT 21 // Link State
72 #define GRSPW_STAT_AP_BIT 9 // Active Port
73 #define GRSPW_STAT_EE_BIT 8 // Early EOP-EEP
74 #define GRSPW_STAT_IA_BIT 7 // Invalid Address
75 #define GRSPW_STAT_PE_BIT 4 // Parity Error
76 #define GRSPW_STAT_DE_BIT 3 // Disconnect Error
77 #define GRSPW_STAT_ER_BIT 2 // Escape Error
78 #define GRSPW_STAT_CE_BIT 1 // Credit Error
79 #define GRSPW_STAT_TO_BIT 0 // Tick Out
80
81 #define GRSPW_STAT_LS (0x7<<GRSPW_STAT_LS_BIT)
82 #define GRSPW_STAT_AP (1<<GRSPW_STAT_AP_BIT)
83 #define GRSPW_STAT_EE (1<<GRSPW_STAT_EE_BIT)
84 #define GRSPW_STAT_IA (1<<GRSPW_STAT_IA_BIT)
85 #define GRSPW_STAT_WE (1<<GRSPW_STAT_WE_BIT)
86 #define GRSPW_STAT_PE (1<<GRSPW_STAT_PE_BIT)
87 #define GRSPW_STAT_DE (1<<GRSPW_STAT_DE_BIT)
88 #define GRSPW_STAT_ER (1<<GRSPW_STAT_ER_BIT)
89 #define GRSPW_STAT_CE (1<<GRSPW_STAT_CE_BIT)
90 #define GRSPW_STAT_TO (1<<GRSPW_STAT_TO_BIT)
91
92 /////////////////////////////////////////////
93 /* GRSPW - Default Address Register - 0x08 */
94 #define GRSPW_DEF_ADDR_BIT 0 // Default address
95 #define GRSPW_DEF_MASK_BIT 8 // Default mask
96 #define GRSPW_DEF_ADDR (0xff<<GRSPW_DEF_ADDR_BIT)
97 #define GRSPW_DEF_MASK (0xff<<GRSPW_DEF_MASK_BIT)
98
99 ///////////////////////////////////////////
100 /* GRSPW - Clock Divisor Register - 0x0C */
101 #define GRSPW_CLKDIV_START_BIT 8 // Clock divisor startup
102 #define GRSPW_CLKDIV_RUN_BIT 0 // Clock divisor run
103 #define GRSPW_CLKDIV_START (0xff<<GRSPW_CLKDIV_START_BIT)
104 #define GRSPW_CLKDIV_RUN (0xff<<GRSPW_CLKDIV_RUN_BIT)
105 #define GRSPW_CLKDIV_MASK (GRSPW_CLKDIV_START|GRSPW_CLKDIV_RUN)
106
107 /////////////////////////////////////////////
108 /* GRSPW - Destination key Register - 0x10 */
109 #define GRSPW_DK_DESTKEY_BIT 0 // Destination key
110 #define GRSPW_DK_DESTKEY (0xff<<GRSPW_DK_DESTKEY_BIT)
111
112 //////////////////////////////////
113 /* GRSPW - Time Register - 0x14 */
114 #define GRSPW_TIME_CTRL_BIT 0 // Time counter
115 #define GRSPW_TIME_CNT_BIT 6 // Time control flags
116 #define GRSPW_TIME_CTRL (0x3f<<GRSPW_TIME_CTRL_BIT)
117 #define GRSPW_TIME_TCNT (0x3<<GRSPW_TIME_CNT_BIT)
118
119 ///////////////////////////////////////////
120 /* GRSPW - DMA Control Register - 0x20*N */
121 #define GRSPW_DMACTRL_LE_BIT 16 // Link error disable
122 #define GRSPW_DMACTRL_SP_BIT 15 // Strip PID
123 #define GRSPW_DMACTRL_SA_BIT 14 // Strip address
124 #define GRSPW_DMACTRL_EN_BIT 13 // Enable address
125 #define GRSPW_DMACTRL_NS_BIT 12 // No spill
126 #define GRSPW_DMACTRL_RD_BIT 11 // Rx descriptors available
127 #define GRSPW_DMACTRL_RX_BIT 10 // RX active
128 #define GRSPW_DMACTRL_AT_BIT 9 // Abort TX
129 #define GRSPW_DMACTRL_RA_BIT 8 // RX AHB error
130 #define GRSPW_DMACTRL_TA_BIT 7 // TX AHB error
131 #define GRSPW_DMACTRL_PR_BIT 6 // Packet received
132 #define GRSPW_DMACTRL_PS_BIT 5 // Packet sent
133 #define GRSPW_DMACTRL_AI_BIT 4 // AHB error interrupt
134 #define GRSPW_DMACTRL_RI_BIT 3 // Receive interrupt
135 #define GRSPW_DMACTRL_TI_BIT 2 // Transmit interrupt
136 #define GRSPW_DMACTRL_RE_BIT 1 // Receiver enable
137 #define GRSPW_DMACTRL_TE_BIT 0 // Transmitter enable
138
139 #define GRSPW_DMACTRL_LE (1<<GRSPW_DMACTRL_LE_BIT)
140 #define GRSPW_DMACTRL_SP (1<<GRSPW_DMACTRL_SP_BIT)
141 #define GRSPW_DMACTRL_SA (1<<GRSPW_DMACTRL_SA_BIT)
142 #define GRSPW_DMACTRL_EN (1<<GRSPW_DMACTRL_EN_BIT)
143 #define GRSPW_DMACTRL_NS (1<<GRSPW_DMACTRL_NS_BIT)
144 #define GRSPW_DMACTRL_RD (1<<GRSPW_DMACTRL_RD_BIT)
145 #define GRSPW_DMACTRL_RX (1<<GRSPW_DMACTRL_RX_BIT)
146 #define GRSPW_DMACTRL_AT (1<<GRSPW_DMACTRL_AT_BIT)
147 #define GRSPW_DMACTRL_RA (1<<GRSPW_DMACTRL_RA_BIT)
148 #define GRSPW_DMACTRL_TA (1<<GRSPW_DMACTRL_TA_BIT)
149 #define GRSPW_DMACTRL_PR (1<<GRSPW_DMACTRL_PR_BIT)
150 #define GRSPW_DMACTRL_PS (1<<GRSPW_DMACTRL_PS_BIT)
151 #define GRSPW_DMACTRL_AI (1<<GRSPW_DMACTRL_AI_BIT)
152 #define GRSPW_DMACTRL_RI (1<<GRSPW_DMACTRL_RI_BIT)
153 #define GRSPW_DMACTRL_TI (1<<GRSPW_DMACTRL_TI_BIT)
154 #define GRSPW_DMACTRL_RE (1<<GRSPW_DMACTRL_RE_BIT)
155 #define GRSPW_DMACTRL_TE (1<<GRSPW_DMACTRL_TE_BIT)
156
157 //////////////////////////////////////////////////////////////////////
158 /* GRSPW - DMA Channel Max Packet Length Register - (0x20*N + 0x04) */
159 #define GRSPW_DMARXLEN_MAX_BIT 0 // RX maximum length
160 #define GRSPW_DMARXLEN_MAX (0xffffff<<GRSPW_DMARXLEN_MAX_BIT)
161
162 /* GRSPW - DMA Channel Address Register - (0x20*N + 0x10) */
163 #define GRSPW_DMAADR_ADDR_BIT 0 // address
164 #define GRSPW_DMAADR_MASK_BIT 8 // Mask
165 #define GRSPW_DMAADR_ADDR (0xff<<GRSPW_DMAADR_ADDR_BIT)
166 #define GRSPW_DMAADR_MASK (0xff<<GRSPW_DMAADR_MASK_BIT)
167
168 /* RX Buffer Descriptor */
169 struct grspw_rxbd {
170 volatile unsigned int ctrl;
171 volatile unsigned int addr;
172 };
173
174 /* TX Buffer Descriptor */
175 struct grspw_txbd {
176 volatile unsigned int ctrl;
177 volatile unsigned int haddr;
178 volatile unsigned int dlen;
179 volatile unsigned int daddr;
180 };
181
182 ///////////////////////////////////////////
183 /* GRSPW - DMA Receive descriptor word 0 */
184 #define GRSPW_RXBD_LEN_BIT 0
185 #define GRSPW_RXBD_LEN (0x1ffffff<<GRSPW_RXBD_LEN_BIT)
186 #define GRSPW_RXBD_EN (1<<25) // Enable
187 #define GRSPW_RXBD_WR (1<<26) // Wrap
188 #define GRSPW_RXBD_IE (1<<27) // Interrupt enable
189 #define GRSPW_RXBD_EP (1<<28) // EEP termination
190 #define GRSPW_RXBD_HC (1<<29) // Header CRC
191 #define GRSPW_RXBD_DC (1<<30) // Data CRC
192 #define GRSPW_RXBD_TR (1<<31) // Truncated
193
194 ////////////////////////////////////////////
195 /* GRSPW - DMA Transmit descriptor word 0 */
196 #define GRSPW_TXBD_HLEN (0xff<<0) // header length
197 #define GRSPW_TXBD_NCL (0xf<<8) // non-CRC bytes
198 #define GRSPW_TXBD_EN (1<<12) // Enable
199 #define GRSPW_TXBD_WR (1<<13) // Wrap
200 #define GRSPW_TXBD_IE (1<<14) // Interrupt enable
201 #define GRSPW_TXBD_LE (1<<15) // Link error
202 #define GRSPW_TXBD_HC (1<<16) // Append header CRC
203 #define GRSPW_TXBD_DC (1<<17) // Append data CRC
204
205 struct grspwregs_str
206 {
207 volatile int ctrl;
208 volatile int status;
209 volatile int nodeaddr;
210 volatile int clkdiv;
211 volatile int destkey;
212 volatile int time;
213 volatile int unused[2];
214 volatile int dmactrl;
215 volatile int rxmaxlen;
216 volatile int txdesc;
217 volatile int rxdesc;
218 };
219 typedef struct grspwregs_str grspwregs_t;
220
221 struct spacewire_PARAMETERS_str
222 {
223 int *size;
224 volatile char *rx;
225 volatile int *rxd;
226 char *tx;
227 volatile int *txd;
228 grspwregs_t *regs;
229 } spacewire_PARAMETERS;
230
231 ////////////
232 // FUNCTIONS
233 unsigned int grspw_link_state(grspwregs_t *);
234
235 #endif // GRSPW_H_INCLUDED
@@ -0,0 +1,95
1 #ifndef SPWAPI_LPP_H
2 #define SPWAPI_LPP_H
3
4 #include <asm-leon/leonstack.h>
5 #include <..\header\LPP_grspw.h>
6
7 #define LPP_TIME_MANAGER 0x80000600
8
9 struct spectral_matrices_regs_str
10 {
11 volatile unsigned int ctrl;
12 volatile unsigned int address1;
13 volatile unsigned int address2;
14 };
15 typedef struct spectral_matrices_regs_str spectral_matrices_regs_t;
16
17 struct packet_type_str
18 {
19 char time_packet;
20 char tc_packet;
21 } packet_type;
22
23 struct spwHeader_str
24 {
25 unsigned char targetLogicalAddress;
26 unsigned char protocolIdentifier;
27 unsigned char reserved;
28 unsigned char userApplication;
29 };
30 typedef struct spwHeader_str spwHeader_t;
31
32 struct time_manager_regs_str
33 {
34 volatile int ctrl;
35 volatile int next_coarse_time;
36 volatile int current_coarse_time;
37 volatile int fine_time;
38 };
39 typedef struct time_manager_regs_str time_manager_regs_t;
40
41 // GENERAL PURPOSE FUNCTIONS
42
43 inline int loadmemAPI(int addr);
44
45 inline char loadb(int addr);
46
47 char *almalloc(int sz);
48
49 ////////////////
50 // SPW FUNCTIONS
51 ////////////////
52
53 void spw_reset(grspwregs_t *regs);
54
55 void spw_init(int nodeaddr, int clkdiv, int destkey, int rxmaxlen, grspwregs_t *regs);
56
57 void set_txd(char *dataAddress, unsigned int dataLength, char *headerAddress, unsigned int headerLength, volatile int *txd);
58
59 int spw_checkrx(int* size, volatile int *rxd, grspwregs_t *regs);
60
61 int spw_checktx(grspwregs_t *regs);
62
63 void enable_transmitter_descriptor(unsigned int headerLength, volatile int *txd);
64
65 void enable_transmitter(grspwregs_t *regs);
66
67 void enable_receiver_descriptor(volatile char *rx, volatile int *rxd);
68
69 void enable_receiver(grspwregs_t *regs);
70
71 void send_data(unsigned int headerLength, volatile int *txd, grspwregs_t *regs, char* tx, char value);
72
73 int enable_timecode_reception(grspwregs_t *regs);
74
75 int check_time(grspwregs_t *grspw_regs);
76
77 //////////////
78 // GENERAL USE
79 //////////////
80
81 void send_fine_time(unsigned int fine_time);
82
83 //////
84 // IRQ
85 //////
86
87 int irqhandler_receive_CCSDS(int irq, void * args, struct leonbare_pt_regs *leon_regs);
88
89 int enable_irq(int irq);
90
91 int disable_irq(int irq);
92
93 int force_irq(int irq);
94
95 #endif // SPWAPI_LPP_H
@@ -0,0 +1,8
1 #ifndef TC_HANDLER_H_INCLUDED
2 #define TC_HANDLER_H_INCLUDED
3
4 #include <..\header\ccsds_types.h>
5
6 char TM_checker(ccsdsTelecommandSourcePacketHeader_t * TMPacket);
7
8 #endif // TC_HANDLER_H_INCLUDED
@@ -0,0 +1,28
1 #ifndef BASIC_PARAMETERS_H_INCLUDED
2 #define BASIC_PARAMETERS_H_INCLUDED
3
4 #define LPP_SPECTRAL_MATRIX_CTRL 0x80000700
5 #define LPP_SPECTRAL_MATRIX_1 0x80000704
6 #define LPP_SPECTRAL_MATRIX_2 0x80000708
7
8 #define NB_BINS_SPECTRAL_MATRIX 128
9 #define NB_VALUES_PER_SPECTRAL_MATRIX 30
10 #define TOTAL_SIZE_SPECTRAL_MATRIX NB_BINS_SPECTRAL_MATRIX * NB_VALUES_PER_SPECTRAL_MATRIX
11 #define NB_BINS_COMPRESSED_MATRIX_f0 11
12 #define SIZE_COMPRESSED_SPECTRAL_MATRIX_f1 13
13 #define SIZE_COMPRESSED_SPECTRAL_MATRIX_f2 12
14 #define TOTAL_SIZE_COMPRESSED_MATRIX_f0 NB_BINS_COMPRESSED_MATRIX_f0 * NB_VALUES_PER_SPECTRAL_MATRIX
15 #define NB_AVERAGE_NORMAL_f0 4
16
17 volatile int spectral_matrix_f0_a[TOTAL_SIZE_SPECTRAL_MATRIX];
18 volatile int spectral_matrix_f0_b[TOTAL_SIZE_SPECTRAL_MATRIX];
19 int averaged_spectral_matrix_f0[TOTAL_SIZE_SPECTRAL_MATRIX];
20
21 float compressed_spectral_matrix_f0[TOTAL_SIZE_COMPRESSED_MATRIX_f0];
22
23 unsigned char LFR_BP1_F0[NB_BINS_COMPRESSED_MATRIX_f0*9];
24
25 void BP1_set();
26 void BP2_set();
27
28 #endif // BASIC_PARAMETERS_H_INCLUDED
@@ -0,0 +1,68
1 #ifndef CCSDS_H_INCLUDED
2 #define CCSDS_H_INCLUDED
3
4 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
5 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
6 #define CCSDS_TELECOMMAND_MAX_PACKET_LENGTH 248
7 #define CCSDS_PROCESS_ID 11
8 #define CCSDS_PACKET_CATEGORY 12
9
10 #define CCSDS_ERR_PID -1
11 #define CCSDS_ERR_CAT -2
12 #define CCSDS_ERR_LENGTH -3
13 #define CCSDS_ERR_TYPE -4
14 #define CCSDS_ERR_SUBTYPE -5
15 #define CCSDS_ERR_SRC -6
16 #define CCSDS_ERR_CRC -7
17 #define CCSDS_TM_VALID 1
18
19 struct ccsdsTelemetrySourcePacketHeader_str
20 {
21 unsigned char targetLogicalAddress;
22 unsigned char protocolIdentifier;
23 unsigned char reserved;
24 unsigned char userApplication;
25 unsigned char packetID[2];
26 unsigned char packetSequenceControl[2];
27 unsigned char packetLength[2];
28 unsigned char dataFieldHeader[10];
29 };
30 typedef struct ccsdsTelemetrySourcePacketHeader_str ccsdsTelemetrySourcePacketHeader_t;
31
32 struct ccsdsTelecommandSourcePacketHeader_str
33 {
34 unsigned char targetLogicalAddress;
35 unsigned char protocolIdentifier;
36 unsigned char reserved;
37 unsigned char userApplication;
38 unsigned char packetID[2];
39 unsigned char packetSequenceControl[2];
40 unsigned char packetLength[2];
41 unsigned char dataFieldHeader[4];
42 };
43 typedef struct ccsdsTelemetrySourcePacketHeader_str ccsdsTelecommandSourcePacketHeader_t;
44
45 // initialize the ccsds telemetry header
46 ccsdsTelemetrySourcePacketHeader_t ccsdsTelemetryHeader;
47 #define INIT_CCSDS_TELEMETRY_HEADER ccsdsTelemetryHeader.targetLogicalAddress = 0x21; \
48 ccsdsTelemetryHeader.protocolIdentifier = 0x02; \
49 ccsdsTelemetryHeader.reserved = 0x00; \
50 ccsdsTelemetryHeader.userApplication = 0x00; \
51 ccsdsTelemetryHeader.packetID[0] = 0x08; \
52 ccsdsTelemetryHeader.packetID[1] = 0xbc; \
53 ccsdsTelemetryHeader.packetSequenceControl[0] = 0xc0; \
54 ccsdsTelemetryHeader.packetSequenceControl[1] = 0x00; \
55 ccsdsTelemetryHeader.packetLength[0] = 0x00; \
56 ccsdsTelemetryHeader.packetLength[1] = 0x00; \
57 ccsdsTelemetryHeader.dataFieldHeader[0] = 0x00; \
58 ccsdsTelemetryHeader.dataFieldHeader[1] = 0x00; \
59 ccsdsTelemetryHeader.dataFieldHeader[2] = 0x00; \
60 ccsdsTelemetryHeader.dataFieldHeader[3] = 0x00; \
61 ccsdsTelemetryHeader.dataFieldHeader[4] = 0x00; \
62 ccsdsTelemetryHeader.dataFieldHeader[5] = 0x00; \
63 ccsdsTelemetryHeader.dataFieldHeader[6] = 0x00; \
64 ccsdsTelemetryHeader.dataFieldHeader[7] = 0x00; \
65 ccsdsTelemetryHeader.dataFieldHeader[8] = 0x00; \
66 ccsdsTelemetryHeader.dataFieldHeader[9] = 0x00;
67
68 #endif // CCSDS_H_INCLUDED
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,44
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_project_file>
3 <FileVersion major="1" minor="6" />
4 <Project>
5 <Option title="rtems-hello" />
6 <Option pch_mode="2" />
7 <Option compiler="sparc_rtems_gcc" />
8 <Build>
9 <Target title="Debug">
10 <Option output="bin\Debug\rtems-hello" prefix_auto="1" extension_auto="1" />
11 <Option object_output="obj\Debug\" />
12 <Option type="1" />
13 <Option compiler="sparc_rtems_gcc" />
14 <Compiler>
15 <Add option="-g" />
16 <Add directory="C:\opt\rtems-4.10-mingw\src\samples" />
17 <Add directory="C:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include" />
18 </Compiler>
19 </Target>
20 <Target title="Release">
21 <Option output="bin\Release\rtems-hello" prefix_auto="1" extension_auto="1" />
22 <Option object_output="obj\Release\" />
23 <Option type="1" />
24 <Option compiler="sparc_rtems_gcc" />
25 <Compiler>
26 <Add option="-O2" />
27 </Compiler>
28 <Linker>
29 <Add option="-s" />
30 </Linker>
31 </Target>
32 </Build>
33 <Compiler>
34 <Add option="-Wall" />
35 </Compiler>
36 <Unit filename="..\..\..\..\GAISLER\C\rtems-hello\rtems-hello.c">
37 <Option compilerVar="CC" />
38 </Unit>
39 <Extensions>
40 <code_completion />
41 <debugger />
42 </Extensions>
43 </Project>
44 </CodeBlocks_project_file>
This diff has been collapsed as it changes many lines, (925 lines changed) Show them Hide them
@@ -0,0 +1,925
1 # depslib dependency file v1.0
2 1351516874 source:e:\gaisler\c\rtems-hello\rtems-hello.c
3 <rtems.h>
4 <bsp.h>
5 <rtems/confdefs.h>
6 <drvmgr/ambapp_bus.h>
7 <drvmgr/drvmgr_confdefs.h>
8 <stdio.h>
9 <stdlib.h>
10 <fcntl.h>
11 <drvmgr/drvmgr.h>
12 <errno.h>
13
14 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems.h
15 <rtems/system.h>
16 <rtems/rtems/status.h>
17 <rtems/rtems/types.h>
18 <rtems/config.h>
19 <rtems/init.h>
20 <rtems/rtems/options.h>
21 <rtems/rtems/tasks.h>
22 <rtems/rtems/intr.h>
23 <rtems/rtems/barrier.h>
24 <rtems/rtems/cache.h>
25 <rtems/rtems/clock.h>
26 <rtems/extension.h>
27 <rtems/rtems/timer.h>
28 <rtems/rtems/sem.h>
29 <rtems/rtems/message.h>
30 <rtems/rtems/event.h>
31 <rtems/rtems/signal.h>
32 <rtems/rtems/event.h>
33 <rtems/rtems/object.h>
34 <rtems/rtems/part.h>
35 <rtems/rtems/region.h>
36 <rtems/rtems/dpmem.h>
37 <rtems/io.h>
38 <rtems/fatal.h>
39 <rtems/rtems/ratemon.h>
40 <rtems/rtems/mp.h>
41 <rtems/rtems/support.h>
42 <rtems/score/sysstate.h>
43
44 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\system.h
45 <rtems/score/cpuopts.h>
46 <stddef.h>
47 <stdint.h>
48 <rtems/score/cpu.h>
49
50 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpuopts.h
51
52 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpu.h
53 <rtems/score/sparc.h>
54 <rtems/score/types.h>
55
56 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sparc.h
57
58 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\types.h
59 <stdbool.h>
60 <stdint.h>
61
62 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.h
63 <rtems/rtems/status.inl>
64
65 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.inl
66
67 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\types.h
68 <stdint.h>
69 <rtems/score/heap.h>
70 <rtems/score/object.h>
71 <rtems/score/priority.h>
72 <rtems/score/tod.h>
73 <rtems/score/watchdog.h>
74 <rtems/rtems/modes.h>
75 <rtems/score/mpci.h>
76 <rtems/score/mppkt.h>
77
78 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.h
79 <rtems/score/heap.inl>
80 <assert.h>
81
82 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.inl
83 <rtems/score/address.h>
84
85 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.h
86 <rtems/score/address.inl>
87
88 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.inl
89 <rtems/bspIo.h>
90
91 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bspio.h
92 <stdarg.h>
93
94 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.h
95 <rtems/score/chain.h>
96 <rtems/score/isr.h>
97 <rtems/score/object.inl>
98 <rtems/score/objectmp.h>
99
100 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.h
101 <rtems/score/address.h>
102 <rtems/score/chain.inl>
103
104 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.inl
105
106 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.h
107 <rtems/score/isr.inl>
108
109 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.inl
110
111 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.inl
112
113 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.h
114 <rtems/score/cpu.h>
115 <rtems/score/priority.inl>
116
117 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.inl
118 <rtems/score/bitfield.h>
119
120 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\bitfield.h
121
122 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.h
123 <rtems/score/timestamp.h>
124 <time.h>
125 <rtems/score/tod.inl>
126
127 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp.h
128 <rtems/score/timespec.h>
129 <rtems/score/timestamp64.h>
130
131 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timespec.h
132 <stdint.h>
133 <time.h>
134
135 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp64.h
136
137 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.inl
138 <sys/time.h>
139 <rtems/score/isr.h>
140
141 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.h
142 <rtems/score/object.h>
143 <rtems/score/watchdog.inl>
144
145 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.inl
146
147 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.h
148 <rtems/score/isr.h>
149 <rtems/rtems/modes.inl>
150
151 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.inl
152
153 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\config.h
154 <rtems/score/object.h>
155 <rtems/posix/config.h>
156 <rtems/itron.h>
157 <rtems/itron/config.h>
158 <rtems/rtems/config.h>
159 <rtems/extension.h>
160 <rtems/io.h>
161 <rtems/score/mpci.h>
162
163 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\config.h
164
165 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\config.h
166 <rtems/rtems/types.h>
167 <rtems/rtems/tasks.h>
168
169 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.h
170 <rtems/score/object.h>
171 <rtems/score/states.h>
172 <rtems/score/thread.h>
173 <rtems/rtems/types.h>
174 <rtems/rtems/eventset.h>
175 <rtems/rtems/asr.h>
176 <rtems/rtems/attr.h>
177 <rtems/rtems/status.h>
178 <rtems/rtems/tasks.inl>
179 <rtems/rtems/taskmp.h>
180
181 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.h
182 <rtems/score/states.inl>
183
184 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.inl
185
186 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.h
187 <rtems/score/timestamp.h>
188 <rtems/score/context.h>
189 <rtems/score/cpu.h>
190 <rtems/score/mppkt.h>
191 <rtems/score/object.h>
192 <rtems/score/priority.h>
193 <rtems/score/stack.h>
194 <rtems/score/states.h>
195 <rtems/score/tod.h>
196 <rtems/score/tqdata.h>
197 <rtems/score/watchdog.h>
198 <rtems/score/thread.inl>
199 <rtems/score/threadmp.h>
200
201 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\context.h
202 <rtems/score/cpu.h>
203
204 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.h
205 <rtems/score/stack.inl>
206
207 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.inl
208
209 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.h
210 <rtems/score/chain.h>
211 <rtems/score/priority.h>
212 <rtems/score/states.h>
213 <rtems/score/threadsync.h>
214 <rtems/score/tqdata.inl>
215
216 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadsync.h
217
218 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.inl
219
220 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.inl
221 <rtems/score/sysstate.h>
222 <rtems/score/context.h>
223 <rtems/bspIo.h>
224 <rtems/fatal.h>
225 <rtems/stackchk.h>
226 <rtems/score/sysstate.h>
227 <rtems/score/heap.h>
228
229 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.h
230 <rtems/score/sysstate.inl>
231
232 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.inl
233
234 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fatal.h
235
236 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\stackchk.h
237 <rtems/bspIo.h>
238
239 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.h
240 <rtems/rtems/eventset.inl>
241
242 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.inl
243
244 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.h
245 <rtems/rtems/modes.h>
246 <rtems/rtems/asr.inl>
247
248 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.inl
249 <rtems/score/isr.h>
250
251 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.h
252 <rtems/rtems/attr.inl>
253
254 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.inl
255
256 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.inl
257
258 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.h
259 <rtems/score/object.h>
260 <rtems/score/userext.h>
261 <rtems/rtems/status.h>
262 <rtems/rtems/types.h>
263 <rtems/extension.inl>
264
265 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\userext.h
266 <rtems/score/interr.h>
267 <rtems/score/chain.h>
268 <rtems/score/thread.h>
269
270 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\interr.h
271 <stdbool.h>
272 <stdint.h>
273 <rtems/system.h>
274
275 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.inl
276
277 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\io.h
278 <rtems/rtems/status.h>
279
280 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\init.h
281 <rtems/rtems/types.h>
282 <rtems/config.h>
283 <rtems/rtems/intr.h>
284
285 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\intr.h
286 <rtems/score/isr.h>
287
288 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.h
289 <rtems/rtems/options.inl>
290
291 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.inl
292
293 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.h
294 <rtems/rtems/types.h>
295 <rtems/rtems/support.h>
296 <rtems/rtems/attr.h>
297 <rtems/rtems/status.h>
298 <rtems/score/object.h>
299 <rtems/score/corebarrier.h>
300 <rtems/rtems/barrier.inl>
301
302 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.h
303 <rtems/rtems/types.h>
304 <rtems/rtems/support.inl>
305
306 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.inl
307
308 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.h
309 <rtems/score/thread.h>
310 <rtems/score/threadq.h>
311 <rtems/score/priority.h>
312 <rtems/score/watchdog.h>
313 <rtems/score/corebarrier.inl>
314
315 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.h
316 <rtems/score/tqdata.h>
317 <rtems/score/object.h>
318 <rtems/score/thread.h>
319 <rtems/score/watchdog.h>
320 <rtems/score/threadq.inl>
321
322 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.inl
323 <rtems/score/thread.h>
324
325 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.inl
326 <rtems/score/thread.h>
327 <rtems/score/threadq.h>
328
329 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.inl
330
331 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\cache.h
332 <rtems/system.h>
333 <sys/types.h>
334
335 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\clock.h
336 <rtems/score/tod.h>
337 <rtems/score/watchdog.h>
338 <rtems/rtems/status.h>
339 <rtems/rtems/types.h>
340 <sys/time.h>
341
342 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.h
343 <rtems/score/object.h>
344 <rtems/score/watchdog.h>
345 <rtems/score/thread.h>
346 <rtems/score/chain.h>
347 <rtems/rtems/clock.h>
348 <rtems/rtems/attr.h>
349 <rtems/rtems/timer.inl>
350
351 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.inl
352
353 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.h
354 <rtems/rtems/types.h>
355 <rtems/rtems/options.h>
356 <rtems/rtems/support.h>
357 <rtems/rtems/tasks.h>
358 <rtems/rtems/attr.h>
359 <rtems/score/coremutex.h>
360 <rtems/score/object.h>
361 <rtems/score/coresem.h>
362 <rtems/rtems/sem.inl>
363 <rtems/rtems/semmp.h>
364
365 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.h
366 <rtems/score/thread.h>
367 <rtems/score/threadq.h>
368 <rtems/score/priority.h>
369 <rtems/score/watchdog.h>
370 <rtems/score/interr.h>
371 <rtems/score/sysstate.h>
372 <rtems/score/coremutex.inl>
373
374 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.inl
375
376 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.h
377 <rtems/score/thread.h>
378 <rtems/score/threadq.h>
379 <rtems/score/priority.h>
380 <rtems/score/watchdog.h>
381 <rtems/score/coresem.inl>
382
383 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.inl
384 <rtems/score/thread.h>
385 <rtems/score/threadq.h>
386
387 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.inl
388
389 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.h
390 <rtems/rtems/types.h>
391 <rtems/rtems/status.h>
392 <rtems/rtems/options.h>
393 <rtems/score/chain.h>
394 <rtems/score/object.h>
395 <rtems/rtems/attr.h>
396 <rtems/score/coremsg.h>
397 <rtems/rtems/message.inl>
398 <rtems/rtems/msgmp.h>
399
400 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.h
401 <limits.h>
402 <rtems/score/thread.h>
403 <rtems/score/threadq.h>
404 <rtems/score/priority.h>
405 <rtems/score/watchdog.h>
406 <rtems/score/coremsg.inl>
407
408 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.inl
409 <string.h>
410
411 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.inl
412 <rtems/score/wkspace.h>
413
414 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.h
415 <rtems/score/heap.h>
416 <rtems/score/interr.h>
417 <rtems/score/wkspace.inl>
418
419 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.inl
420
421 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.h
422 <rtems/score/object.h>
423 <rtems/rtems/status.h>
424 <rtems/rtems/types.h>
425 <rtems/rtems/options.h>
426 <rtems/score/thread.h>
427 <rtems/score/threadsync.h>
428 <rtems/score/watchdog.h>
429 <rtems/rtems/eventset.h>
430 <rtems/rtems/eventmp.h>
431 <rtems/rtems/event.inl>
432
433 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.inl
434
435 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\signal.h
436 <rtems/rtems/asr.h>
437 <rtems/rtems/modes.h>
438 <rtems/score/object.h>
439 <rtems/rtems/status.h>
440 <rtems/rtems/types.h>
441 <rtems/rtems/signalmp.h>
442
443 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\object.h
444 <stdint.h>
445 <rtems/score/object.h>
446 <rtems/rtems/status.h>
447 <rtems/rtems/types.h>
448
449 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.h
450 <rtems/score/address.h>
451 <rtems/score/object.h>
452 <rtems/rtems/attr.h>
453 <rtems/rtems/status.h>
454 <rtems/rtems/support.h>
455 <rtems/rtems/types.h>
456 <rtems/rtems/part.inl>
457 <rtems/rtems/partmp.h>
458
459 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.inl
460
461 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.h
462 <rtems/score/object.h>
463 <rtems/score/threadq.h>
464 <rtems/score/heap.h>
465 <rtems/debug.h>
466 <rtems/rtems/attr.h>
467 <rtems/rtems/options.h>
468 <rtems/rtems/status.h>
469 <rtems/rtems/support.h>
470 <rtems/rtems/types.h>
471 <rtems/rtems/region.inl>
472 <rtems/rtems/regionmp.h>
473
474 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\debug.h
475
476 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.inl
477
478 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.h
479 <rtems/score/object.h>
480 <rtems/rtems/support.h>
481 <rtems/rtems/status.h>
482 <rtems/rtems/dpmem.inl>
483
484 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.inl
485
486 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.h
487 <rtems/bspIo.h>
488 <rtems/score/timespec.h>
489 <rtems/score/timestamp.h>
490 <rtems/score/object.h>
491 <rtems/score/thread.h>
492 <rtems/score/watchdog.h>
493 <rtems/rtems/status.h>
494 <rtems/rtems/support.h>
495 <string.h>
496 <rtems/rtems/ratemon.inl>
497
498 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.inl
499
500 1340115162 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bsp.h
501 <bspopts.h>
502 <rtems.h>
503 <leon.h>
504 <rtems/clockdrv.h>
505 <rtems/console.h>
506 <rtems/irq-extension.h>
507
508 1340115162 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bspopts.h
509
510 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\leon.h
511 <rtems/score/sparc.h>
512 <amba.h>
513
514 1340115162 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\amba.h
515 <ambapp.h>
516 <grlib.h>
517
518 1340115162 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp.h
519 <ambapp_ids.h>
520
521 1340115162 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp_ids.h
522
523 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\grlib.h
524
525 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\clockdrv.h
526
527 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\console.h
528
529 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\irq-extension.h
530 <rtems.h>
531
532 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\confdefs.h
533 <rtems.h>
534 <rtems/score/apimutex.h>
535 <rtems/libio.h>
536 <rtems/imfs.h>
537 <rtems/devfs.h>
538 <rtems/ftpfs.h>
539 <rtems/tftp.h>
540 <librtemsNfs.h>
541 <rtems/dosfs.h>
542 <rtems/rtems-rfs.h>
543 <rtems/devfs.h>
544 <rtems/malloc.h>
545 <rtems/score/wkspace.h>
546 <rtems/console.h>
547 <rtems/clockdrv.h>
548 <rtems/timerdrv.h>
549 <rtems/rtc.h>
550 <rtems/watchdogdrv.h>
551 <rtems/framebuffer.h>
552 <rtems/devnull.h>
553 <libchip/ide_ctrl.h>
554 <libchip/ata.h>
555 <rtems/bdbuf.h>
556 <mpci.h>
557 <rtems/stackchk.h>
558 <rtems/libcsupport.h>
559 <sys/types.h>
560 <signal.h>
561 <limits.h>
562 <mqueue.h>
563 <rtems/posix/barrier.h>
564 <rtems/posix/cond.h>
565 <rtems/posix/mqueue.h>
566 <rtems/posix/mutex.h>
567 <rtems/posix/key.h>
568 <rtems/posix/psignal.h>
569 <rtems/posix/rwlock.h>
570 <rtems/posix/semaphore.h>
571 <rtems/posix/spinlock.h>
572 <rtems/posix/threadsup.h>
573 <rtems/posix/timer.h>
574 <rtems/itron.h>
575 <rtems/itron/config.h>
576 <rtems/itron/eventflags.h>
577 <rtems/itron/fmempool.h>
578 <rtems/itron/mbox.h>
579 <rtems/itron/msgbuffer.h>
580 <rtems/itron/port.h>
581 <rtems/itron/semaphore.h>
582 <rtems/itron/task.h>
583 <rtems/itron/vmempool.h>
584 <reent.h>
585 <pci/cfg.h>
586 <pci/cfg.h>
587 <pci/cfg.h>
588
589 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\apimutex.h
590 <rtems/score/coremutex.h>
591 <rtems/score/isr.h>
592 <rtems/score/object.h>
593
594 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio.h
595 <sys/types.h>
596 <sys/stat.h>
597 <sys/ioctl.h>
598 <sys/statvfs.h>
599 <unistd.h>
600 <termios.h>
601 <rtems.h>
602 <rtems/fs.h>
603 <rtems/chain.h>
604
605 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioctl.h
606 <sys/ttycom.h>
607 <sys/ioccom.h>
608 <sys/filio.h>
609 <sys/sockio.h>
610
611 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ttycom.h
612 <sys/ioccom.h>
613
614 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioccom.h
615 <sys/types.h>
616 <rtems/bsd/sys/cdefs.h>
617
618 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsd\sys\cdefs.h
619
620 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\filio.h
621 <sys/ioccom.h>
622
623 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\sockio.h
624 <sys/ioccom.h>
625
626 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\statvfs.h
627 <sys/cdefs.h>
628 <stdint.h>
629
630 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fs.h
631
632 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.h
633 <rtems/system.h>
634 <rtems/score/chain.h>
635 <rtems/chain.inl>
636
637 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.inl
638 <rtems/score/chain.inl>
639
640 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\imfs.h
641 <rtems.h>
642 <rtems/chain.h>
643 <sys/types.h>
644 <limits.h>
645 <rtems/libio.h>
646 <rtems/pipe.h>
647
648 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\pipe.h
649 <rtems/libio.h>
650
651 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devfs.h
652 <rtems/libio_.h>
653
654 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio_.h
655 <rtems.h>
656 <rtems/libio.h>
657 <sys/types.h>
658 <errno.h>
659 <rtems/userenv.h>
660
661 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\userenv.h
662 <rtems.h>
663 <rtems/fs.h>
664 <limits.h>
665
666 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\ftpfs.h
667 <sys/time.h>
668 <sys/ioctl.h>
669 <rtems/libio.h>
670
671 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\tftp.h
672 <rtems/libio.h>
673
674 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\librtemsnfs.h
675 <config.h>
676 <rtems.h>
677 <rtems/libio.h>
678 <rtems/libio_.h>
679 <rtems/seterr.h>
680 <string.h>
681 <stdio.h>
682 <stdlib.h>
683 <assert.h>
684 <sys/stat.h>
685 <dirent.h>
686 <netdb.h>
687 <ctype.h>
688 <netinet/in.h>
689 <arpa/inet.h>
690 "rpcio.h"
691
692 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\seterr.h
693
694 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netdb.h
695 <rtems/bsd/sys/cdefs.h>
696 <rtems/bsdnet/_types.h>
697
698 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsdnet\_types.h
699 <stdint.h>
700
701 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netinet\in.h
702 <rtems/bsdnet/_types.h>
703 <rtems/endian.h>
704
705 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\endian.h
706 <rtems.h>
707
708 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\arpa\inet.h
709 <rtems/bsd/sys/cdefs.h>
710 <rtems/bsdnet/_types.h>
711 <rtems/endian.h>
712
713 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\dosfs.h
714 <rtems.h>
715 <rtems/libio.h>
716
717 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems-rfs.h
718 <rtems.h>
719 <rtems/fs.h>
720
721 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\malloc.h
722 <rtems.h>
723 <rtems/bspIo.h>
724 <stdint.h>
725
726 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\timerdrv.h
727
728 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtc.h
729 <rtems.h>
730
731 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\framebuffer.h
732
733 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devnull.h
734
735 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ide_ctrl.h
736
737 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ata.h
738 <rtems.h>
739 <sys/ioctl.h>
740 <rtems/blkdev.h>
741
742 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\blkdev.h
743 <rtems.h>
744 <rtems/diskdevs.h>
745 <sys/ioctl.h>
746
747 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\diskdevs.h
748 <rtems.h>
749 <rtems/libio.h>
750 <stdlib.h>
751
752 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bdbuf.h
753 <rtems.h>
754 <rtems/libio.h>
755 <rtems/chain.h>
756 <rtems/blkdev.h>
757 <rtems/diskdevs.h>
758
759 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libcsupport.h
760 <sys/types.h>
761 <stdint.h>
762
763 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\mqueue.h
764 <unistd.h>
765 <sys/types.h>
766 <rtems/system.h>
767 <rtems/score/object.h>
768 <time.h>
769
770 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.h
771 <rtems/score/object.h>
772 <rtems/score/corebarrier.h>
773 <rtems/posix/barrier.inl>
774
775 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.inl
776 <pthread.h>
777
778 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.h
779 <rtems/score/object.h>
780 <rtems/score/threadq.h>
781 <rtems/posix/cond.inl>
782
783 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.inl
784 <pthread.h>
785
786 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.h
787 <signal.h>
788 <rtems/score/coremsg.h>
789 <rtems/score/object.h>
790 <rtems/posix/mqueue.inl>
791
792 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.inl
793
794 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.h
795 <rtems/score/coremutex.h>
796 <pthread.h>
797 <rtems/posix/mutex.inl>
798
799 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.inl
800
801 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.h
802 <rtems/posix/key.inl>
803
804 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.inl
805
806 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\psignal.h
807 <rtems/posix/pthread.h>
808 <rtems/posix/sigset.h>
809
810 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.h
811 <rtems/posix/config.h>
812 <rtems/posix/threadsup.h>
813 <rtems/posix/pthread.inl>
814
815 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\threadsup.h
816 <sys/signal.h>
817 <rtems/score/coresem.h>
818 <rtems/score/tqdata.h>
819
820 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.inl
821
822 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\sigset.h
823 <signal.h>
824
825 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.h
826 <rtems/score/object.h>
827 <rtems/score/corerwlock.h>
828 <rtems/posix/rwlock.inl>
829
830 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.h
831 <rtems/score/thread.h>
832 <rtems/score/threadq.h>
833 <rtems/score/priority.h>
834 <rtems/score/watchdog.h>
835 <rtems/score/corerwlock.inl>
836
837 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.inl
838 <rtems/score/thread.h>
839 <rtems/score/threadq.h>
840
841 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.inl
842 <pthread.h>
843
844 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.h
845 <semaphore.h>
846 <rtems/score/coresem.h>
847 <rtems/posix/semaphore.inl>
848
849 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\semaphore.h
850 <unistd.h>
851 <sys/time.h>
852
853 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.inl
854
855 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.h
856 <rtems/score/object.h>
857 <rtems/score/corespinlock.h>
858 <rtems/posix/spinlock.inl>
859
860 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.h
861 <rtems/score/thread.h>
862 <rtems/score/thread.h>
863 <rtems/score/priority.h>
864 <rtems/score/corespinlock.inl>
865
866 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.inl
867
868 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.inl
869 <pthread.h>
870
871 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.h
872 <rtems/posix/config.h>
873 <rtems/score/object.h>
874 <rtems/posix/timer.inl>
875
876 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.inl
877
878 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg.h
879 <pci.h>
880 <pci/cfg_auto.h>
881 <pci/cfg_static.h>
882 <pci/cfg_read.h>
883 <pci/cfg_peripheral.h>
884
885 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci.h
886 <pci/ids.h>
887 <pci/access.h>
888
889 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids.h
890 <pci/ids_extra.h>
891
892 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids_extra.h
893
894 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\access.h
895 <stdint.h>
896 <libcpu/byteorder.h>
897 <pci.h>
898 <bsp.h>
899
900 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libcpu\byteorder.h
901 <rtems/system.h>
902 <rtems/score/cpu.h>
903
904 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_auto.h
905
906 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_static.h
907
908 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_read.h
909
910 1340115164 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_peripheral.h
911
912 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\ambapp_bus.h
913 <drvmgr/drvmgr.h>
914 <ambapp.h>
915
916 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr.h
917 <rtems.h>
918 <drvmgr/drvmgr_list.h>
919 <stdint.h>
920
921 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_list.h
922
923 1340115166 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_confdefs.h
924 "drvmgr.h"
925
@@ -0,0 +1,7
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_layout_file>
3 <ActiveTarget name="Debug" />
4 <File name="..\..\..\..\GAISLER\C\rtems-hello\rtems-hello.c" open="1" top="1" tabpos="1">
5 <Cursor position="4494" topLine="135" />
6 </File>
7 </CodeBlocks_layout_file>
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,47
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_project_file>
3 <FileVersion major="1" minor="6" />
4 <Project>
5 <Option title="rtems-spwtest-2boards" />
6 <Option pch_mode="2" />
7 <Option compiler="sparc_gcc" />
8 <Build>
9 <Target title="Debug">
10 <Option output="bin\Debug\rtems-spwtest-2boards" prefix_auto="1" extension_auto="1" />
11 <Option object_output="obj\Debug\" />
12 <Option type="1" />
13 <Option compiler="sparc_rtems_gcc" />
14 <Compiler>
15 <Add option="-g" />
16 <Add directory="..\header" />
17 <Add directory="..\src" />
18 <Add directory="C:\opt\rtems-4.10-mingw\src\samples" />
19 <Add directory="C:\opt\rtems-4.10-mingw\sparc-rtems\include" />
20 <Add directory="C:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include" />
21 </Compiler>
22 </Target>
23 <Target title="Release">
24 <Option output="bin\Release\rtems-spwtest-2boards" prefix_auto="1" extension_auto="1" />
25 <Option object_output="obj\Release\" />
26 <Option type="1" />
27 <Option compiler="sparc_gcc" />
28 <Compiler>
29 <Add option="-O2" />
30 </Compiler>
31 <Linker>
32 <Add option="-s" />
33 </Linker>
34 </Target>
35 </Build>
36 <Compiler>
37 <Add option="-Wall" />
38 </Compiler>
39 <Unit filename="..\src\rtems-spwtest-2boards.c">
40 <Option compilerVar="CC" />
41 </Unit>
42 <Extensions>
43 <code_completion />
44 <debugger />
45 </Extensions>
46 </Project>
47 </CodeBlocks_project_file>
This diff has been collapsed as it changes many lines, (1193 lines changed) Show them Hide them
@@ -0,0 +1,1193
1 # depslib dependency file v1.0
2 1340118752 source:e:\missions\solo\dev_ple\src\fsw-rtems.c
3 <rtems.h>
4 <bsp.h>
5 <rtems/confdefs.h>
6 <drvmgr/ambapp_bus.h>
7 <drvmgr/drvmgr_confdefs.h>
8 <stdio.h>
9 <stdlib.h>
10
11 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems.h
12 <rtems/system.h>
13 <rtems/rtems/status.h>
14 <rtems/rtems/types.h>
15 <rtems/config.h>
16 <rtems/init.h>
17 <rtems/rtems/options.h>
18 <rtems/rtems/tasks.h>
19 <rtems/rtems/intr.h>
20 <rtems/rtems/barrier.h>
21 <rtems/rtems/cache.h>
22 <rtems/rtems/clock.h>
23 <rtems/extension.h>
24 <rtems/rtems/timer.h>
25 <rtems/rtems/sem.h>
26 <rtems/rtems/message.h>
27 <rtems/rtems/event.h>
28 <rtems/rtems/signal.h>
29 <rtems/rtems/event.h>
30 <rtems/rtems/object.h>
31 <rtems/rtems/part.h>
32 <rtems/rtems/region.h>
33 <rtems/rtems/dpmem.h>
34 <rtems/io.h>
35 <rtems/fatal.h>
36 <rtems/rtems/ratemon.h>
37 <rtems/rtems/mp.h>
38 <rtems/rtems/support.h>
39 <rtems/score/sysstate.h>
40
41 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\system.h
42 <rtems/score/cpuopts.h>
43 <stddef.h>
44 <stdint.h>
45 <rtems/score/cpu.h>
46
47 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpuopts.h
48
49 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdint.h
50 <limits.h>
51
52 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\limits.h
53 <sys/syslimits.h>
54
55 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\syslimits.h
56
57 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\cpu.h
58 <rtems/score/sparc.h>
59 <rtems/score/types.h>
60
61 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sparc.h
62
63 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\types.h
64 <stdbool.h>
65 <stdint.h>
66
67 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.h
68 <rtems/rtems/status.inl>
69
70 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\status.inl
71
72 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\types.h
73 <stdint.h>
74 <rtems/score/heap.h>
75 <rtems/score/object.h>
76 <rtems/score/priority.h>
77 <rtems/score/tod.h>
78 <rtems/score/watchdog.h>
79 <rtems/rtems/modes.h>
80 <rtems/score/mpci.h>
81 <rtems/score/mppkt.h>
82
83 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.h
84 <rtems/score/heap.inl>
85 <assert.h>
86
87 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\heap.inl
88 <rtems/score/address.h>
89
90 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.h
91 <rtems/score/address.inl>
92
93 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\address.inl
94 <rtems/bspIo.h>
95
96 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bspio.h
97 <stdarg.h>
98
99 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\assert.h
100 "_ansi.h"
101
102 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\_ansi.h
103 <newlib.h>
104 <sys/config.h>
105
106 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\newlib.h
107
108 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\config.h
109 <machine/ieeefp.h>
110 <cygwin/config.h>
111
112 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\ieeefp.h
113
114 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.h
115 <rtems/score/chain.h>
116 <rtems/score/isr.h>
117 <rtems/score/object.inl>
118 <rtems/score/objectmp.h>
119
120 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.h
121 <rtems/score/address.h>
122 <rtems/score/chain.inl>
123
124 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\chain.inl
125
126 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.h
127 <rtems/score/isr.inl>
128
129 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\isr.inl
130
131 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\object.inl
132
133 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.h
134 <rtems/score/cpu.h>
135 <rtems/score/priority.inl>
136
137 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\priority.inl
138 <rtems/score/bitfield.h>
139
140 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\bitfield.h
141
142 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.h
143 <rtems/score/timestamp.h>
144 <time.h>
145 <rtems/score/tod.inl>
146
147 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp.h
148 <rtems/score/timespec.h>
149 <rtems/score/timestamp64.h>
150
151 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timespec.h
152 <stdint.h>
153 <time.h>
154
155 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\time.h
156 "_ansi.h"
157 <sys/reent.h>
158 <machine/time.h>
159 <stddef.h>
160 <sys/types.h>
161 <sys/features.h>
162 <cygwin/time.h>
163 <signal.h>
164
165 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\reent.h
166 <_ansi.h>
167 <sys/_types.h>
168 <sys/types.h>
169 <sys/custom_file.h>
170 <assert.h>
171
172 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\_types.h
173 <machine/_types.h>
174 <sys/lock.h>
175 <stddef.h>
176
177 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\_types.h
178 <machine/_default_types.h>
179
180 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\_default_types.h
181 <limits.h>
182
183 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\lock.h
184 <_ansi.h>
185
186 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\types.h
187 <_ansi.h>
188 <machine/_types.h>
189 <sys/_types.h>
190 <stddef.h>
191 <machine/types.h>
192 <sys/features.h>
193 <sys/sched.h>
194 <cygwin/types.h>
195
196 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\types.h
197 <machine/_types.h>
198
199 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\features.h
200
201 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\sched.h
202
203 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\custom_file.h
204
205 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\time.h
206 <sys/types.h>
207
208 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\signal.h
209 "_ansi.h"
210 <sys/signal.h>
211
212 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\signal.h
213 "_ansi.h"
214 <sys/features.h>
215 <sys/types.h>
216 <cygwin/signal.h>
217 <signal.h>
218
219 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\timestamp64.h
220
221 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tod.inl
222 <sys/time.h>
223 <rtems/score/isr.h>
224
225 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\time.h
226 <_ansi.h>
227 <sys/types.h>
228 <cygwin/sys_time.h>
229
230 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.h
231 <rtems/score/object.h>
232 <rtems/score/watchdog.inl>
233
234 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\watchdog.inl
235
236 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.h
237 <rtems/score/isr.h>
238 <rtems/rtems/modes.inl>
239
240 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\modes.inl
241
242 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\config.h
243 <rtems/score/object.h>
244 <rtems/posix/config.h>
245 <rtems/itron.h>
246 <rtems/itron/config.h>
247 <rtems/rtems/config.h>
248 <rtems/extension.h>
249 <rtems/io.h>
250 <rtems/score/mpci.h>
251
252 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\config.h
253
254 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\config.h
255 <rtems/rtems/types.h>
256 <rtems/rtems/tasks.h>
257
258 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.h
259 <rtems/score/object.h>
260 <rtems/score/states.h>
261 <rtems/score/thread.h>
262 <rtems/rtems/types.h>
263 <rtems/rtems/eventset.h>
264 <rtems/rtems/asr.h>
265 <rtems/rtems/attr.h>
266 <rtems/rtems/status.h>
267 <rtems/rtems/tasks.inl>
268 <rtems/rtems/taskmp.h>
269
270 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.h
271 <rtems/score/states.inl>
272
273 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\states.inl
274
275 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.h
276 <rtems/score/timestamp.h>
277 <rtems/score/context.h>
278 <rtems/score/cpu.h>
279 <rtems/score/mppkt.h>
280 <rtems/score/object.h>
281 <rtems/score/priority.h>
282 <rtems/score/stack.h>
283 <rtems/score/states.h>
284 <rtems/score/tod.h>
285 <rtems/score/tqdata.h>
286 <rtems/score/watchdog.h>
287 <rtems/score/thread.inl>
288 <rtems/score/threadmp.h>
289
290 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\context.h
291 <rtems/score/cpu.h>
292
293 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.h
294 <rtems/score/stack.inl>
295
296 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\stack.inl
297
298 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.h
299 <rtems/score/chain.h>
300 <rtems/score/priority.h>
301 <rtems/score/states.h>
302 <rtems/score/threadsync.h>
303 <rtems/score/tqdata.inl>
304
305 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadsync.h
306
307 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\tqdata.inl
308
309 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\thread.inl
310 <rtems/score/sysstate.h>
311 <rtems/score/context.h>
312 <rtems/bspIo.h>
313 <rtems/fatal.h>
314 <rtems/stackchk.h>
315 <rtems/score/sysstate.h>
316 <rtems/score/heap.h>
317
318 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.h
319 <rtems/score/sysstate.inl>
320
321 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\sysstate.inl
322
323 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fatal.h
324
325 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\stackchk.h
326 <rtems/bspIo.h>
327
328 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.h
329 <rtems/rtems/eventset.inl>
330
331 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\eventset.inl
332
333 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.h
334 <rtems/rtems/modes.h>
335 <rtems/rtems/asr.inl>
336
337 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\asr.inl
338 <rtems/score/isr.h>
339
340 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.h
341 <rtems/rtems/attr.inl>
342
343 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\attr.inl
344
345 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\tasks.inl
346
347 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.h
348 <rtems/score/object.h>
349 <rtems/score/userext.h>
350 <rtems/rtems/status.h>
351 <rtems/rtems/types.h>
352 <rtems/extension.inl>
353
354 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\userext.h
355 <rtems/score/interr.h>
356 <rtems/score/chain.h>
357 <rtems/score/thread.h>
358
359 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\interr.h
360 <stdbool.h>
361 <stdint.h>
362 <rtems/system.h>
363
364 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\extension.inl
365
366 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\io.h
367 <rtems/rtems/status.h>
368
369 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\init.h
370 <rtems/rtems/types.h>
371 <rtems/config.h>
372 <rtems/rtems/intr.h>
373
374 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\intr.h
375 <rtems/score/isr.h>
376
377 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.h
378 <rtems/rtems/options.inl>
379
380 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\options.inl
381
382 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.h
383 <rtems/rtems/types.h>
384 <rtems/rtems/support.h>
385 <rtems/rtems/attr.h>
386 <rtems/rtems/status.h>
387 <rtems/score/object.h>
388 <rtems/score/corebarrier.h>
389 <rtems/rtems/barrier.inl>
390
391 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.h
392 <rtems/rtems/types.h>
393 <rtems/rtems/support.inl>
394
395 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\support.inl
396
397 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.h
398 <rtems/score/thread.h>
399 <rtems/score/threadq.h>
400 <rtems/score/priority.h>
401 <rtems/score/watchdog.h>
402 <rtems/score/corebarrier.inl>
403
404 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.h
405 <rtems/score/tqdata.h>
406 <rtems/score/object.h>
407 <rtems/score/thread.h>
408 <rtems/score/watchdog.h>
409 <rtems/score/threadq.inl>
410
411 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\threadq.inl
412 <rtems/score/thread.h>
413
414 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corebarrier.inl
415 <rtems/score/thread.h>
416 <rtems/score/threadq.h>
417
418 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\barrier.inl
419
420 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\cache.h
421 <rtems/system.h>
422 <sys/types.h>
423
424 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\clock.h
425 <rtems/score/tod.h>
426 <rtems/score/watchdog.h>
427 <rtems/rtems/status.h>
428 <rtems/rtems/types.h>
429 <sys/time.h>
430
431 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.h
432 <rtems/score/object.h>
433 <rtems/score/watchdog.h>
434 <rtems/score/thread.h>
435 <rtems/score/chain.h>
436 <rtems/rtems/clock.h>
437 <rtems/rtems/attr.h>
438 <rtems/rtems/timer.inl>
439
440 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\timer.inl
441
442 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.h
443 <rtems/rtems/types.h>
444 <rtems/rtems/options.h>
445 <rtems/rtems/support.h>
446 <rtems/rtems/tasks.h>
447 <rtems/rtems/attr.h>
448 <rtems/score/coremutex.h>
449 <rtems/score/object.h>
450 <rtems/score/coresem.h>
451 <rtems/rtems/sem.inl>
452 <rtems/rtems/semmp.h>
453
454 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.h
455 <rtems/score/thread.h>
456 <rtems/score/threadq.h>
457 <rtems/score/priority.h>
458 <rtems/score/watchdog.h>
459 <rtems/score/interr.h>
460 <rtems/score/sysstate.h>
461 <rtems/score/coremutex.inl>
462
463 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremutex.inl
464
465 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.h
466 <rtems/score/thread.h>
467 <rtems/score/threadq.h>
468 <rtems/score/priority.h>
469 <rtems/score/watchdog.h>
470 <rtems/score/coresem.inl>
471
472 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coresem.inl
473 <rtems/score/thread.h>
474 <rtems/score/threadq.h>
475
476 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\sem.inl
477
478 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.h
479 <rtems/rtems/types.h>
480 <rtems/rtems/status.h>
481 <rtems/rtems/options.h>
482 <rtems/score/chain.h>
483 <rtems/score/object.h>
484 <rtems/rtems/attr.h>
485 <rtems/score/coremsg.h>
486 <rtems/rtems/message.inl>
487 <rtems/rtems/msgmp.h>
488
489 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.h
490 <limits.h>
491 <rtems/score/thread.h>
492 <rtems/score/threadq.h>
493 <rtems/score/priority.h>
494 <rtems/score/watchdog.h>
495 <rtems/score/coremsg.inl>
496
497 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\coremsg.inl
498 <string.h>
499
500 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\string.h
501 "_ansi.h"
502 <sys/reent.h>
503 <stddef.h>
504 <sys/string.h>
505
506 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\string.h
507
508 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\message.inl
509 <rtems/score/wkspace.h>
510
511 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.h
512 <rtems/score/heap.h>
513 <rtems/score/interr.h>
514 <rtems/score/wkspace.inl>
515
516 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\wkspace.inl
517
518 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.h
519 <rtems/score/object.h>
520 <rtems/rtems/status.h>
521 <rtems/rtems/types.h>
522 <rtems/rtems/options.h>
523 <rtems/score/thread.h>
524 <rtems/score/threadsync.h>
525 <rtems/score/watchdog.h>
526 <rtems/rtems/eventset.h>
527 <rtems/rtems/eventmp.h>
528 <rtems/rtems/event.inl>
529
530 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\event.inl
531
532 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\signal.h
533 <rtems/rtems/asr.h>
534 <rtems/rtems/modes.h>
535 <rtems/score/object.h>
536 <rtems/rtems/status.h>
537 <rtems/rtems/types.h>
538 <rtems/rtems/signalmp.h>
539
540 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\object.h
541 <stdint.h>
542 <rtems/score/object.h>
543 <rtems/rtems/status.h>
544 <rtems/rtems/types.h>
545
546 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.h
547 <rtems/score/address.h>
548 <rtems/score/object.h>
549 <rtems/rtems/attr.h>
550 <rtems/rtems/status.h>
551 <rtems/rtems/support.h>
552 <rtems/rtems/types.h>
553 <rtems/rtems/part.inl>
554 <rtems/rtems/partmp.h>
555
556 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\part.inl
557
558 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.h
559 <rtems/score/object.h>
560 <rtems/score/threadq.h>
561 <rtems/score/heap.h>
562 <rtems/debug.h>
563 <rtems/rtems/attr.h>
564 <rtems/rtems/options.h>
565 <rtems/rtems/status.h>
566 <rtems/rtems/support.h>
567 <rtems/rtems/types.h>
568 <rtems/rtems/region.inl>
569 <rtems/rtems/regionmp.h>
570
571 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\debug.h
572
573 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\region.inl
574
575 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.h
576 <rtems/score/object.h>
577 <rtems/rtems/support.h>
578 <rtems/rtems/status.h>
579 <rtems/rtems/dpmem.inl>
580
581 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\dpmem.inl
582
583 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.h
584 <rtems/bspIo.h>
585 <rtems/score/timespec.h>
586 <rtems/score/timestamp.h>
587 <rtems/score/object.h>
588 <rtems/score/thread.h>
589 <rtems/score/watchdog.h>
590 <rtems/rtems/status.h>
591 <rtems/rtems/support.h>
592 <string.h>
593 <rtems/rtems/ratemon.inl>
594
595 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems\ratemon.inl
596
597 1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bsp.h
598 <bspopts.h>
599 <rtems.h>
600 <leon.h>
601 <rtems/clockdrv.h>
602 <rtems/console.h>
603 <rtems/irq-extension.h>
604
605 1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\bspopts.h
606
607 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\leon.h
608 <rtems/score/sparc.h>
609 <amba.h>
610
611 1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\amba.h
612 <ambapp.h>
613 <grlib.h>
614
615 1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp.h
616 <ambapp_ids.h>
617
618 1340118762 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\ambapp_ids.h
619
620 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\grlib.h
621
622 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\clockdrv.h
623
624 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\console.h
625
626 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\irq-extension.h
627 <rtems.h>
628
629 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\confdefs.h
630 <rtems.h>
631 <rtems/score/apimutex.h>
632 <rtems/libio.h>
633 <rtems/imfs.h>
634 <rtems/devfs.h>
635 <rtems/ftpfs.h>
636 <rtems/tftp.h>
637 <librtemsNfs.h>
638 <rtems/dosfs.h>
639 <rtems/rtems-rfs.h>
640 <rtems/devfs.h>
641 <rtems/malloc.h>
642 <rtems/score/wkspace.h>
643 <rtems/console.h>
644 <rtems/clockdrv.h>
645 <rtems/timerdrv.h>
646 <rtems/rtc.h>
647 <rtems/watchdogdrv.h>
648 <rtems/framebuffer.h>
649 <rtems/devnull.h>
650 <libchip/ide_ctrl.h>
651 <libchip/ata.h>
652 <rtems/bdbuf.h>
653 <mpci.h>
654 <rtems/stackchk.h>
655 <rtems/libcsupport.h>
656 <sys/types.h>
657 <signal.h>
658 <limits.h>
659 <mqueue.h>
660 <rtems/posix/barrier.h>
661 <rtems/posix/cond.h>
662 <rtems/posix/mqueue.h>
663 <rtems/posix/mutex.h>
664 <rtems/posix/key.h>
665 <rtems/posix/psignal.h>
666 <rtems/posix/rwlock.h>
667 <rtems/posix/semaphore.h>
668 <rtems/posix/spinlock.h>
669 <rtems/posix/threadsup.h>
670 <rtems/posix/timer.h>
671 <rtems/itron.h>
672 <rtems/itron/config.h>
673 <rtems/itron/eventflags.h>
674 <rtems/itron/fmempool.h>
675 <rtems/itron/mbox.h>
676 <rtems/itron/msgbuffer.h>
677 <rtems/itron/port.h>
678 <rtems/itron/semaphore.h>
679 <rtems/itron/task.h>
680 <rtems/itron/vmempool.h>
681 <reent.h>
682 <pci/cfg.h>
683 <pci/cfg.h>
684 <pci/cfg.h>
685
686 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\apimutex.h
687 <rtems/score/coremutex.h>
688 <rtems/score/isr.h>
689 <rtems/score/object.h>
690
691 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio.h
692 <sys/types.h>
693 <sys/stat.h>
694 <sys/ioctl.h>
695 <sys/statvfs.h>
696 <unistd.h>
697 <termios.h>
698 <rtems.h>
699 <rtems/fs.h>
700 <rtems/chain.h>
701
702 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\stat.h
703 <_ansi.h>
704 <time.h>
705 <sys/types.h>
706 <cygwin/stat.h>
707
708 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioctl.h
709 <sys/ttycom.h>
710 <sys/ioccom.h>
711 <sys/filio.h>
712 <sys/sockio.h>
713
714 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ttycom.h
715 <sys/ioccom.h>
716
717 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\ioccom.h
718 <sys/types.h>
719 <rtems/bsd/sys/cdefs.h>
720
721 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsd\sys\cdefs.h
722
723 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\filio.h
724 <sys/ioccom.h>
725
726 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\sockio.h
727 <sys/ioccom.h>
728
729 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\statvfs.h
730 <sys/cdefs.h>
731 <stdint.h>
732
733 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\cdefs.h
734
735 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\unistd.h
736 <sys/unistd.h>
737
738 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\unistd.h
739 <_ansi.h>
740 <sys/types.h>
741 <sys/_types.h>
742 <stddef.h>
743 <getopt.h>
744 <sys/features.h>
745
746 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\getopt.h
747 <_ansi.h>
748
749 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\termios.h
750 <sys/termios.h>
751
752 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\sys\termios.h
753 <sys/types.h>
754
755 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\fs.h
756
757 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.h
758 <rtems/system.h>
759 <rtems/score/chain.h>
760 <rtems/chain.inl>
761
762 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\chain.inl
763 <rtems/score/chain.inl>
764
765 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\imfs.h
766 <rtems.h>
767 <rtems/chain.h>
768 <sys/types.h>
769 <limits.h>
770 <rtems/libio.h>
771 <rtems/pipe.h>
772
773 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\pipe.h
774 <rtems/libio.h>
775
776 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devfs.h
777 <rtems/libio_.h>
778
779 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libio_.h
780 <rtems.h>
781 <rtems/libio.h>
782 <sys/types.h>
783 <errno.h>
784 <rtems/userenv.h>
785
786 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\errno.h
787 <sys/errno.h>
788
789 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\errno.h
790 <sys/reent.h>
791
792 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\userenv.h
793 <rtems.h>
794 <rtems/fs.h>
795 <limits.h>
796
797 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\ftpfs.h
798 <sys/time.h>
799 <sys/ioctl.h>
800 <rtems/libio.h>
801
802 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\tftp.h
803 <rtems/libio.h>
804
805 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\librtemsnfs.h
806 <config.h>
807 <rtems.h>
808 <rtems/libio.h>
809 <rtems/libio_.h>
810 <rtems/seterr.h>
811 <string.h>
812 <stdio.h>
813 <stdlib.h>
814 <assert.h>
815 <sys/stat.h>
816 <dirent.h>
817 <netdb.h>
818 <ctype.h>
819 <netinet/in.h>
820 <arpa/inet.h>
821 "rpcio.h"
822
823 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\seterr.h
824
825 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdio.h
826 "_ansi.h"
827 <stddef.h>
828 <stdarg.h>
829 <sys/reent.h>
830 <sys/types.h>
831 <sys/stdio.h>
832
833 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\stdio.h
834 <sys/lock.h>
835 <sys/reent.h>
836
837 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\stdlib.h
838 <machine/ieeefp.h>
839 "_ansi.h"
840 <stddef.h>
841 <sys/reent.h>
842 <machine/stdlib.h>
843 <alloca.h>
844 <cygwin/stdlib.h>
845
846 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\machine\stdlib.h
847
848 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\alloca.h
849 "_ansi.h"
850 <sys/reent.h>
851
852 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\dirent.h
853 <sys/dirent.h>
854
855 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\dirent.h
856 <sys/types.h>
857 <limits.h>
858
859 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netdb.h
860 <rtems/bsd/sys/cdefs.h>
861 <rtems/bsdnet/_types.h>
862
863 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bsdnet\_types.h
864 <stdint.h>
865
866 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\ctype.h
867 "_ansi.h"
868
869 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\netinet\in.h
870 <rtems/bsdnet/_types.h>
871 <rtems/endian.h>
872
873 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\endian.h
874 <rtems.h>
875
876 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\arpa\inet.h
877 <rtems/bsd/sys/cdefs.h>
878 <rtems/bsdnet/_types.h>
879 <rtems/endian.h>
880
881 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\dosfs.h
882 <rtems.h>
883 <rtems/libio.h>
884
885 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems-rfs.h
886 <rtems.h>
887 <rtems/fs.h>
888
889 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\malloc.h
890 <rtems.h>
891 <rtems/bspIo.h>
892 <stdint.h>
893
894 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\timerdrv.h
895
896 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtc.h
897 <rtems.h>
898
899 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\framebuffer.h
900
901 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\devnull.h
902
903 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ide_ctrl.h
904
905 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libchip\ata.h
906 <rtems.h>
907 <sys/ioctl.h>
908 <rtems/blkdev.h>
909
910 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\blkdev.h
911 <rtems.h>
912 <rtems/diskdevs.h>
913 <sys/ioctl.h>
914
915 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\diskdevs.h
916 <rtems.h>
917 <rtems/libio.h>
918 <stdlib.h>
919
920 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\bdbuf.h
921 <rtems.h>
922 <rtems/libio.h>
923 <rtems/chain.h>
924 <rtems/blkdev.h>
925 <rtems/diskdevs.h>
926
927 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\libcsupport.h
928 <sys/types.h>
929 <stdint.h>
930
931 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\mqueue.h
932 <unistd.h>
933 <sys/types.h>
934 <rtems/system.h>
935 <rtems/score/object.h>
936 <time.h>
937
938 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.h
939 <rtems/score/object.h>
940 <rtems/score/corebarrier.h>
941 <rtems/posix/barrier.inl>
942
943 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\barrier.inl
944 <pthread.h>
945
946 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\pthread.h
947 <unistd.h>
948 <sys/types.h>
949 <time.h>
950 <sys/sched.h>
951
952 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.h
953 <rtems/score/object.h>
954 <rtems/score/threadq.h>
955 <rtems/posix/cond.inl>
956
957 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\cond.inl
958 <pthread.h>
959
960 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.h
961 <signal.h>
962 <rtems/score/coremsg.h>
963 <rtems/score/object.h>
964 <rtems/posix/mqueue.inl>
965
966 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mqueue.inl
967
968 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.h
969 <rtems/score/coremutex.h>
970 <pthread.h>
971 <rtems/posix/mutex.inl>
972
973 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\mutex.inl
974
975 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.h
976 <rtems/posix/key.inl>
977
978 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\key.inl
979
980 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\psignal.h
981 <rtems/posix/pthread.h>
982 <rtems/posix/sigset.h>
983
984 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.h
985 <rtems/posix/config.h>
986 <rtems/posix/threadsup.h>
987 <rtems/posix/pthread.inl>
988
989 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\threadsup.h
990 <sys/signal.h>
991 <rtems/score/coresem.h>
992 <rtems/score/tqdata.h>
993
994 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\pthread.inl
995
996 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\sigset.h
997 <signal.h>
998
999 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.h
1000 <rtems/score/object.h>
1001 <rtems/score/corerwlock.h>
1002 <rtems/posix/rwlock.inl>
1003
1004 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.h
1005 <rtems/score/thread.h>
1006 <rtems/score/threadq.h>
1007 <rtems/score/priority.h>
1008 <rtems/score/watchdog.h>
1009 <rtems/score/corerwlock.inl>
1010
1011 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corerwlock.inl
1012 <rtems/score/thread.h>
1013 <rtems/score/threadq.h>
1014
1015 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\rwlock.inl
1016 <pthread.h>
1017
1018 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.h
1019 <semaphore.h>
1020 <rtems/score/coresem.h>
1021 <rtems/posix/semaphore.inl>
1022
1023 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\semaphore.h
1024 <unistd.h>
1025 <sys/time.h>
1026
1027 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\semaphore.inl
1028
1029 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.h
1030 <rtems/score/object.h>
1031 <rtems/score/corespinlock.h>
1032 <rtems/posix/spinlock.inl>
1033
1034 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.h
1035 <rtems/score/thread.h>
1036 <rtems/score/thread.h>
1037 <rtems/score/priority.h>
1038 <rtems/score/corespinlock.inl>
1039
1040 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\score\corespinlock.inl
1041
1042 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\spinlock.inl
1043 <pthread.h>
1044
1045 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.h
1046 <rtems/posix/config.h>
1047 <rtems/score/object.h>
1048 <rtems/posix/timer.inl>
1049
1050 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\posix\timer.inl
1051
1052 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\reent.h
1053 <sys/reent.h>
1054 <sys/_types.h>
1055 <machine/types.h>
1056 <stddef.h>
1057
1058 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg.h
1059 <pci.h>
1060 <pci/cfg_auto.h>
1061 <pci/cfg_static.h>
1062 <pci/cfg_read.h>
1063 <pci/cfg_peripheral.h>
1064
1065 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci.h
1066 <pci/ids.h>
1067 <pci/access.h>
1068
1069 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids.h
1070 <pci/ids_extra.h>
1071
1072 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\ids_extra.h
1073
1074 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\access.h
1075 <stdint.h>
1076 <libcpu/byteorder.h>
1077 <pci.h>
1078 <bsp.h>
1079
1080 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\libcpu\byteorder.h
1081 <rtems/system.h>
1082 <rtems/score/cpu.h>
1083
1084 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_auto.h
1085
1086 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_static.h
1087
1088 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_read.h
1089
1090 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\pci\cfg_peripheral.h
1091
1092 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\ambapp_bus.h
1093 <drvmgr/drvmgr.h>
1094 <ambapp.h>
1095
1096 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr.h
1097 <rtems.h>
1098 <drvmgr/drvmgr_list.h>
1099 <stdint.h>
1100
1101 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_list.h
1102
1103 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\drvmgr_confdefs.h
1104 "drvmgr.h"
1105
1106 1351151480 source:e:\missions\solo\dev_ple\src\rtems-spwtest-2boards.c
1107 <bsp.h>
1108 <rtems/confdefs.h>
1109 <drvmgr/drvmgr_confdefs.h>
1110 <rtems.h>
1111 <errno.h>
1112 <sys/types.h>
1113 <sys/stat.h>
1114 <fcntl.h>
1115 <stdio.h>
1116 <stdlib.h>
1117 "config.c"
1118 <grspw.h>
1119
1120 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\fcntl.h
1121 <sys/fcntl.h>
1122
1123 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\fcntl.h
1124 <sys/_default_fcntl.h>
1125
1126 1340118770 c:\opt\rtems-4.10-mingw\sparc-rtems\include\sys\_default_fcntl.h
1127 <_ansi.h>
1128 <sys/types.h>
1129 <sys/stat.h>
1130 <sys/time.h>
1131
1132 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config.c
1133 <network_interface_add.h>
1134 "networkconfig.h"
1135 "config_leon3_drvmgr.c"
1136 "config_leon2_grlib_drvmgr.c"
1137 "config_leon2_drvmgr.c"
1138 "config_pci.c"
1139 "config_gr_rasta_io.c"
1140 "config_spw_bus.c"
1141 <stdlib.h>
1142
1143 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\network_interface_add.h
1144 <rtems/rtems_bsdnet.h>
1145
1146 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\rtems\rtems_bsdnet.h
1147 <rtems.h>
1148
1149 1340118752 c:\opt\rtems-4.10-mingw\src\samples\networkconfig.h
1150 <network_interface_add.h>
1151
1152 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon3_drvmgr.c
1153 <drvmgr/ambapp_bus_grlib.h>
1154 <drvmgr/ambapp_bus.h>
1155 <ambapp_ids.h>
1156
1157 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\ambapp_bus_grlib.h
1158
1159 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon2_grlib_drvmgr.c
1160 <drvmgr/leon2_amba_bus.h>
1161 <drvmgr/ambapp_bus.h>
1162
1163 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_leon2_drvmgr.c
1164 <drvmgr/leon2_amba_bus.h>
1165
1166 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_pci.c
1167 <drvmgr/pci_bus.h>
1168
1169 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\pci_bus.h
1170 <drvmgr/drvmgr.h>
1171 <pci.h>
1172 <pci/access.h>
1173
1174 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_gr_rasta_io.c
1175 <gr_rasta_io.h>
1176 <drvmgr/ambapp_bus.h>
1177
1178 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\gr_rasta_io.h
1179 <drvmgr/drvmgr.h>
1180
1181 1340118752 c:\opt\rtems-4.10-mingw\src\samples\config_spw_bus.c
1182 <drvmgr/drvmgr.h>
1183 <drvmgr/spw_bus.h>
1184
1185 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\spw_bus.h
1186 <drvmgr/drvmgr.h>
1187 <drvmgr/spw_bus_ids.h>
1188
1189 1340118766 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\drvmgr\spw_bus_ids.h
1190
1191 1340118764 c:\opt\rtems-4.10-mingw\sparc-rtems\leon3\lib\include\grspw.h
1192 <ambapp.h>
1193
@@ -0,0 +1,7
1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <CodeBlocks_layout_file>
3 <ActiveTarget name="Debug" />
4 <File name="..\src\rtems-spwtest-2boards.c" open="1" top="0" tabpos="1">
5 <Cursor position="2987" topLine="136" />
6 </File>
7 </CodeBlocks_layout_file>
@@ -0,0 +1,1
1 grmon -gresb -ip 129.104.27.250 -dna 0xfe -sna 32 -link 0
@@ -0,0 +1,1
1 grmon -gresb -ip 129.104.27.118 -dna 0xfe -sna 32 -link 0 -u
@@ -0,0 +1,53
1 #include <drvmgr/ambapp_bus.h>
2
3 // GRSPW0 resources
4 struct drvmgr_key grlib_grspw_0n1_res[] = {
5 {"txBdCnt", KEY_TYPE_INT, {(unsigned int)10}},
6 {"rxBdCnt", KEY_TYPE_INT, {(unsigned int)10}},
7 {"txDataSize", KEY_TYPE_INT, {(unsigned int)48+4}},
8 {"txHdrSize", KEY_TYPE_INT, {(unsigned int)10}},
9 {"rxPktSize", KEY_TYPE_INT, {(unsigned int)248+4}},
10 KEY_EMPTY
11 };
12
13 #if 0
14 /* APBUART0 */
15 struct drvmgr_key grlib_drv_res_apbuart0[] =
16 {
17 {"mode", KEY_TYPE_INT, {(unsigned int)1}},
18 {"syscon", KEY_TYPE_INT, {(unsigned int)1}},
19 KEY_EMPTY
20 };
21 /* APBUART1 */
22 struct drvmgr_key grlib_drv_res_apbuart1[] =
23 {
24 {"mode", KEY_TYPE_INT, {(unsigned int)1}},
25 {"syscon", KEY_TYPE_INT, {(unsigned int)0}},
26 KEY_EMPTY
27 };
28 /* LEON3 System with driver configuration for 2 APBUARTs, the
29 * the rest of the AMBA device drivers use their defaults.
30 */
31
32 /* Override default debug UART assignment.
33 * 0 = Default APBUART. APBUART[0], but on MP system CPU0=APBUART0,
34 * CPU1=APBUART1...
35 * 1 = APBUART[0]
36 * 2 = APBUART[1]
37 * 3 = APBUART[2]
38 * ...
39 */
40 //int debug_uart_index = 2; /* second UART -- APBUART[1] */
41 #endif
42
43 // If RTEMS_DRVMGR_STARTUP is defined we override the "weak defaults" that is defined by the LEON3 BSP.
44
45 struct drvmgr_bus_res grlib_drv_resources = {
46 .next = NULL,
47 .resource = {
48 {DRIVER_AMBAPP_GAISLER_GRSPW_ID, 0, &grlib_grspw_0n1_res[0]},
49 // {DRIVER_AMBAPP_GAISLER_APBUART_ID, 0, &grlib_drv_res_apbuart0[0]},
50 // {DRIVER_AMBAPP_GAISLER_APBUART_ID, 1, &grlib_drv_res_apbuart1[0]},
51 RES_EMPTY /* Mark end of device resource array */
52 }
53 };
@@ -0,0 +1,397
1 #include <FSW-rtems-processing.h>
2 #include<math.h>
3 #include <stdio.h>
4 #include <leon.h>
5
6 float k14_re = 1;
7 float k14_im = 1;
8 float k14_bis_re = 1;
9 float k14_bis_im = 1;
10 float k14_tris_re = 1;
11 float k14_tris_im = 1;
12 float k15_re = 1;
13 float k15_im = 1;
14 float k15_bis_re = 1;
15 float k15_bis_im = 1;
16 float k24_re = 1;
17 float k24_im = 1;
18 float k24_bis_re = 1;
19 float k24_bis_im = 1;
20 float k24_tris_re = 1;
21 float k24_tris_im = 1;
22 float k25_re = 1;
23 float k25_im = 1;
24 float k25_bis_re = 1;
25 float k25_bis_im = 1;
26 float k34_re = 1;
27 float k34_im = 1;
28 float k44 = 1;
29 float k55 = 1;
30 float k45_re = 1;
31 float k45_im = 1;
32 float alpha_M = M_PI/4;
33
34 volatile int spectral_matrix_f0_a[TOTAL_SIZE_SPECTRAL_MATRIX];
35 volatile int spectral_matrix_f0_b[TOTAL_SIZE_SPECTRAL_MATRIX];
36 volatile int spectral_matrix_f0_c[TOTAL_SIZE_SPECTRAL_MATRIX];
37 volatile int spectral_matrix_f0_d[TOTAL_SIZE_SPECTRAL_MATRIX];
38 volatile int spectral_matrix_f0_e[TOTAL_SIZE_SPECTRAL_MATRIX];
39 volatile int spectral_matrix_f0_f[TOTAL_SIZE_SPECTRAL_MATRIX];
40 volatile int spectral_matrix_f0_g[TOTAL_SIZE_SPECTRAL_MATRIX];
41 volatile int spectral_matrix_f0_h[TOTAL_SIZE_SPECTRAL_MATRIX];
42 float averaged_spectral_matrix_f0[TOTAL_SIZE_SPECTRAL_MATRIX];
43 float compressed_spectral_matrix_f0[TOTAL_SIZE_COMPRESSED_MATRIX_f0];
44 unsigned char LFR_BP1_F0[NB_BINS_COMPRESSED_MATRIX_f0*9];
45
46 extern rtems_id Task_id[]; /* array of task ids */
47
48 struct spectral_matrices_regs_str{
49 volatile int ctrl;
50 volatile int address0;
51 volatile int address1;
52 };
53 struct spectral_matrices_regs_str *spectral_matrices_regs;
54
55 // Interrupt Service Routine for spectral matrices processing
56 rtems_isr spectral_matrices_isr( rtems_vector_number vector )
57 {
58 if (rtems_event_send( Task_id[4], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL)
59 printf("In spectral_matrices_isr *** Error sending event to BPPR\n");
60 }
61
62 rtems_task spw_bppr_task(rtems_task_argument argument)
63 {
64 rtems_status_code status;
65 rtems_event_set event_out;
66 static int nb_average_f0 = 0;
67 //static int nb_average_f1 = 0;
68 //static int nb_average_f2 = 0;
69
70 while(1)
71
72 spectral_matrices_regs = (struct spectral_matrices_regs_str *) ADDRESS_APB_SPECTRAL_MATRICES;
73 spectral_matrices_regs->address0 = (volatile int) spectral_matrix_f0_a;
74 spectral_matrices_regs->address1 = (volatile int) spectral_matrix_f0_b;
75
76 printf("In BPPR ***\n");
77
78 while(1){ // wait for an event to begin with the processing
79 status = rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out);
80 if (status == RTEMS_SUCCESSFUL){
81 if ((spectral_matrices_regs->ctrl & 0x00000001)==1){
82 matrix_average(spectral_matrix_f0_a, averaged_spectral_matrix_f0);
83 spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffe;
84 //printf("f0_a\n");
85 nb_average_f0++;
86 }
87 if (((spectral_matrices_regs->ctrl>>1) & 0x00000001)==1){
88 matrix_average(spectral_matrix_f0_b, compressed_spectral_matrix_f0);
89 spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffd;
90 //printf("f0_b\n");
91 nb_average_f0++;
92 }
93 if (nb_average_f0 == NB_AVERAGE_NORMAL_f0){
94 matrix_compression(averaged_spectral_matrix_f0, 0, compressed_spectral_matrix_f0);
95 //printf("f0 compressed\n");
96 nb_average_f0 = 0;
97 matrix_reset(averaged_spectral_matrix_f0);
98 }
99 }
100 }
101 }
102
103 void matrix_average(volatile int *spectral_matrix, float *averaged_spectral_matrix)
104 {
105 int i;
106 for(i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++){
107 averaged_spectral_matrix[i] = averaged_spectral_matrix[i] + spectral_matrix_f0_a[i]
108 + spectral_matrix_f0_b[i]
109 + spectral_matrix_f0_c[i]
110 + spectral_matrix_f0_d[i]
111 + spectral_matrix_f0_e[i]
112 + spectral_matrix_f0_f[i]
113 + spectral_matrix_f0_g[i]
114 + spectral_matrix_f0_h[i];
115 }
116 }
117
118 void matrix_reset(float *averaged_spectral_matrix)
119 {
120 int i;
121 for(i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++){
122 averaged_spectral_matrix_f0[i] = 0;
123 }
124 }
125
126 void matrix_compression(float *averaged_spectral_matrix, unsigned char fChannel, float *compressed_spectral_matrix)
127 {
128 int i, j;
129 switch (fChannel){
130 case 0:
131 for(i=0;i<NB_BINS_COMPRESSED_MATRIX_f0;i++){
132 j = 17 + i * 8;
133 compressed_spectral_matrix[i] = (averaged_spectral_matrix[j]
134 + averaged_spectral_matrix[j+1]
135 + averaged_spectral_matrix[j+2]
136 + averaged_spectral_matrix[j+3]
137 + averaged_spectral_matrix[j+4]
138 + averaged_spectral_matrix[j+5]
139 + averaged_spectral_matrix[j+6]
140 + averaged_spectral_matrix[j+7])/(8*NB_AVERAGE_NORMAL_f0);
141 }
142 break;
143 case 1:
144 // case fChannel = f1 tp be completed later
145 break;
146 case 2:
147 // case fChannel = f1 tp be completed later
148 break;
149 default:
150 break;
151 }
152 }
153
154 void BP1_set(float * compressed_spectral_matrix, unsigned char nb_bins_compressed_spectral_matrix, unsigned char * LFR_BP1){
155 int i, j;
156 unsigned char tmp_u_char;
157 unsigned char * pt_char;
158 float PSDB, PSDE;
159 float NVEC_V0, NVEC_V1, NVEC_V2;
160 float significand;
161 int exponent;
162 float aux, tr_SB_SB, tmp;
163 float e_cross_b_re, e_cross_b_im;
164 float n_cross_e_scal_b_re = 0, n_cross_e_scal_b_im = 0;
165 float nx = 0, ny = 0;
166 float bz_bz_star = 0;
167 for(i=0; i<nb_bins_compressed_spectral_matrix; i++){
168 //==============================================
169 // BP1 PSD == B PAR_LFR_SC_BP1_PE_FL0 == 16 bits
170 PSDB = compressed_spectral_matrix[i*30] // S11
171 + compressed_spectral_matrix[i*30+10] // S22
172 + compressed_spectral_matrix[i*30+18]; // S33
173 significand = frexp(PSDB, &exponent);
174 pt_char = (unsigned char*) &PSDB;
175 LFR_BP1[i*9+8] = pt_char[0]; // bits 31 downto 24 of the float
176 LFR_BP1[i*9+7] = pt_char[1]; // bits 23 downto 16 of the float
177 //==============================================
178 // BP1 PSD == E PAR_LFR_SC_BP1_PB_FL0 == 16 bits
179 PSDE = compressed_spectral_matrix[i*30+24] * k44 // S44
180 + compressed_spectral_matrix[i*30+28] * k55 // S55
181 + compressed_spectral_matrix[i*30+26] * k45_re // S45
182 - compressed_spectral_matrix[i*30+27] * k45_im; // S45
183 pt_char = (unsigned char*) &PSDE;
184 LFR_BP1[i*9+6] = pt_char[0]; // bits 31 downto 24 of the float
185 LFR_BP1[i*9+5] = pt_char[1]; // bits 23 downto 16 of the float
186 //==============================================================================
187 // BP1 normal wave vector == PAR_LFR_SC_BP1_NVEC_V0_F0 == 8 bits
188 // == PAR_LFR_SC_BP1_NVEC_V1_F0 == 8 bits
189 // == PAR_LFR_SC_BP1_NVEC_V2_F0 == 1 bits
190 tmp = sqrt(
191 compressed_spectral_matrix[i*30+3]*compressed_spectral_matrix[i*30+3] //Im S12
192 +compressed_spectral_matrix[i*30+5]*compressed_spectral_matrix[i*30+5] //Im S13
193 +compressed_spectral_matrix[i*30+5]*compressed_spectral_matrix[i*30+13] //Im S23
194 );
195 NVEC_V0 = compressed_spectral_matrix[i*30+13] / tmp; // Im S23
196 NVEC_V1 = -compressed_spectral_matrix[i*30+5] / tmp; // Im S13
197 NVEC_V2 = compressed_spectral_matrix[i*30+1] / tmp; // Im S12
198 LFR_BP1[i*9+4] = (char) (NVEC_V0*256);
199 LFR_BP1[i*9+3] = (char) (NVEC_V1*256);
200 pt_char = (unsigned char*) &NVEC_V2;
201 LFR_BP1[i*9+2] = pt_char[0] & 0x80; // extract the sign of NVEC_V2
202 //=======================================================
203 // BP1 ellipticity == PAR_LFR_SC_BP1_ELLIP_F0 == 4 bits
204 aux = 2*tmp / PSDB; // compute the ellipticity
205 tmp_u_char = (unsigned char) (aux*(16-1)); // convert the ellipticity
206 LFR_BP1[i*9+2] = LFR_BP1[i*9+2] | ((tmp_u_char&0x0f)<<3); // keeps 4 bits of the resulting unsigned char
207 //==============================================================
208 // BP1 degree of polarization == PAR_LFR_SC_BP1_DOP_F0 == 3 bits
209 for(j = 0; j<NB_VALUES_PER_SPECTRAL_MATRIX;j++){
210 tr_SB_SB = compressed_spectral_matrix[i*30]*compressed_spectral_matrix[i*30]
211 + compressed_spectral_matrix[i*30+10]*compressed_spectral_matrix[i*30+10]
212 + compressed_spectral_matrix[i*30+18]*compressed_spectral_matrix[i*30+18]
213 + 2 * compressed_spectral_matrix[i*30+2]*compressed_spectral_matrix[i*30+2]
214 + 2 * compressed_spectral_matrix[i*30+3]*compressed_spectral_matrix[i*30+3]
215 + 2 * compressed_spectral_matrix[i*30+4]*compressed_spectral_matrix[i*30+4]
216 + 2 * compressed_spectral_matrix[i*30+5]*compressed_spectral_matrix[i*30+5]
217 + 2 * compressed_spectral_matrix[i*30+12]*compressed_spectral_matrix[i*30+12]
218 + 2 * compressed_spectral_matrix[i*30+13]*compressed_spectral_matrix[i*30+13];
219 }
220 aux = PSDB*PSDB;
221 tmp = ( 3*tr_SB_SB - aux ) / ( 2 * aux );
222 tmp_u_char = (unsigned char) (NVEC_V0*(8-1));
223 LFR_BP1[i*9+2] = LFR_BP1[i*9+2] | ((tmp_u_char&0x07)); // keeps 3 bits of the resulting unsigned char
224 //=======================================================================================
225 // BP1 z-component of the normalized Poynting flux == PAR_LFR_SC_BP1_SZ_F0 == 8 bits (7+1)
226 e_cross_b_re = compressed_spectral_matrix[i*30+20]*k34_re
227 + compressed_spectral_matrix[i*30+6]*k14_re
228 + compressed_spectral_matrix[i*30+8]*k15_re
229 + compressed_spectral_matrix[i*30+14]*k24_re
230 + compressed_spectral_matrix[i*30+16]*k25_re;
231 e_cross_b_im = compressed_spectral_matrix[i*30+21]*k34_im
232 + compressed_spectral_matrix[i*30+7]*k14_im
233 + compressed_spectral_matrix[i*30+9]*k15_im
234 + compressed_spectral_matrix[i*30+15]*k24_im
235 + compressed_spectral_matrix[i*30+17]*k25_im;
236 tmp = e_cross_b_re / PSDE; // compute ReaSz
237 LFR_BP1[i*9+1] = ((unsigned char) (tmp * 128)) & 0x7f; // is it always positive?
238 tmp = e_cross_b_re * e_cross_b_im;
239 pt_char = (unsigned char*) &tmp;
240 LFR_BP1[i*9+1] = LFR_BP1[i*9+1] | (pt_char[0] & 0x80); // extract the sign of ArgSz
241 //======================================================================
242 // BP1 phase velocity estimator == PAR_LFR_SC_BP1_VPHI_F0 == 8 bits (7+1)
243 nx = -sin(alpha_M)*NVEC_V0 - cos(alpha_M)*NVEC_V1;
244 ny = NVEC_V2;
245 bz_bz_star = cos(alpha_M) * cos(alpha_M) * compressed_spectral_matrix[i*30] // re S11
246 + sin(alpha_M) * sin(alpha_M) * compressed_spectral_matrix[i*30+10] // re S22
247 - 2 * sin(alpha_M) * cos(alpha_M) * compressed_spectral_matrix[i*30+2]; // re S12
248 n_cross_e_scal_b_re = nx * (compressed_spectral_matrix[i*30+8]*k15_bis_re
249 +compressed_spectral_matrix[i*30+6]*k14_bis_re
250 +compressed_spectral_matrix[i*30+16]*k25_bis_re
251 +compressed_spectral_matrix[i*30+14]*k24_bis_re)
252 + ny * (compressed_spectral_matrix[i*30+6]*k14_tris_re
253 +compressed_spectral_matrix[i*30+14]*k24_tris_re);
254 n_cross_e_scal_b_im = nx * (compressed_spectral_matrix[i*30+8]*k15_bis_im
255 +compressed_spectral_matrix[i*30+6]*k14_bis_im
256 +compressed_spectral_matrix[i*30+16]*k25_bis_im
257 +compressed_spectral_matrix[i*30+14]*k24_bis_im)
258 + ny * (compressed_spectral_matrix[i*30+6]*k14_tris_im
259 +compressed_spectral_matrix[i*30+14]*k24_tris_im);
260 tmp = n_cross_e_scal_b_re / bz_bz_star;
261 LFR_BP1[i*9+0] = ((unsigned char) (tmp * 128)) & 0x7f; // is it always positive?
262 tmp = n_cross_e_scal_b_re * n_cross_e_scal_b_im;
263 pt_char = (unsigned char*) &tmp;
264 LFR_BP1[i*9+1] = LFR_BP1[i*9+0] | (pt_char[0] & 0x80); // extract the sign of ArgV
265 }
266
267 }
268
269 void BP2_set(float * compressed_spectral_matrix, unsigned char nb_bins_compressed_spectral_matrix){
270 // BP2 autocorrelation
271 int i, aux = 0;
272 for(i = 0; i<nb_bins_compressed_spectral_matrix; i++){
273 // S12
274 aux = sqrt(compressed_spectral_matrix[i*30]*compressed_spectral_matrix[i*30+10]);
275 compressed_spectral_matrix[i*30+2] = compressed_spectral_matrix[i*30+2] / aux;
276 compressed_spectral_matrix[i*30+3] = compressed_spectral_matrix[i*30+3] / aux;
277 // S13
278 aux = sqrt(compressed_spectral_matrix[i*30]*compressed_spectral_matrix[i*30+18]);
279 compressed_spectral_matrix[i*30+4] = compressed_spectral_matrix[i*30+4] / aux;
280 compressed_spectral_matrix[i*30+5] = compressed_spectral_matrix[i*30+5] / aux;
281 // S23
282 aux = sqrt(compressed_spectral_matrix[i*30+12]*compressed_spectral_matrix[i*30+18]);
283 compressed_spectral_matrix[i*30+12] = compressed_spectral_matrix[i*30+12] / aux;
284 compressed_spectral_matrix[i*30+13] = compressed_spectral_matrix[i*30+13] / aux;
285 // S45
286 aux = sqrt(compressed_spectral_matrix[i*30+24]*compressed_spectral_matrix[i*30+28]);
287 compressed_spectral_matrix[i*30+26] = compressed_spectral_matrix[i*30+26] / aux;
288 compressed_spectral_matrix[i*30+27] = compressed_spectral_matrix[i*30+27] / aux;
289 // S14
290 aux = sqrt(compressed_spectral_matrix[i*30]*compressed_spectral_matrix[i*30+24]);
291 compressed_spectral_matrix[i*30+6] = compressed_spectral_matrix[i*30+6] / aux;
292 compressed_spectral_matrix[i*30+7] = compressed_spectral_matrix[i*30+7] / aux;
293 // S15
294 aux = sqrt(compressed_spectral_matrix[i*30]*compressed_spectral_matrix[i*30+28]);
295 compressed_spectral_matrix[i*30+8] = compressed_spectral_matrix[i*30+8] / aux;
296 compressed_spectral_matrix[i*30+9] = compressed_spectral_matrix[i*30+9] / aux;
297 // S24
298 aux = sqrt(compressed_spectral_matrix[i*10]*compressed_spectral_matrix[i*30+24]);
299 compressed_spectral_matrix[i*30+14] = compressed_spectral_matrix[i*30+14] / aux;
300 compressed_spectral_matrix[i*30+15] = compressed_spectral_matrix[i*30+15] / aux;
301 // S25
302 aux = sqrt(compressed_spectral_matrix[i*10]*compressed_spectral_matrix[i*30+28]);
303 compressed_spectral_matrix[i*30+16] = compressed_spectral_matrix[i*30+16] / aux;
304 compressed_spectral_matrix[i*30+17] = compressed_spectral_matrix[i*30+17] / aux;
305 // S34
306 aux = sqrt(compressed_spectral_matrix[i*18]*compressed_spectral_matrix[i*30+24]);
307 compressed_spectral_matrix[i*30+20] = compressed_spectral_matrix[i*30+20] / aux;
308 compressed_spectral_matrix[i*30+21] = compressed_spectral_matrix[i*30+21] / aux;
309 // S35
310 aux = sqrt(compressed_spectral_matrix[i*18]*compressed_spectral_matrix[i*30+28]);
311 compressed_spectral_matrix[i*30+22] = compressed_spectral_matrix[i*30+22] / aux;
312 compressed_spectral_matrix[i*30+23] = compressed_spectral_matrix[i*30+23] / aux;
313 }
314 }
315
316 rtems_task spw_bppr_task_rate_monotonic(rtems_task_argument argument)
317 {
318 rtems_status_code status;
319 //static int nb_average_f1 = 0;
320 //static int nb_average_f2 = 0;
321
322 rtems_name name;
323 rtems_id period;
324 name = rtems_build_name( 'P', 'E', 'R', 'D' );
325 status = rtems_rate_monotonic_create( name, &period );
326 if( status != RTEMS_SUCCESSFUL ) {
327 printf( "rtems_rate_monotonic_create failed with status of %d\n", status );
328 //exit( 1 );
329 }
330
331 spectral_matrices_regs = (struct spectral_matrices_regs_str *) ADDRESS_APB_SPECTRAL_MATRICES;
332 spectral_matrices_regs->address0 = (volatile int) spectral_matrix_f0_a;
333 spectral_matrices_regs->address1 = (volatile int) spectral_matrix_f0_b;
334
335 printf("In BPPR BIS ***\n");
336
337 while(1){ // launch the rate monotonic task
338 if ( rtems_rate_monotonic_period( period, 8 ) == RTEMS_TIMEOUT ){
339 printf("TIMEOUT\n");
340 //break;
341 }
342 status = rtems_event_send( Task_id[6], RTEMS_EVENT_0 ); // sending an event to the task 6, AVF0
343 if (status != RTEMS_SUCCESSFUL) printf("IN TASK BPPR BIS *** Error sending RTEMS_EVENT_0 to AVF0, code %d\n", status);
344 }
345
346 status = rtems_rate_monotonic_delete( period );
347 if ( status != RTEMS_SUCCESSFUL ) {
348 printf( "rtems_rate_monotonic_delete failed with status of %d.\n", status );
349 //exit( 1 );
350 }
351 status = rtems_task_delete( RTEMS_SELF ); /* should not return */
352 printf( "rtems_task_delete returned with status of %d.\n", status );
353 //exit( 1 );
354 }
355
356 rtems_task spw_avf0_task(rtems_task_argument argument){
357 int i;
358 static int nb_average;
359 rtems_event_set event_out;
360 rtems_status_code status;
361
362 nb_average = 0;
363
364 while(1){
365 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
366 for(i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++){
367 averaged_spectral_matrix_f0[i] = averaged_spectral_matrix_f0[i] + spectral_matrix_f0_a[i]
368 + spectral_matrix_f0_b[i]
369 + spectral_matrix_f0_c[i]
370 + spectral_matrix_f0_d[i]
371 + spectral_matrix_f0_e[i]
372 + spectral_matrix_f0_f[i]
373 + spectral_matrix_f0_g[i]
374 + spectral_matrix_f0_h[i];
375 }
376 spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffe; // reset the appropriate bit in the register
377 nb_average = nb_average + 8;
378 if (nb_average == NB_AVERAGE_NORMAL_f0) {
379 nb_average = 0;
380 status = rtems_event_send( Task_id[7], RTEMS_EVENT_0 ); // sending an event to the task 7, BPF0
381 if (status != RTEMS_SUCCESSFUL) printf("IN TASK AVF0 *** Error sending RTEMS_EVENT_0, code %d\n", status);
382 }
383 }
384 }
385
386 rtems_task spw_bpf0_task(rtems_task_argument argument){
387 rtems_event_set event_out;
388
389 while(1){
390 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
391 matrix_compression(averaged_spectral_matrix_f0, 0, compressed_spectral_matrix_f0);
392 BP1_set(compressed_spectral_matrix_f0, NB_BINS_COMPRESSED_MATRIX_f0, LFR_BP1_F0);
393 printf("IN TASK BPF0 *** Matrix compressed, parameters calculated\n");
394 }
395 }
396
397
@@ -0,0 +1,407
1 //*************************
2 // GPL reminder to be added
3 //*************************
4
5 #define PRINT_MESSAGES_ON_CONSOLE // enable or disable the printf instructions
6 #ifdef PRINT_MESSAGES_ON_CONSOLE
7 #define PRINTF(x) printf(x);
8 #define PRINTF1(x,y) printf(x,y);
9 #define PRINTF2(x,y,z) printf(x,y,z);
10 #else
11 #define PRINTF(x)
12 #define PRINTF1(x,y)
13 #define PRINTF2(x,y,z)
14 #endif
15
16 #define CCSDS_TC_PKT_MAX_SIZE 500 // 248
17 #define CCSDS_TM_PKT_MAX_SIZE 4412
18 #define OFFSET_COARSE_TIME 4+10-1 // -1 => the receiver suppressed the target logical address
19 #define OFFSET_FINE_TIME OFFSET_COARSE_TIME+4
20 #define TC_FIFO_SIZE 5
21
22 #define ADDRESS_APBUART_REGISTERS 0x80000100
23 #define ADDRESS_GRSPW_REGISTERS 0x80000500
24 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
25
26 #define GRSPW_DEVICE_NAME "/dev/grspw0"
27 #define UART_DEVICE_NAME "/dev/console"
28
29 #include <rtems.h>
30
31 /* configuration information */
32
33 #define CONFIGURE_INIT
34 #include <bsp.h> /* for device driver prototypes */
35
36 /* configuration information */
37
38 #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
39 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
40
41 #define CONFIGURE_MAXIMUM_TASKS 10
42 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
43 #define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE)
44 #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 32
45 #define CONFIGURE_INIT_TASK_PRIORITY 100
46 #define CONFIGURE_MAXIMUM_DRIVERS 16
47 #define CONFIGURE_MAXIMUM_PERIODS 1
48
49 #include <rtems/confdefs.h>
50
51 /* If --drvmgr was enabled during the configuration of the RTEMS kernel */
52 #ifdef RTEMS_DRVMGR_STARTUP
53 #ifdef LEON3
54 /* Add Timer and UART Driver */
55 #ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
56 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_GPTIMER
57 #endif
58 #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
59 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_APBUART
60 #endif
61 #endif
62 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRSPW /* GRSPW Driver */
63 #include <drvmgr/drvmgr_confdefs.h>
64 #endif
65
66 #include <rtems.h>
67 #include <errno.h>
68 #include <fcntl.h>
69 #include <stdio.h>
70 #include <stdlib.h>
71
72 #include <FSW-config.c>
73 #include <grspw.h>
74 #include <apbuart.h>
75 #include <FSW-rtems-processing.h>
76
77 rtems_task Init( rtems_task_argument argument); /* forward declaration needed */
78 rtems_task spw_recv_task(rtems_task_argument argument);
79 rtems_task spw_tcck_task(rtems_task_argument argument);
80 rtems_task spw_spiq_task(rtems_task_argument argument);
81 rtems_task spw_stat_task(rtems_task_argument argument);
82 int configure_spw_link();
83 extern int rtems_cpu_usage_report();
84 extern int rtems_cpu_usage_reset();
85
86 char *link_status(int status);
87 void print_statistics(spw_stats *);
88 extern int sched_yield();
89 extern int errno;
90
91 char *lstates[6] = {"Error-reset",
92 "Error-wait",
93 "Ready",
94 "Started",
95 "Connecting",
96 "Run"
97 };
98
99 struct tc_fifo_str{
100 struct tc_fifo_str *next;
101 unsigned char *tc_pkt;
102 unsigned int tc_pktlength;
103 unsigned char ready;
104 };
105 struct tc_fifo_str tc_fifo[TC_FIFO_SIZE];
106 struct tc_fifo_str *tc_being_processed;
107 struct tc_fifo_str *tc_pending_reception;
108
109 struct apbuart_regs_str{
110 volatile unsigned int data;
111 volatile unsigned int status;
112 volatile unsigned int ctrl;
113 volatile unsigned int scaler;
114 volatile unsigned int fifoDebug;
115 };
116
117 int fdSPW;
118 int fdUART;
119
120 rtems_id Task_id[10]; /* array of task ids */
121 rtems_name Task_name[10]; /* array of task names */
122 rtems_name sem_tc_fifo_name;
123 rtems_id sem_tc_fifo_id;
124
125 rtems_task Init( rtems_task_argument ignored ) {
126 rtems_status_code status;
127 struct apbuart_regs_str *apbuart_regs;
128 int i;
129 rtems_isr_entry old_isr_handler;
130
131 Task_name[1] = rtems_build_name( 'R', 'E', 'C', 'V' );
132 Task_name[2] = rtems_build_name( 'T', 'C', 'C', 'K' );
133 Task_name[3] = rtems_build_name( 'S', 'P', 'I', 'Q' );
134 Task_name[4] = rtems_build_name( 'B', 'P', 'P', 'R' );
135 Task_name[5] = rtems_build_name( 'S', 'T', 'A', 'T' );
136 Task_name[6] = rtems_build_name( 'A', 'V', 'F', '0' );
137 Task_name[7] = rtems_build_name( 'B', 'P', 'F', '0' );
138 sem_tc_fifo_name = rtems_build_name( 'S', 'E', 'M', '0' );
139
140 // RECV
141 status = rtems_task_create(
142 Task_name[1], 200, RTEMS_MINIMUM_STACK_SIZE * 2,
143 RTEMS_DEFAULT_MODES,
144 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[1]
145 );
146 // TCCK
147 status = rtems_task_create(
148 Task_name[2], 200, RTEMS_MINIMUM_STACK_SIZE * 2,
149 RTEMS_DEFAULT_MODES,
150 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[2]
151 );
152 // SPIQ
153 status = rtems_task_create(
154 Task_name[3], 50, RTEMS_MINIMUM_STACK_SIZE * 2,
155 RTEMS_DEFAULT_MODES,
156 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[3]
157 );
158 // BPPR
159 status = rtems_task_create(
160 Task_name[4], 10, RTEMS_MINIMUM_STACK_SIZE * 2,
161 RTEMS_DEFAULT_MODES | RTEMS_NO_PREEMPT,
162 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[4]
163 );
164 // STAT
165 status = rtems_task_create(
166 Task_name[5], 200, RTEMS_MINIMUM_STACK_SIZE * 2,
167 RTEMS_DEFAULT_MODES,
168 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[5]
169 );
170 // AVF0
171 status = rtems_task_create(
172 Task_name[6], 50, RTEMS_MINIMUM_STACK_SIZE * 2,
173 RTEMS_DEFAULT_MODES | RTEMS_NO_PREEMPT,
174 RTEMS_DEFAULT_ATTRIBUTES | RTEMS_FLOATING_POINT, &Task_id[6]
175 );
176 // BPF0
177 status = rtems_task_create(
178 Task_name[7], 50, RTEMS_MINIMUM_STACK_SIZE * 2,
179 RTEMS_DEFAULT_MODES,
180 RTEMS_DEFAULT_ATTRIBUTES | RTEMS_FLOATING_POINT, &Task_id[7]
181 );
182
183 status = rtems_semaphore_create(
184 sem_tc_fifo_name,
185 1,
186 RTEMS_BINARY_SEMAPHORE,
187 1,
188 &sem_tc_fifo_id
189 );
190
191 //********************************************
192 // Send the console outputs on the serial port
193 apbuart_regs = (struct apbuart_regs_str *) ADDRESS_APBUART_REGISTERS;
194 apbuart_regs->ctrl = apbuart_regs->ctrl & APBUART_CTRL_REG_MASK_DB;
195 PRINTF("\n\n\n\n\nIn INIT *** Now the console is on port COM1\n")
196 //
197 //********************************************
198
199 configure_spw_link();
200
201 for (i = 0; i<TC_FIFO_SIZE; i++){
202 if (i==TC_FIFO_SIZE-1) tc_fifo[i].next = &tc_fifo[0];
203 else tc_fifo[i].next = &tc_fifo[i+1];
204 tc_fifo[i].tc_pkt = (unsigned char *) malloc(CCSDS_TC_PKT_MAX_SIZE);
205 tc_fifo[i].tc_pktlength = 0;
206 tc_fifo[i].ready = 0;
207 }
208
209 status = rtems_interrupt_catch( spectral_matrices_isr, 0x1c, &old_isr_handler) ; // 0x1c comes from sparcv8.pdf p.76
210 if (status==RTEMS_SUCCESSFUL) PRINTF("In INIT *** rtems_interrupt_catch successfullly configured\n")
211
212 LEON_Unmask_interrupt( IRQ_SPECTRAL_MATRICES );
213
214
215 status = rtems_task_start( Task_id[2], spw_tcck_task, 1 );
216 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_TCCK\n")
217
218 status = rtems_task_start( Task_id[3], spw_spiq_task, 1 );
219 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_SPIQ\n")
220
221 status = rtems_task_start( Task_id[1], spw_recv_task, 1 );
222 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_RECV\n")
223
224 status = rtems_task_start( Task_id[4], spw_bppr_task_rate_monotonic, 1 );
225 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_BPPR\n")
226
227 status = rtems_task_start( Task_id[5], spw_stat_task, 1 );
228 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_STAT\n")
229
230 status = rtems_task_start( Task_id[6], spw_avf0_task, 1 );
231 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_AVF0\n")
232
233 status = rtems_task_start( Task_id[7], spw_bpf0_task, 1 );
234 if (status!=RTEMS_SUCCESSFUL) PRINTF("In INIT *** Error starting TASK_BPF0\n")
235
236 status = rtems_task_delete(RTEMS_SELF);
237 }
238
239 rtems_task spw_recv_task( rtems_task_argument unused ) {
240 rtems_status_code status;
241 int len = 0;
242 unsigned int i;
243
244 PRINTF("In RECV *** \n")
245
246 status = rtems_semaphore_obtain( sem_tc_fifo_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
247 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error: rtems_semaphore_obtain\n")
248 for (i = 0; i<TC_FIFO_SIZE; i++){ // initialize the tc fifo ring
249 tc_fifo[i].tc_pktlength = 0;
250 tc_fifo[i].ready = 0;
251 }
252 status = rtems_semaphore_release( sem_tc_fifo_id );
253 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error: rtems_semaphore_release\n")
254
255 tc_being_processed = tc_fifo;
256 tc_pending_reception = tc_fifo;
257
258 while(1){
259 if (tc_pending_reception->ready == 0){
260 PRINTF("In RECV *** Just before read\n")
261 len = read(fdSPW, tc_pending_reception->tc_pkt, CCSDS_TC_PKT_MAX_SIZE); // the call to read is blocking
262 PRINTF("In RECV *** Just after read\n")
263 if (len == -1) { // error during the read call
264 PRINTF("In RECV *** last read call returned -1\n")
265 if (rtems_event_send( Task_id[3], SPW_LINKERR_EVENT ) != RTEMS_SUCCESSFUL)
266 PRINTF("IN RECV *** Error: rtems_event_send SPW_LINKERR_EVENT\n")
267 if (rtems_task_suspend(RTEMS_SELF) != RTEMS_SUCCESSFUL)
268 PRINTF("In RECV *** Error: rtems_task_suspend(RTEMS_SELF)\n")
269 }
270 else {
271 tc_pending_reception->tc_pktlength = len;
272 tc_pending_reception->ready = 1;
273 PRINTF1("In RECV *** Got Message of length %d\n",tc_pending_reception->tc_pktlength)
274 status = rtems_event_send( Task_id[2], RTEMS_EVENT_0 ); // sending an event to the task TCCK
275 if (status == RTEMS_INVALID_ID) PRINTF("IN TASK RECV *** invalid task id when sending RTEMS_EVENT_0\n")
276 tc_pending_reception = tc_pending_reception->next;
277 sched_yield();
278 }
279 }
280 else {
281 status = rtems_event_send( Task_id[2], RTEMS_EVENT_0 ); // sending an event to the task TCCK
282 if (status == RTEMS_INVALID_ID) PRINTF("IN TASK RECV *** invalid task id when sending RTEMS_EVENT_0\n")
283 sched_yield(); // if not executed, the system blocks when the packets arrive faster than the processing
284 // this call gives back the hand to the scheduler and allows TCCK to process the TC packets
285 }
286 }
287
288 close(fdSPW);
289 }
290
291 rtems_task spw_tcck_task( rtems_task_argument unused ) {
292 rtems_status_code status;
293 rtems_event_set event_out;
294
295 PRINTF("In TCCK ***\n")
296 while(1){
297 status = rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out);
298 if (status == RTEMS_SUCCESSFUL)
299 {
300 while(tc_being_processed->ready==1){
301 printf("In TCCK *** COARSE TIME 0x%x 0x%x 0x%x 0x%x FINE_TIME 0x%x 0x%x\n",
302 tc_being_processed->tc_pkt[OFFSET_COARSE_TIME],
303 tc_being_processed->tc_pkt[OFFSET_COARSE_TIME+1],
304 tc_being_processed->tc_pkt[OFFSET_COARSE_TIME+2],
305 tc_being_processed->tc_pkt[OFFSET_COARSE_TIME+3],
306 tc_being_processed->tc_pkt[OFFSET_FINE_TIME],
307 tc_being_processed->tc_pkt[OFFSET_FINE_TIME+1]);
308 tc_being_processed->ready = 0;
309 tc_being_processed = tc_being_processed->next;
310 }
311 }
312 }
313 }
314
315 rtems_task spw_spiq_task(rtems_task_argument unused){
316 rtems_event_set event_out;
317 struct grspw_regs_str *grspw_regs;
318 grspw_regs = (struct grspw_regs_str *) ADDRESS_GRSPW_REGISTERS;
319
320 while(1){
321 PRINTF("In SPIQ *** Waiting for SPW_LINKERR_EVENT\n")
322 rtems_event_receive(SPW_LINKERR_EVENT, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an SPW_LINKERR_EVENT
323
324 if (rtems_task_suspend(Task_id[1])!=RTEMS_SUCCESSFUL) // suspend RECV task
325 PRINTF("In SPIQ *** Error suspending RECV Task\n")
326
327 configure_spw_link();
328
329 if (rtems_task_restart(Task_id[1], 1)!=RTEMS_SUCCESSFUL) // restart RECV task
330 PRINTF("In SPIQ *** Error resume RECV Task\n")
331 }
332 }
333
334 char *link_status(int status){
335 return lstates[status];
336 }
337
338 void print_statistics(spw_stats *stats)
339 {
340 //printf(" ******** STATISTICS ******** \n");
341 printf("Transmit link errors: %i\n", stats->tx_link_err);
342 printf("Receiver RMAP header CRC errors: %i\n", stats->rx_rmap_header_crc_err);
343 printf("Receiver RMAP data CRC errors: %i\n", stats->rx_rmap_data_crc_err);
344 printf("Receiver EEP errors: %i\n", stats->rx_eep_err);
345 printf("Receiver truncation errors: %i\n", stats->rx_truncated);
346 printf("Parity errors: %i\n", stats->parity_err);
347 printf("Escape errors: %i\n", stats->escape_err);
348 printf("Credit errors: %i\n", stats->credit_err);
349 printf("Disconnect errors: %i\n", stats->disconnect_err);
350 printf("Write synchronization errors: %i\n", stats->write_sync_err);
351 printf("Early EOP/EEP: %i\n", stats->early_ep);
352 printf("Invalid Node Address: %i\n", stats->invalid_address);
353 printf("Packets transmitted: %i\n", stats->packets_sent);
354 printf("Packets received: %i\n", stats->packets_received);
355 }
356
357 int configure_spw_link()
358 {
359 rtems_status_code status;
360
361 close(fdSPW); // close the device if it is already open
362 fdSPW = open(GRSPW_DEVICE_NAME, O_RDWR); // open the device. the open call reset the hardware
363 if (fdSPW<0) PRINTF("In configure_spw_link *** Error opening"GRSPW_DEVICE_NAME"\n")
364 while(ioctl(fdSPW, SPACEWIRE_IOCTRL_START, 0) != RTEMS_SUCCESSFUL){
365 PRINTF("In configure_spw_link *** "GRSPW_DEVICE_NAME" not started, retry\n")
366 close(fdSPW); // close the device
367 fdSPW = open(GRSPW_DEVICE_NAME, O_RDWR); // open the device. the open call reset the hardware
368 if (fdSPW<0) PRINTF("In configure_spw_link *** Error opening"GRSPW_DEVICE_NAME"\n")
369 rtems_task_wake_after(100);
370 }
371
372 PRINTF("In configure_spw_link *** "GRSPW_DEVICE_NAME" opened and started successfully\n")
373
374 // sets a few parameters of the link
375 status = ioctl(fdSPW, SPACEWIRE_IOCTRL_SET_RMAPEN, 1); // sets the RMAP enable bit
376 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error SPACEWIRE_IOCTRL_SET_RMAPEN\n")
377 ioctl(fdSPW, SPACEWIRE_IOCTRL_SET_RXBLOCK, 1); // sets the blocking mode for reception
378 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error SPACEWIRE_IOCTRL_SET_RXBLOCK\n")
379 ioctl(fdSPW, SPACEWIRE_IOCTRL_SET_EVENT_ID, Task_id[3]); // sets the task ID to which an event is sent when a
380 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error SPACEWIRE_IOCTRL_SET_EVENT_ID\n") // link-error interrupt occurs
381 ioctl(fdSPW, SPACEWIRE_IOCTRL_SET_DISABLE_ERR, 1); // automatic link-disabling due to link-error interrupts
382 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error SPACEWIRE_IOCTRL_SET_DISABLE_ERR\n")
383 ioctl(fdSPW, SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ, 1); // sets the link-error interrupt bit
384 if (status!=RTEMS_SUCCESSFUL) PRINTF("In RECV *** Error SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ\n")
385 PRINTF("In configure_spw_link *** "GRSPW_DEVICE_NAME" configured successfully\n")
386
387 return RTEMS_SUCCESSFUL;
388 }
389
390 rtems_task spw_stat_task(rtems_task_argument argument){
391 int i;
392 i = 0;
393 PRINTF("In STAT *** \n")
394 while(1){
395 rtems_task_wake_after(1000);
396 PRINTF1("%d\n", i)
397 if (i == 2) {
398 rtems_cpu_usage_report();
399 rtems_cpu_usage_reset();
400 i = 0;
401 }
402 else i++;
403 }
404 }
405
406
407
@@ -0,0 +1,189
1 #include <..\header\LPP_spwAPI.h>
2 #include <..\header\basic_parameters.h>
3 #include <..\header\ccsds_types.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <asm-leon/timer.h>
7 #include <asm-leon/irq.h>
8
9 #define FINE_TIME_RESET time_manager_regs->ctrl = 0x00000001;
10
11 volatile int didtick = 0;
12 volatile int cnt = 0;
13 volatile int dide = 0;
14
15 struct timerevent e; /* this has to be a global variable, it is inserted in a linked list by addtimer() */
16 struct irqaction action_receive_CCSDS; /* this has to be a global variable as it will be inserted in a list */
17 void register_event();
18
19 int event(void *arg)
20 {
21 dide = 1;
22 register_event();
23 return 0;
24 }
25
26 void register_event()
27 {
28 /* add an event 1s from now */
29 do_gettimeofday((struct timeval*) &e.expire);
30 e.handler = event;
31 e.expire.tv_sec = e.expire.tv_sec + 1;
32 addtimer(&e);
33 }
34
35 int main()
36 {
37 volatile char *rx;
38 char *tx;
39 volatile char *rmaphdr;
40 volatile char *rmap;
41 volatile int *rxd;
42 volatile int *txd;
43 int size;
44 int i;
45 int j;
46 unsigned char current_nb_average = 0;
47 spwHeader_t spwHeader;
48
49 grspwregs_t *grspw_regs;
50 time_manager_regs_t *time_manager_regs;
51 spectral_matrices_regs_t *spectral_matrices_regs;
52
53 grspw_regs = (grspwregs_t*) GRSPW_APB_ADDR; // the grspw registers are at the address GRSPW_APB_ADDR
54 time_manager_regs = (time_manager_regs_t*) LPP_TIME_MANAGER; // the time manager registers are at the address LPP_TIME_MANAGER
55 spectral_matrices_regs = (spectral_matrices_regs_t*) LPP_SPECTRAL_MATRIX_CTRL; // the spectral matrices registers are at this address
56
57 rx = (char*) malloc(64);
58 tx = (char*) malloc(64);
59 rmaphdr = (char*) malloc(32);
60 rmap = (char*) malloc(64);
61 rxd = (int*) almalloc(1024); // memory allocation for the receiver descriptors table
62 // almalloc => 1024 bytes aligned address
63 txd = (int*) almalloc(1024); // memory allocation for the transmitter descriptors table
64 // almalloc => 1024 bytes aligned address
65
66 // GRSPW initilization
67 spw_reset(grspw_regs); // RESET THE SPACEWIRE LINK
68 spw_init(NODEADDR, CLKDIV, DESTKEY, RXMAXLEN, grspw_regs); // INITIALIZE THE SPACEWIRE REGISTERS
69 enable_timecode_reception(grspw_regs); // enable time-code reception
70
71 while( grspw_link_state(grspw_regs) != SPW_LINK_STATE_RUN ) {} // wait for the link to be in run state
72
73 // INITIALIZE THE TRANSMITTER RECEIVER DESCRIPTORS TABLES
74 for(i=0; i<8; i++) { // initialize the receiver and transmitter descriptor tables
75 rxd[i] = 0;
76 txd[i] = 0;
77 }
78 grspw_regs->txdesc = (int) txd;
79 grspw_regs->rxdesc = (int) rxd;
80
81 for (j=0; j<64; j++){ // initialize the rx and tx data tables
82 rx[j] = j;
83 tx[j] = 10;
84 }
85
86 // INITIALIZE THE TRANSMISSION
87 spwHeader.targetLogicalAddress = 0x21; // initialize the SpaceWire Header
88 spwHeader.protocolIdentifier = 0x02;
89 spwHeader.reserved = 0x00;
90 spwHeader.userApplication = 0x00;
91 set_txd(tx, 32, (char*) &spwHeader, HEADERLEN, txd); // initialize the transmitter descriptor 0
92
93 INIT_CCSDS_TELEMETRY_HEADER
94
95 // INITIALIZE THE RECEPTION
96 enable_receiver_descriptor(rx, rxd); // enable the reception of a SpaceWire packet
97
98 // START SPW TRANSMISSION / RECEPTION
99 grspw_regs->dmactrl = GRSPW_DMACTRL_NS | GRSPW_DMACTRL_RD | GRSPW_DMACTRL_RI | GRSPW_DMACTRL_RE | GRSPW_DMACTRL_TE;
100 // NS = 1 wait for a descriptor to be activated
101 // RD = 1 there are enabled descriptors
102 // RI = 1 receive interrupts
103 // RE = 1 receiver enabled
104 // TE = 1 transmitter enabled
105
106 // TIME FUNCTIONS
107 leonbare_init_ticks(); // initialize the time abilities of the Leon3
108 register_event(); // create an event
109
110 // SETS AN IRQ HANDLER UPON RECEPTION OF A SPACEWIRE PACKET
111 spacewire_PARAMETERS.size = &size; // size of the receive packet
112 spacewire_PARAMETERS.rx = rx; // location of the data
113 spacewire_PARAMETERS.rxd = rxd; // associated descriptor
114 spacewire_PARAMETERS.tx = tx; // location of the data
115 spacewire_PARAMETERS.txd = txd; // associated descriptor
116 spacewire_PARAMETERS.regs = grspw_regs; // grspw module registers
117 action_receive_CCSDS.handler = (irqhandler) irqhandler_receive_CCSDS; // create the irq handler
118 chained_catch_interrupt(GRSPW_IRQ, &action_receive_CCSDS); // associate the handler with the GRSPW_IRQ
119 enable_irq(GRSPW_IRQ); // enable the interruption driven by the grspw module upon reception of a packet
120
121 packet_type.time_packet = 0;
122 packet_type.tc_packet = 0;
123
124 //write spectral matrices location in the registers
125 spectral_matrices_regs->address1 = (unsigned int) spectral_matrix_f0_a;
126 spectral_matrices_regs->address2 = (unsigned int) spectral_matrix_f0_b;
127
128 printf("let's work...\n");
129
130 while(1) { // infinite loop
131 if (packet_type.time_packet == 1) {
132 FINE_TIME_RESET
133 time_manager_regs->next_coarse_time = (rx[10+4]<<24) + (rx[11+4]<<16) + (rx[12+4]<<8) + (rx[13+4]);
134 send_fine_time(time_manager_regs->fine_time);
135 enable_receiver_descriptor(spacewire_PARAMETERS.rx, spacewire_PARAMETERS.rxd);
136 enable_receiver(spacewire_PARAMETERS.regs);
137 packet_type.time_packet = 0;
138 }
139 if ((spectral_matrices_regs->ctrl & 1) == 1) {
140 FINE_TIME_RESET
141 for (i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++) {
142 averaged_spectral_matrix_f0[i] = averaged_spectral_matrix_f0[i] + spectral_matrix_f0_a[i];
143 }
144 send_fine_time(time_manager_regs->fine_time);
145 spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffe;
146 current_nb_average++;
147 }
148 if ( ( (spectral_matrices_regs->ctrl>>1) & 1) == 1) {
149 FINE_TIME_RESET
150 for (i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++) {
151 averaged_spectral_matrix_f0[i] = averaged_spectral_matrix_f0[i] + spectral_matrix_f0_b[i];
152 }
153 send_fine_time(time_manager_regs->fine_time);
154 spectral_matrices_regs->ctrl = spectral_matrices_regs->ctrl & 0xfffffffd;
155 current_nb_average++;
156 }
157 if ( current_nb_average == NB_AVERAGE_NORMAL_f0 ) {
158 FINE_TIME_RESET
159 for(i=0;i<NB_BINS_COMPRESSED_MATRIX_f0;i++){
160 j = 17 + i * 8;
161 compressed_spectral_matrix_f0[i]= (averaged_spectral_matrix_f0[j]
162 + averaged_spectral_matrix_f0[j+1]
163 + averaged_spectral_matrix_f0[j+2]
164 + averaged_spectral_matrix_f0[j+3]
165 + averaged_spectral_matrix_f0[j+4]
166 + averaged_spectral_matrix_f0[j+5]
167 + averaged_spectral_matrix_f0[j+6]
168 + averaged_spectral_matrix_f0[j+7])/(8*NB_AVERAGE_NORMAL_f0);
169 }
170
171 BP1_set(); // computation of the BP1 set and building of the corresponding telemetry product
172
173 // sending of the BP1 set
174 set_txd( LFR_BP1_F0, NB_BINS_COMPRESSED_MATRIX_f0*9, // initialize the transmitter descriptor 0
175 (char*) &ccsdsTelemetryHeader, CCSDS_TELEMETRY_HEADER_LENGTH, txd );
176 enable_transmitter_descriptor(CCSDS_TELEMETRY_HEADER_LENGTH, spacewire_PARAMETERS.txd); // enable the descriptor for transmission
177 enable_transmitter(spacewire_PARAMETERS.regs); // enable the transmission
178
179 for (i=0; i<TOTAL_SIZE_SPECTRAL_MATRIX; i++) {
180 averaged_spectral_matrix_f0[i] = 0;
181 }
182 //send_fine_time(time_manager_regs->fine_time);
183 current_nb_average = 0;
184 }
185 }
186
187 return 0;
188 }
189
@@ -0,0 +1,11
1 #include <..\header\LPP_grspw.h>
2 #include <stdio.h>
3
4 #define REG_WRITE(addr, val) (*(volatile unsigned int *)(addr) = (unsigned int)(val))
5 #define REG_READ(addr) (*(volatile unsigned int *)(addr))
6
7 /* Return Current Link State */
8 unsigned int grspw_link_state(grspwregs_t *regs)
9 {
10 return ((regs->status & GRSPW_STAT_LS) >> GRSPW_STAT_LS_BIT);
11 }
@@ -0,0 +1,176
1 #include <..\header\LPP_spwAPI.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4
5 volatile int *lreg = (int*) 0x80000200; // the IRQMP controller registers are at 0x80000200
6
7 inline int loadmemAPI(int addr)
8 {
9 int tmp;
10 asm volatile (" lda [%1]1, %0 " // LDA => Load Word from Alternate space
11 : "=r" (tmp)
12 : "r" (addr)
13 );
14 return tmp;
15 }
16
17 inline char loadb(int addr)
18 {
19 char tmp;
20 asm volatile (" lduba [%1]1, %0 "
21 : "=r" (tmp)
22 : "r" (addr)
23 );
24 return tmp;
25 }
26
27 char *almalloc(int sz)
28 {
29 char *tmp;
30 tmp = (char*) malloc(2*sz);
31 tmp = (char*) (((int)tmp+sz) & ~(sz-1));
32 return(tmp);
33 }
34
35 //////
36 // SPW
37 //////
38
39 void spw_reset(grspwregs_t *regs)
40 {
41 regs->ctrl = GRSPW_CTRL_RS; // make complete reset of the spacewire node, self clearing
42 }
43
44 void spw_init(int nodeaddr, int clkdiv, int destkey, int rxmaxlen, grspwregs_t *regs)
45 {
46 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE; // link start (LS)
47 // RMAP enable (RE)
48 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE;
49 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE;
50 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE;
51 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE;
52 regs->ctrl = GRSPW_CTRL_LS | GRSPW_CTRL_RE;
53 regs->status = 0xffffffff;
54 regs->nodeaddr = nodeaddr;
55 regs->clkdiv = clkdiv;
56 regs->destkey = destkey;
57 regs->time = 0;
58 regs->dmactrl = GRSPW_DMACTRL_RA | GRSPW_DMACTRL_TA | GRSPW_DMACTRL_PR | GRSPW_DMACTRL_PS | GRSPW_DMACTRL_AI;
59 regs->rxmaxlen = rxmaxlen;
60 regs->txdesc = 0;
61 regs->rxdesc = 0;
62 }
63
64 void set_txd(char *dataAddress, unsigned int dataLength, char *headerAddress, unsigned int headerLength, volatile int *txd)
65 {
66 txd[4] = 0;
67 txd[3] = (int) dataAddress; // data address
68 txd[2] = dataLength; // data length
69 txd[1] = (int) headerAddress; // header address
70 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)
71 // bit 12 EN = 1 enable transmitter descriptor
72 // bit 0 to 7 stand for the header length
73 }
74
75 int spw_checkrx(int* size, volatile int *rxd, grspwregs_t *regs)
76 {
77 volatile int tmp = 0;
78 tmp = regs->dmactrl;
79 if ( ( (tmp >> 6) & 1 ) )
80 { // bit 6 PR packet received
81 *size = loadmemAPI((int) &rxd[0]) & 0x00001fff;
82 regs->dmactrl = regs->dmactrl | 1 << 6; // clear bit 6 PR (packet received) by writing a one
83 return 1;
84 }
85 else return 0;
86 }
87
88 int spw_checktx(grspwregs_t *regs)
89 {
90 if ( ( (regs->dmactrl >> 5) & 1 )==1 )
91 { // bit 5 PS (packet sent), cleared when written with a one
92 regs->dmactrl = regs->dmactrl | 1 << 5; // clear bit 5 PS (packet sent) by writing a one
93 return 1;
94 }
95 else return 0;
96 }
97
98 void enable_transmitter_descriptor(unsigned int headerLength, volatile int *txd)
99 {
100 txd[0] = GRSPW_TXBD_WR | GRSPW_TXBD_EN;
101 //WR = 1 next descriptor read will be 1st one in the table (at the base address)
102 //EN = 1 enable transmitter descriptor
103 }
104
105 void enable_transmitter(grspwregs_t *regs)
106 {
107 regs->dmactrl = regs->dmactrl | GRSPW_DMACTRL_TE;
108 }
109
110 void enable_receiver_descriptor(volatile char *rx, volatile int *rxd)
111 {
112 rxd[1] = (int) rx;
113 rxd[0] = GRSPW_RXBD_IE | GRSPW_RXBD_WR | GRSPW_RXBD_EN;
114 // IE = 1 Interrupt enable
115 // WR = 1 next descriptor will be the 1st one in the desc table (at the base address)
116 // EN = 1 activate the descriptor
117 }
118
119 void enable_receiver(grspwregs_t *regs)
120 {
121 regs->dmactrl = regs->dmactrl | 1 << 11 | 1 << 2;
122 }
123
124 int enable_timecode_reception(grspwregs_t *regs)
125 {
126 regs->ctrl = regs->ctrl | GRSPW_CTRL_TR;
127 return 1;
128 }
129
130 int check_time(grspwregs_t *grspw_regs)
131 {
132 int tmp = loadmemAPI((int)&(grspw_regs->status)) & 1;
133 if (tmp) {
134 grspw_regs->status = loadmemAPI((int)&(grspw_regs->status)) | 1;
135 }
136 return tmp;
137 }
138
139 //////////////
140 // GENERAL USE
141 //////////////
142 void send_fine_time(unsigned int fine_time){
143 spacewire_PARAMETERS.tx[0] = (char) fine_time; // send the fine time value to LPPMON
144 spacewire_PARAMETERS.tx[1] = (char) (fine_time>>8);
145 spacewire_PARAMETERS.tx[2] = (char) (fine_time>>16);
146 spacewire_PARAMETERS.tx[3] = (char) (fine_time>>24);
147 enable_transmitter_descriptor(HEADERLEN, spacewire_PARAMETERS.txd); // enable the descriptor for transmission
148 enable_transmitter(spacewire_PARAMETERS.regs); // enable the transmission
149 }
150
151 //////
152 // IRQ
153 //////
154
155 int irqhandler_receive_CCSDS(int irq, void * args, struct leonbare_pt_regs * leon_regs)
156 {
157 if (spw_checkrx(spacewire_PARAMETERS.size, spacewire_PARAMETERS.rxd, spacewire_PARAMETERS.regs)==1)
158 {
159 packet_type.time_packet = 1;
160 return 1;
161 }
162 return 0;
163 }
164
165 int enable_irq(int irq)
166 {
167 lreg[ICLEAR/4] = (1 << irq); // clear any pending irq
168 lreg[IMASK/4] = lreg[IMASK/4] | (1 << irq); // unmask irq
169 return 1;
170 }
171
172 int disable_irq(int irq) { lreg[IMASK/4] &= ~(1 << irq); return 1;}
173
174 int force_irq(int irq) { lreg[IFORCE/4] = lreg[IFORCE/4] | (1 << irq); return 1;}
175
176
@@ -0,0 +1,74
1 #include <..\header\TC_handler.h>
2
3 char TM_checker(ccsdsTelecommandSourcePacketHeader_t * TMPacket)
4 {
5 unsigned char pid = 0;
6 unsigned char category = 0;
7 unsigned int length = 0;
8
9 // APID check *** APID on 2 bytes
10 pid = ((TMPacket->packetID[0] & 0x07)<<4) + ( (TMPacket->packetID[1]>>4) & 0x0f ); // PID = 11 *** 7 bits xxxxx210 7654xxxx
11 category = (TMPacket->packetID[1] & 0x0f); // PACKET_CATEGORY = 12 *** 4 bits xxxxxxxx xxxx3210
12 if (pid!=CCSDS_PROCESS_ID) return CCSDS_ERR_PID;
13 if (category!=CCSDS_PACKET_CATEGORY) return CCSDS_ERR_CAT;
14
15 // packet length check
16 length = TMPacket->packetLength[1] + TMPacket->packetLength[0] * 256;
17 if (category<=CCSDS_TELECOMMAND_MAX_PACKET_LENGTH) return CCSDS_ERR_LENGTH; // check that the packet does not exceed the MAX size
18
19 // service type, subtype and packet length check
20 switch(TMPacket->dataFieldHeader[1]) { // service type, authorized values are 181 and 9
21 case 181:
22 switch(TMPacket->dataFieldHeader[2]){ //subtype, autorized values are 3, 20, 21, 24, 27, 28, 30, 40, 50, 60, 61
23 case 3:
24 if (length!=12) return CCSDS_ERR_LENGTH;
25 break;
26 case 20:
27 if (length!=14) return CCSDS_ERR_LENGTH;
28 break;
29 case 21:
30 if (length!=20) return CCSDS_ERR_LENGTH;
31 break;
32 case 24:
33 if (length!=14) return CCSDS_ERR_LENGTH;
34 break;
35 case 27:
36 if (length!=14) return CCSDS_ERR_LENGTH;
37 break;
38 case 28:
39 if (length!=14) return CCSDS_ERR_LENGTH;
40 break;
41 case 30:
42 if (length!=12) return CCSDS_ERR_LENGTH;
43 break;
44 case 40:
45 if (length!=20) return CCSDS_ERR_LENGTH;
46 break;
47 case 50:
48 if (length!=50) return CCSDS_ERR_LENGTH;
49 break;
50 case 60:
51 if (length!=12) return CCSDS_ERR_LENGTH;
52 break;
53 case 61:
54 if (length!=12) return CCSDS_ERR_LENGTH;
55 break;
56 default:
57 return CCSDS_ERR_SUBTYPE;
58 break;
59 }
60 case 9:
61 if (TMPacket->dataFieldHeader[2]==129) return CCSDS_ERR_SUBTYPE;
62 if (length!=18) return CCSDS_ERR_LENGTH;
63 break;
64 default:
65 return CCSDS_ERR_TYPE;
66 break;
67 }
68
69 // source ID check // Source ID not documented in the ICD
70
71 // packet error control, CRC check
72
73 return CCSDS_TM_VALID;
74 }
@@ -0,0 +1,194
1 #include <..\header\basic_parameters.h>
2 #include<math.h>
3
4 float k14_re = 1;
5 float k14_im = 1;
6 float k14_bis_re = 1;
7 float k14_bis_im = 1;
8 float k14_tris_re = 1;
9 float k14_tris_im = 1;
10 float k15_re = 1;
11 float k15_im = 1;
12 float k15_bis_re = 1;
13 float k15_bis_im = 1;
14 float k24_re = 1;
15 float k24_im = 1;
16 float k24_bis_re = 1;
17 float k24_bis_im = 1;
18 float k24_tris_re = 1;
19 float k24_tris_im = 1;
20 float k25_re = 1;
21 float k25_im = 1;
22 float k25_bis_re = 1;
23 float k25_bis_im = 1;
24 float k34_re = 1;
25 float k34_im = 1;
26 float k44 = 1;
27 float k55 = 1;
28 float k45_re = 1;
29 float k45_im = 1;
30 float alpha_M = M_PI/4;
31
32 void BP1_set(){
33 int i, j;
34 unsigned char tmp_u_char;
35 unsigned char * pt_char;
36 float PSDB, PSDE;
37 float NVEC_V0, NVEC_V1, NVEC_V2;
38 float significand;
39 int exponent;
40 float aux, tr_SB_SB, tmp;
41 float e_cross_b_re, e_cross_b_im;
42 float n_cross_e_scal_b_re = 0, n_cross_e_scal_b_im = 0;
43 float nx = 0, ny = 0;
44 float bz_bz_star = 0;
45 for(i=0; i<NB_BINS_COMPRESSED_MATRIX_f0; i++){
46 //==============================================
47 // BP1 PSD == B PAR_LFR_SC_BP1_PE_FL0 == 16 bits
48 PSDB = compressed_spectral_matrix_f0[i*30] // S11
49 + compressed_spectral_matrix_f0[i*30+10] // S22
50 + compressed_spectral_matrix_f0[i*30+18]; // S33
51 significand = frexp(PSDB, &exponent);
52 pt_char = (unsigned char*) &PSDB;
53 LFR_BP1_F0[i*9+8] = pt_char[0]; // bits 31 downto 24 of the float
54 LFR_BP1_F0[i*9+7] = pt_char[1]; // bits 23 downto 16 of the float
55 //==============================================
56 // BP1 PSD == E PAR_LFR_SC_BP1_PB_FL0 == 16 bits
57 PSDE = compressed_spectral_matrix_f0[i*30+24] * k44 // S44
58 + compressed_spectral_matrix_f0[i*30+28] * k55 // S55
59 + compressed_spectral_matrix_f0[i*30+26] * k45_re // S45
60 - compressed_spectral_matrix_f0[i*30+27] * k45_im; // S45
61 pt_char = (unsigned char*) &PSDE;
62 LFR_BP1_F0[i*9+6] = pt_char[0]; // bits 31 downto 24 of the float
63 LFR_BP1_F0[i*9+5] = pt_char[1]; // bits 23 downto 16 of the float
64 //==============================================================================
65 // BP1 normal wave vector == PAR_LFR_SC_BP1_NVEC_V0_F0 == 8 bits
66 // == PAR_LFR_SC_BP1_NVEC_V1_F0 == 8 bits
67 // == PAR_LFR_SC_BP1_NVEC_V2_F0 == 1 bits
68 tmp = sqrt(
69 compressed_spectral_matrix_f0[i*30+3]*compressed_spectral_matrix_f0[i*30+3] //Im S12
70 +compressed_spectral_matrix_f0[i*30+5]*compressed_spectral_matrix_f0[i*30+5] //Im S13
71 +compressed_spectral_matrix_f0[i*30+5]*compressed_spectral_matrix_f0[i*30+13] //Im S23
72 );
73 NVEC_V0 = compressed_spectral_matrix_f0[i*30+13] / tmp; // Im S23
74 NVEC_V1 = -compressed_spectral_matrix_f0[i*30+5] / tmp; // Im S13
75 NVEC_V2 = compressed_spectral_matrix_f0[i*30+1] / tmp; // Im S12
76 LFR_BP1_F0[i*9+4] = (char) (NVEC_V0*256);
77 LFR_BP1_F0[i*9+3] = (char) (NVEC_V1*256);
78 pt_char = (unsigned char*) &NVEC_V2;
79 LFR_BP1_F0[i*9+2] = pt_char[0] & 0x80; // extract the sign of NVEC_V2
80 //=======================================================
81 // BP1 ellipticity == PAR_LFR_SC_BP1_ELLIP_F0 == 4 bits
82 aux = 2*tmp / PSDB; // compute the ellipticity
83 tmp_u_char = (unsigned char) (aux*(16-1)); // convert the ellipticity
84 LFR_BP1_F0[i*9+2] = LFR_BP1_F0[i*9+2] | ((tmp_u_char&0x0f)<<3); // keeps 4 bits of the resulting unsigned char
85 //==============================================================
86 // BP1 degree of polarization == PAR_LFR_SC_BP1_DOP_F0 == 3 bits
87 for(j = 0; j<NB_VALUES_PER_SPECTRAL_MATRIX;j++){
88 tr_SB_SB = compressed_spectral_matrix_f0[i*30]*compressed_spectral_matrix_f0[i*30]
89 + compressed_spectral_matrix_f0[i*30+10]*compressed_spectral_matrix_f0[i*30+10]
90 + compressed_spectral_matrix_f0[i*30+18]*compressed_spectral_matrix_f0[i*30+18]
91 + 2 * compressed_spectral_matrix_f0[i*30+2]*compressed_spectral_matrix_f0[i*30+2]
92 + 2 * compressed_spectral_matrix_f0[i*30+3]*compressed_spectral_matrix_f0[i*30+3]
93 + 2 * compressed_spectral_matrix_f0[i*30+4]*compressed_spectral_matrix_f0[i*30+4]
94 + 2 * compressed_spectral_matrix_f0[i*30+5]*compressed_spectral_matrix_f0[i*30+5]
95 + 2 * compressed_spectral_matrix_f0[i*30+12]*compressed_spectral_matrix_f0[i*30+12]
96 + 2 * compressed_spectral_matrix_f0[i*30+13]*compressed_spectral_matrix_f0[i*30+13];
97 }
98 aux = PSDB*PSDB;
99 tmp = ( 3*tr_SB_SB - aux ) / ( 2 * aux );
100 tmp_u_char = (unsigned char) (NVEC_V0*(8-1));
101 LFR_BP1_F0[i*9+2] = LFR_BP1_F0[i*9+2] | ((tmp_u_char&0x07)); // keeps 3 bits of the resulting unsigned char
102 //=======================================================================================
103 // BP1 z-component of the normalized Poynting flux == PAR_LFR_SC_BP1_SZ_F0 == 8 bits (7+1)
104 e_cross_b_re = compressed_spectral_matrix_f0[i*30+20]*k34_re
105 + compressed_spectral_matrix_f0[i*30+6]*k14_re
106 + compressed_spectral_matrix_f0[i*30+8]*k15_re
107 + compressed_spectral_matrix_f0[i*30+14]*k24_re
108 + compressed_spectral_matrix_f0[i*30+16]*k25_re;
109 e_cross_b_im = compressed_spectral_matrix_f0[i*30+21]*k34_im
110 + compressed_spectral_matrix_f0[i*30+7]*k14_im
111 + compressed_spectral_matrix_f0[i*30+9]*k15_im
112 + compressed_spectral_matrix_f0[i*30+15]*k24_im
113 + compressed_spectral_matrix_f0[i*30+17]*k25_im;
114 tmp = e_cross_b_re / PSDE; // compute ReaSz
115 LFR_BP1_F0[i*9+1] = ((unsigned char) (tmp * 128)) & 0x7f; // is it always positive?
116 tmp = e_cross_b_re * e_cross_b_im;
117 pt_char = (unsigned char*) &tmp;
118 LFR_BP1_F0[i*9+1] = LFR_BP1_F0[i*9+1] | (pt_char[0] & 0x80); // extract the sign of ArgSz
119 //======================================================================
120 // BP1 phase velocity estimator == PAR_LFR_SC_BP1_VPHI_F0 == 8 bits (7+1)
121 nx = -sin(alpha_M)*NVEC_V0 - cos(alpha_M)*NVEC_V1;
122 ny = NVEC_V2;
123 bz_bz_star = cos(alpha_M) * cos(alpha_M) * compressed_spectral_matrix_f0[i*30] // re S11
124 + sin(alpha_M) * sin(alpha_M) * compressed_spectral_matrix_f0[i*30+10] // re S22
125 - 2 * sin(alpha_M) * cos(alpha_M) * compressed_spectral_matrix_f0[i*30+2]; // re S12
126 n_cross_e_scal_b_re = nx * (compressed_spectral_matrix_f0[i*30+8]*k15_bis_re
127 +compressed_spectral_matrix_f0[i*30+6]*k14_bis_re
128 +compressed_spectral_matrix_f0[i*30+16]*k25_bis_re
129 +compressed_spectral_matrix_f0[i*30+14]*k24_bis_re)
130 + ny * (compressed_spectral_matrix_f0[i*30+6]*k14_tris_re
131 +compressed_spectral_matrix_f0[i*30+14]*k24_tris_re);
132 n_cross_e_scal_b_im = nx * (compressed_spectral_matrix_f0[i*30+8]*k15_bis_im
133 +compressed_spectral_matrix_f0[i*30+6]*k14_bis_im
134 +compressed_spectral_matrix_f0[i*30+16]*k25_bis_im
135 +compressed_spectral_matrix_f0[i*30+14]*k24_bis_im)
136 + ny * (compressed_spectral_matrix_f0[i*30+6]*k14_tris_im
137 +compressed_spectral_matrix_f0[i*30+14]*k24_tris_im);
138 tmp = n_cross_e_scal_b_re / bz_bz_star;
139 LFR_BP1_F0[i*9+0] = ((unsigned char) (tmp * 128)) & 0x7f; // is it always positive?
140 tmp = n_cross_e_scal_b_re * n_cross_e_scal_b_im;
141 pt_char = (unsigned char*) &tmp;
142 LFR_BP1_F0[i*9+1] = LFR_BP1_F0[i*9+0] | (pt_char[0] & 0x80); // extract the sign of ArgV
143 }
144
145 }
146
147 void BP2_set(){
148 // BP2 autocorrelation
149 int i, aux = 0;
150 for(i = 0; i<NB_BINS_COMPRESSED_MATRIX_f0; i++){
151 // S12
152 aux = sqrt(compressed_spectral_matrix_f0[i*30]*compressed_spectral_matrix_f0[i*30+10]);
153 compressed_spectral_matrix_f0[i*30+2] = compressed_spectral_matrix_f0[i*30+2] / aux;
154 compressed_spectral_matrix_f0[i*30+3] = compressed_spectral_matrix_f0[i*30+3] / aux;
155 // S13
156 aux = sqrt(compressed_spectral_matrix_f0[i*30]*compressed_spectral_matrix_f0[i*30+18]);
157 compressed_spectral_matrix_f0[i*30+4] = compressed_spectral_matrix_f0[i*30+4] / aux;
158 compressed_spectral_matrix_f0[i*30+5] = compressed_spectral_matrix_f0[i*30+5] / aux;
159 // S23
160 aux = sqrt(compressed_spectral_matrix_f0[i*30+12]*compressed_spectral_matrix_f0[i*30+18]);
161 compressed_spectral_matrix_f0[i*30+12] = compressed_spectral_matrix_f0[i*30+12] / aux;
162 compressed_spectral_matrix_f0[i*30+13] = compressed_spectral_matrix_f0[i*30+13] / aux;
163 // S45
164 aux = sqrt(compressed_spectral_matrix_f0[i*30+24]*compressed_spectral_matrix_f0[i*30+28]);
165 compressed_spectral_matrix_f0[i*30+26] = compressed_spectral_matrix_f0[i*30+26] / aux;
166 compressed_spectral_matrix_f0[i*30+27] = compressed_spectral_matrix_f0[i*30+27] / aux;
167 // S14
168 aux = sqrt(compressed_spectral_matrix_f0[i*30]*compressed_spectral_matrix_f0[i*30+24]);
169 compressed_spectral_matrix_f0[i*30+6] = compressed_spectral_matrix_f0[i*30+6] / aux;
170 compressed_spectral_matrix_f0[i*30+7] = compressed_spectral_matrix_f0[i*30+7] / aux;
171 // S15
172 aux = sqrt(compressed_spectral_matrix_f0[i*30]*compressed_spectral_matrix_f0[i*30+28]);
173 compressed_spectral_matrix_f0[i*30+8] = compressed_spectral_matrix_f0[i*30+8] / aux;
174 compressed_spectral_matrix_f0[i*30+9] = compressed_spectral_matrix_f0[i*30+9] / aux;
175 // S24
176 aux = sqrt(compressed_spectral_matrix_f0[i*10]*compressed_spectral_matrix_f0[i*30+24]);
177 compressed_spectral_matrix_f0[i*30+14] = compressed_spectral_matrix_f0[i*30+14] / aux;
178 compressed_spectral_matrix_f0[i*30+15] = compressed_spectral_matrix_f0[i*30+15] / aux;
179 // S25
180 aux = sqrt(compressed_spectral_matrix_f0[i*10]*compressed_spectral_matrix_f0[i*30+28]);
181 compressed_spectral_matrix_f0[i*30+16] = compressed_spectral_matrix_f0[i*30+16] / aux;
182 compressed_spectral_matrix_f0[i*30+17] = compressed_spectral_matrix_f0[i*30+17] / aux;
183 // S34
184 aux = sqrt(compressed_spectral_matrix_f0[i*18]*compressed_spectral_matrix_f0[i*30+24]);
185 compressed_spectral_matrix_f0[i*30+20] = compressed_spectral_matrix_f0[i*30+20] / aux;
186 compressed_spectral_matrix_f0[i*30+21] = compressed_spectral_matrix_f0[i*30+21] / aux;
187 // S35
188 aux = sqrt(compressed_spectral_matrix_f0[i*18]*compressed_spectral_matrix_f0[i*30+28]);
189 compressed_spectral_matrix_f0[i*30+22] = compressed_spectral_matrix_f0[i*30+22] / aux;
190 compressed_spectral_matrix_f0[i*30+23] = compressed_spectral_matrix_f0[i*30+23] / aux;
191 }
192 }
193
194
This diff has been collapsed as it changes many lines, (538 lines changed) Show them Hide them
@@ -0,0 +1,538
1 /* Simple SpaceWire interface test for 2 boards.
2 * When using two boards define MULTI_BOARD and
3 * one of TASK_RX or TASK_TX.
4 *
5 * The main SpaceWire example for oe board is rtems-spacewire.
6 *
7 * Gaisler Research 2007,
8 * Daniel Hellstr�m
9 *
10 */
11
12 //////
13 // PLE
14 #define PRINT_MESSAGES_ON_CONSOLE // enable or disable the printf instructions
15 #ifdef PRINT_MESSAGES_ON_CONSOLE
16 #define PRINTF(x) printf(x);
17 #define PRINTF1(x,y) printf(x,y);
18 #define PRINTF2(x,y,z) printf(x,y,z);
19 #else
20 #define PRINTF(x)
21 #define PRINTF1(x,y)
22 #define PRINTF2(x,y,z)
23 #endif
24 //
25 //////
26
27 #define CONFIGURE_INIT
28 #include <bsp.h> /* for device driver prototypes */
29 rtems_task Init( rtems_task_argument argument); /* forward declaration needed */
30
31 /* configuration information */
32 #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
33 #define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER 1
34 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
35
36 #define CONFIGURE_MAXIMUM_TASKS 8
37 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
38 #define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE)
39 #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 32
40 #define CONFIGURE_INIT_TASK_PRIORITY 100
41 #define CONFIGURE_MAXIMUM_DRIVERS 16
42
43 /* #define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \ */
44 /* RTEMS_TIMESLICE | \ */
45 /* RTEMS_ASR | \ */
46 /* RTEMS_INTERRUPT_LEVEL(0)) */
47
48 //#define RTEMS_PCI_CONFIG_LIB
49 //#define CONFIGURE_PCI_LIB PCI_LIB_AUTO
50
51 #include <rtems/confdefs.h>
52
53 /* Configure Driver manager */
54 #if defined(RTEMS_DRVMGR_STARTUP) && defined(LEON3) /* if --drvmgr was given to configure */
55 /* Add Timer and UART Driver for this example */
56 #ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
57 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_GPTIMER
58 #endif
59 #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
60 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_APBUART
61 #endif
62 #endif
63 //#define CONFIGURE_DRIVER_AMBAPP_GAISLER_PCIF /* PCI is for RASTA-IO and GR-701 GRSPW */
64 //#define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRPCI /* PCI is for RASTA-IO and GR-701 GRSPW */
65 //#define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRPCI2 /* PCI is for RASTA-IO and GR-701 GRSPW */
66 //#define CONFIGURE_DRIVER_PCI_GR_RASTA_IO /* GR-RASTA-IO has three GRSPW SpaceWire cores */
67 //#define CONFIGURE_DRIVER_PCI_GR_701 /* GR-701 has three GRSPW SpaceWire cores */
68
69 #ifdef LEON2
70 /* PCI support for AT697 */
71 #define CONFIGURE_DRIVER_LEON2_AT697PCI
72 /* AMBA PnP Support for GRLIB-LEON2 */
73 #define CONFIGURE_DRIVER_LEON2_AMBAPP
74 #endif
75
76 #define CONFIGURE_DRIVER_AMBAPP_GAISLER_GRSPW /* GRSPW Driver */
77
78 #include <drvmgr/drvmgr_confdefs.h>
79
80 #include <rtems.h>
81 #include <errno.h>
82 #include <sys/types.h>
83 #include <sys/stat.h>
84 #include <fcntl.h>
85 #include <stdio.h>
86 #include <stdlib.h>
87
88 #undef ENABLE_NETWORK
89 /* Include driver configurations and system initialization */
90 #include "config.c"
91
92 #include <grspw.h>
93
94 /* Select GRSPW core to be used in sample application.
95 * - /dev/grspw0 (First ON-CHIP core)
96 * - /dev/grspw1 (Second ON-CHIP core)
97 * - /dev/rastaio0/grspw0 (The GRSPW core on first GR-RASTA-IO board)
98 * - /dev/rastaio0/grspw1 (The second GRSPW core on first GR-RASTA-IO board)
99 * - /dev/gr701_0/grspw0 (The first GRSPW core on first GR-701 board)
100 * - /dev/gr701_1/grspw0 (The first GRSPW core on second GR-701 board)
101 */
102
103 #define GRSPW_DEVICE_NAME1 "/dev/grspw1"
104 #define GRSPW_DEVICE_NAME2 "/dev/grspw0"
105
106 rtems_task task1(rtems_task_argument argument);
107 rtems_task task2(rtems_task_argument argument);
108
109 void print_config(spw_config *cnf);
110 void print_statistics(spw_stats *stats);
111 void check_init_config(spw_config *cnf);
112 char *link_status(int status);
113 extern int errno;
114
115 char *lstates[6] = {"Error-reset",
116 "Error-wait",
117 "Ready",
118 "Started",
119 "Connecting",
120 "Run"
121 };
122
123 rtems_id Task_id[3]; /* array of task ids */
124 rtems_name Task_name[3]; /* array of task names */
125
126 /* =========================================================
127 initialisation */
128 rtems_task Init(
129 rtems_task_argument ignored
130 )
131 {
132 FILE *f; int fd;
133 rtems_status_code status;
134
135 printf("******** Starting RTEMS Spacewire test 2 ********\n");
136
137 system_init();
138
139 Task_name[1] = rtems_build_name( 'S', 'E', 'N', 'D' );
140 Task_name[2] = rtems_build_name( 'R', 'E', 'C', 'V' );
141
142 status = rtems_task_create(
143 Task_name[1], 1, RTEMS_MINIMUM_STACK_SIZE * 2,
144 RTEMS_DEFAULT_MODES,
145 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[1]
146 );
147
148 status = rtems_task_create(
149 Task_name[2], 1, RTEMS_MINIMUM_STACK_SIZE * 2,
150 RTEMS_DEFAULT_MODES,
151 RTEMS_DEFAULT_ATTRIBUTES, &Task_id[2]
152 );
153
154 #ifdef TASK_TX
155 PRINTF("start TASK_TX\n")
156 status = rtems_task_start(Task_id[1], task1, 1);
157 #endif
158 #define TASK_RX
159 #ifdef TASK_RX
160 PRINTF("start TASK_RX\n")
161 status = rtems_task_start(Task_id[2], task2, 2);
162 #endif
163
164 status = rtems_task_delete(RTEMS_SELF);
165 }
166
167 unsigned int init1 = 0, init2 = 0;
168 static char tx_pkt[4096];
169 static char tx_hpkt[256];
170
171 #define NODE_ADR_TX 1
172 #define NODE_ADR_RX 254
173
174 #ifdef TASK_TX
175 /* =========================================================
176 sender task */
177 rtems_task task1(
178 rtems_task_argument unused
179 )
180 {
181 rtems_status_code status;
182 rtems_event_set out;
183 int i;
184 int j;
185 int k;
186 int fd;
187 int lstatus;
188 int stat;
189 int ret;
190 spw_ioctl_pkt_send *pkt = (spw_ioctl_pkt_send *)malloc(sizeof(spw_ioctl_pkt_send));
191 spw_stats *statistics = (spw_stats *)malloc(sizeof(spw_stats));
192 spw_config *config = (spw_config *)malloc(sizeof(spw_config));
193 spw_ioctl_packetsize *ps = (spw_ioctl_packetsize *)malloc(sizeof(spw_ioctl_packetsize));
194
195 PRINTF("**** Transmit test task started ****\n")
196 printf("\n");
197 printf("Opening " GRSPW_DEVICE_NAME1 ": ");
198 j=0;
199 fd = open(GRSPW_DEVICE_NAME1, O_RDWR);
200 if ( fd < 0 ){
201 printf("Failed to open " GRSPW_DEVICE_NAME1 " (%d)\n",errno);
202 exit(0);
203 }
204 printf("opened successfully\n");
205 printf("**** Checking initial configuration for " GRSPW_DEVICE_NAME1 " ****\n");
206 printf("\n");
207 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) {
208 printf("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG \n");
209 exit(0);
210 }
211 print_config(config);
212 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_NODEADDR, NODE_ADR_TX) == -1) {
213 printf("ioctl failed: SPACEWIRE_IOCTRL_SET_NODEADDR \n");
214 exit(0);
215 }
216 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) {
217 printf("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n");
218 exit(0);
219 }
220 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_TXBLOCK, 1) == -1) {
221 printf("ioctl failed: SPACEWIRE_IOCTRL_SET_TXBLOCK\n");
222 exit(0);
223 }
224
225 printf("Trying to bring link up\n");
226 while(1){
227 if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) {
228 sched_yield(); /*printf("ioctl failed: SPACEWIRE_IOCTRL_START\n");*/
229 }else
230 break;
231 }
232 printf("Link is up\n");
233
234 printf("Disabling transmitter and receiver\n");
235 if ( ioctl(fd, SPACEWIRE_IOCTRL_STOP, 0) == -1 ){
236 printf("ioctl failed: SPACEWIRE_IOCTRL_STOP (%d)\n",errno);
237 exit(0);
238 }
239
240 printf("Trying to bring link up again\n");
241 while(1){
242 if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) {
243 sched_yield(); /*printf("ioctl failed: SPACEWIRE_IOCTRL_START\n");*/
244 }else
245 break;
246 }
247 printf("Link is up\n");
248
249 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_CLKDIV, 0) == -1) {
250 printf("ioctl failed: SPACEWIRE_IOCTRL_SET_CLKDIV\n");
251 exit(0);
252 }
253
254 print_config(config);
255 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &(lstatus)) == -1) {
256 printf("ioctl failed: SPACEWIRE_IOCTRL_GET_LINK_STATUS\n");
257 exit(0);
258 }
259 printf("Spacewire link 1 is in %s state\n", link_status(lstatus));
260 /* printf("Set link error event id and link error irq\n"); */
261 /* printf("Task Id 2: %i \n", Task_id[1]); */
262 /* ioctl(fd, SPACEWIRE_IOCTRL_SET_EVENT_ID, Task_id[1]); */
263 /* ioctl(fd, SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ, 1); */
264 /* rtems_event_receive(RTEMS_ALL_EVENTS, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &out); */
265 /* printf("Got event 1\n"); */
266 /* ioctl(fd, SPACEWIRE_IOCTRL_SET_DISABLE_ERR, 1); */
267 /* rtems_event_receive(RTEMS_ALL_EVENTS, RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &out); */
268 /* printf("Got event 2\n"); */
269 /* ioctl(fd, SPACEWIRE_IOCTRL_SET_LINK_ERR_IRQ, 0); */
270 /* ioctl(fd, SPACEWIRE_IOCTRL_LINKSTART, 1); */
271 /* printf("Link error test finished\n"); */
272 /*config print finished, allow task 2 to print its config*/
273 i=0;
274 while(1){
275 printf("-------------- Sending Initiator ----------------\n");
276 tx_pkt[0] = NODE_ADR_RX;
277 tx_pkt[1] = 'G';
278 tx_pkt[2] = 'A';
279 tx_pkt[3] = 'I';
280 tx_pkt[4] = 'S';
281 tx_pkt[5] = 'L';
282 tx_pkt[6] = 'E';
283 tx_pkt[7] = 'R';
284 tx_pkt[8] = ' ';
285 tx_pkt[9] = 'S';
286 tx_pkt[10] = 'P';
287 tx_pkt[11] = 'W';
288 tx_pkt[12] = '0'+i;
289 tx_pkt[13] = 0;
290
291 /* Send packet */
292 if ( (ret=write(fd, tx_pkt, 14)) <= 0 ){
293 printf("Write failed, errno: %d, ret: %d\n",errno,ret);
294 }
295
296 /* Sleep 5s */
297 printf("Sleeping 1s\n");
298 sleep(1);
299 i++;
300 if ( i>9 )
301 i=0;
302 }
303 }
304
305 #endif
306
307
308 #ifdef TASK_RX
309 /* =========================================================
310 receiver task */
311
312 rtems_task task2(
313 rtems_task_argument unused
314 )
315 {
316 rtems_status_code status;
317 spw_config *config;
318 spw_stats *statistics = (spw_stats *)malloc(sizeof(spw_stats));
319 char *rx_pkt;
320 char *cx_pkt;
321 char *cx_hpkt;
322 int fd;
323 rtems_event_set event0, event1;
324 int len;
325 int i;
326 int j;
327 int k;
328 int st;
329 int lstatus;
330 int rd;
331 int tmp;
332
333 rx_pkt = (char *)malloc(4096);
334 cx_pkt = (char *)malloc(4096);
335 cx_hpkt = (char *)malloc(256);
336 config = (spw_config *)malloc(sizeof(spw_config));
337 spw_ioctl_packetsize *ps = (spw_ioctl_packetsize *)malloc(sizeof(spw_ioctl_packetsize));
338
339 PRINTF("**** Receive test task started ****\n")
340 j = 0;
341 errno =0 ;
342 PRINTF("Try to open "GRSPW_DEVICE_NAME2"\n")
343 // OPEN THE SPACEWIRE LINK
344 fd = open(GRSPW_DEVICE_NAME2, O_RDWR);
345 if (fd<0) exit(0);
346 // SPACEWIRE_IOCTRL_SET_RMAPEN
347 ioctl(fd, SPACEWIRE_IOCTRL_SET_RMAPEN, 1);
348 if (errno == RTEMS_IO_ERROR) exit(0);
349 // SPACEWIRE_IOCTRL_START
350 while(1) {
351 if (ioctl(fd, SPACEWIRE_IOCTRL_START, 0) == -1) {
352 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_START\n")
353 sched_yield();
354 }
355 else break;
356 }
357 PRINTF("Open "GRSPW_DEVICE_NAME2" successfully\n")
358
359 /* Make driver use the default timings as given by HW when reset */
360 #if 0
361 /* make driver calculate timings from system clock */
362 if ( ioctl(fd,SPACEWIRE_IOCTRL_SET_COREFREQ,0) == -1 ){
363 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_COREFREQ, errno: %d\n",errno)
364 exit(0);
365 }
366
367 /* make driver calculate timings from 40MHz spacewire clock */
368 if ( ioctl(fd,SPACEWIRE_IOCTRL_SET_COREFREQ,40000) == -1 ){
369 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_COREFREQ, errno: %d\n",errno)
370 exit(0);
371 }
372 #endif
373 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) {
374 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n")
375 exit(0);
376 }
377 PRINTF(" Checking initial configuration for Spacewire 2 ****\n")
378 print_config(config);
379 PRINTF("config checked\n")
380
381 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_NODEADDR, NODE_ADR_RX) == -1) {
382 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_NODEADDR\n")
383 exit(0);
384 }
385 PRINTF("SPACEWIRE_IOCTRL_SET_NODEADDR\n")
386
387 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_RXBLOCK, 1) == -1) {
388 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_RXBLOCK\n");
389 exit(0);
390 }
391 PRINTF("SPACEWIRE_IOCTRL_SET_RXBLOCK\n")
392 PRINTF("Trying to bring link up\n")
393 PRINTF("Link is up, Changing speed\n")
394
395 if (ioctl(fd, SPACEWIRE_IOCTRL_SET_CLKDIV, 0) == -1) {
396 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_SET_CLKDIV\n")
397 exit(0);
398 }
399
400 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_CONFIG, config) == -1) {
401 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_CONFIG\n")
402 exit(0);
403 }
404 print_config(config);
405
406 if (ioctl(fd, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &(lstatus)) == -1) {
407 PRINTF("ioctl failed: SPACEWIRE_IOCTRL_GET_LINK_STATUS\n")
408 exit(0);
409 }
410 PRINTF1("Spacewire link 2 is in %s state\n", link_status(lstatus))
411
412 while(1){
413 printf("-------------- Receiving Initiator ----------------\n");
414 tmp = 500;
415 len = read(fd, rx_pkt, tmp);
416 if ( len <= 0 ){
417 printf("Read Failed, errno: %d, ret: %d\n",errno,len);
418 sleep(1);
419 continue;
420 }
421
422 /* handle message */
423 printf("Got Message of length %d, to address %d\n",len,rx_pkt[0]);
424 printf("Message data: [ 0x%x 0x%x ...] (%s)\n",rx_pkt[1],rx_pkt[2],&rx_pkt[0]);
425 }
426 close(fd);
427 }
428
429 #endif
430
431 /* =========================================================
432 event task */
433
434 void print_config(spw_config *cnf)
435 {
436 printf("\n");
437 printf(" ******** CONFIG ******** \n");
438 printf("Node Address: %i\n", cnf->nodeaddr);
439 printf("Destination Key: %i\n", cnf->destkey);
440 printf("Clock Divider: %i\n", cnf->clkdiv);
441 printf("Rx Maximum Packet: %i\n", cnf->rxmaxlen);
442 printf("Timer: %i\n", cnf->timer);
443 printf("Linkdisabled: %i\n", cnf->linkdisabled);
444 printf("Linkstart: %i\n", cnf->linkstart);
445 printf("Disconnect: %i\n", cnf->disconnect);
446 printf("Promiscuous: %i\n", cnf->promiscuous);
447 printf("RMAP Enable: %i\n", cnf->rmapen);
448 printf("RMAP Buffer Disable: %i\n", cnf->rmapbufdis);
449 printf("Check Rmap Error: %i\n", cnf->check_rmap_err);
450 printf("Remove Protocol ID: %i\n", cnf->rm_prot_id);
451 printf("Blocking Transmit: %i\n", cnf->tx_blocking);
452 printf("Disable when Link Error: %i\n", cnf->disable_err);
453 printf("Link Error IRQ Enabled: %i\n", cnf->link_err_irq);
454 printf("Link Error Event Task ID: %i\n", cnf->event_id);
455 printf("RMAP Available: %i\n", cnf->is_rmap);
456 printf("RMAP CRC Available: %i\n", cnf->is_rmapcrc);
457 printf("Unaligned Receive Buffer Support: %i\n", cnf->is_rxunaligned);
458 printf("\n");
459
460 }
461
462 void print_statistics(spw_stats *stats)
463 {
464 printf("\n");
465 printf(" ******** STATISTICS ******** \n");
466 printf("Transmit link errors: %i\n", stats->tx_link_err);
467 printf("Receiver RMAP header CRC errors: %i\n", stats->rx_rmap_header_crc_err);
468 printf("Receiver RMAP data CRC errors: %i\n", stats->rx_rmap_data_crc_err);
469 printf("Receiver EEP errors: %i\n", stats->rx_eep_err);
470 printf("Receiver truncation errors: %i\n", stats->rx_truncated);
471 printf("Parity errors: %i\n", stats->parity_err);
472 printf("Escape errors: %i\n", stats->escape_err);
473 printf("Credit errors: %i\n", stats->credit_err);
474 printf("Disconnect errors: %i\n", stats->disconnect_err);
475 printf("Write synchronization errors: %i\n", stats->write_sync_err);
476 printf("Early EOP/EEP: %i\n", stats->early_ep);
477 printf("Invalid Node Address: %i\n", stats->invalid_address);
478 printf("Packets transmitted: %i\n", stats->packets_sent);
479 printf("Packets received: %i\n", stats->packets_received);
480 }
481
482 void check_init_config(spw_config *cnf)
483 {
484 if (cnf->nodeaddr != 254) {
485 printf("Incorrect initial node address! Expected: %i Got: %i\n", 254, cnf->nodeaddr);
486 exit(0);
487 }
488 if (cnf->destkey != 0) {
489 printf("Incorrect initial destination key! Expected: %i Got: %i\n", 0, cnf->destkey);
490 exit(0);
491 }
492 if (cnf->rxmaxlen != 1024) {
493 printf("Incorrect initial Rx maximum packet length! Expected: %i Got: %i\n", 1024 , cnf->rxmaxlen);
494 exit(0);
495 }
496 if (cnf->linkdisabled != 0) {
497 printf("Incorrect initial linkdisabled value! Expected: %i Got: %i\n", 0, cnf->linkdisabled);
498 exit(0);
499 }
500 if (cnf->linkstart != 1) {
501 printf("Incorrect initial linkstart value! Expected: %i Got: %i\n", 1, cnf->linkstart);
502 exit(0);
503 }
504 if (cnf->promiscuous != 0) {
505 printf("Incorrect initial promiscuous mode value! Expected: %i Got: %i\n", 0, cnf->promiscuous);
506 exit(0);
507 }
508 if (cnf->check_rmap_err != 0) {
509 printf("Incorrect initial check rmap error value! Expected: %i Got: %i\n", 0, cnf->check_rmap_err);
510 exit(0);
511 }
512 if (cnf->rm_prot_id != 0) {
513 printf("Incorrect initial remove protocol id value! Expected: %i Got: %i\n", 0, cnf->rm_prot_id);
514 exit(0);
515 }
516 if (cnf->tx_blocking != 0) {
517 printf("Incorrect initial tx blocking! Expected: %i Got: %i\n", 0, cnf->tx_blocking);
518 exit(0);
519 }
520 if (cnf->disable_err != 0) {
521 printf("Incorrect initial disable when link error value! Expected: %i Got: %i\n", 0, cnf->disable_err);
522 exit(0);
523 }
524 if (cnf->link_err_irq != 0) {
525 printf("Incorrect initial link error enable value! Expected: %i Got: %i\n", 0, cnf->link_err_irq);
526 exit(0);
527 }
528 if (cnf->event_id != 0) {
529 printf("Incorrect initial event id! Expected: %i Got: %i\n", 0, cnf->event_id);
530 exit(0);
531 }
532 }
533
534 char *link_status(int status)
535 {
536 return lstates[status];
537
538 }
General Comments 0
You need to be logged in to leave comments. Login now