Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
Compact Universal Timing Endpoint based on White Rabbit
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Compact Universal Timing Endpoint based on White Rabbit
Commits
dffc800f
Commit
dffc800f
authored
Nov 11, 2014
by
Qiang Du
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove trailing spaces in eb-*.c
parent
360ce693
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
185 additions
and
185 deletions
+185
-185
eb-console.c
tools/eb-console.c
+20
-20
eb-flash.c
tools/eb-flash.c
+147
-147
eb-info.c
tools/eb-info.c
+18
-18
No files found.
tools/eb-console.c
View file @
dffc800f
/** @file eb-info.c
* @brief Report the contents of an FPGA using Etherbone.
*
* Copyright (C) 2013 GSI Helmholtz Centre for Heavy Ion Research GmbH
* Copyright (C) 2013 GSI Helmholtz Centre for Heavy Ion Research GmbH
*
* A complete skeleton of an application using the Etherbone library.
*
...
...
@@ -17,7 +17,7 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************
...
...
@@ -69,12 +69,12 @@ int main(int argc, char** argv) {
eb_data_t
rx_data
[
BATCH_SIZE
],
tx_data
,
done
;
eb_cycle_t
cycle
;
char
byte
;
/* Default arguments */
program
=
argv
[
0
];
error
=
0
;
i
=
-
1
;
/* Process the command-line arguments */
error
=
0
;
while
((
opt
=
getopt
(
argc
,
argv
,
"i:h"
))
!=
-
1
)
{
...
...
@@ -98,24 +98,24 @@ int main(int argc, char** argv) {
error
=
1
;
}
}
if
(
error
)
return
1
;
if
(
optind
+
1
!=
argc
)
{
fprintf
(
stderr
,
"%s: expecting three non-optional arguments: <proto/host/port>
\n
"
,
program
);
return
1
;
}
if
((
status
=
eb_socket_open
(
EB_ABI_CODE
,
0
,
EB_DATAX
|
EB_ADDRX
,
&
socket
))
!=
EB_OK
)
die
(
"eb_socket_open"
,
status
);
if
((
status
=
eb_device_open
(
socket
,
argv
[
optind
],
EB_DATAX
|
EB_ADDRX
,
3
,
&
device
))
!=
EB_OK
)
die
(
argv
[
optind
],
status
);
c
=
sizeof
(
sdb
)
/
sizeof
(
struct
sdb_device
);
if
((
status
=
eb_sdb_find_by_identity
(
device
,
CERN_ID
,
UART_ID
,
&
sdb
[
0
],
&
c
))
!=
EB_OK
)
die
(
"eb_sdb_find_by_identity"
,
status
);
if
(
i
==
-
1
)
{
if
(
c
!=
1
)
{
fprintf
(
stderr
,
"%s: found %d UARTs on that device; pick one with -i #
\n
"
,
program
,
c
);
...
...
@@ -128,11 +128,11 @@ int main(int argc, char** argv) {
fprintf
(
stderr
,
"%s: could not find UART #%d on that device (%d total)
\n
"
,
program
,
i
,
c
);
exit
(
1
);
}
printf
(
"Connected to uart at address %"
PRIx64
"
\n
"
,
sdb
[
i
].
sdb_component
.
addr_first
);
tx
=
sdb
[
i
].
sdb_component
.
addr_first
+
VUART_TX
;
rx
=
sdb
[
i
].
sdb_component
.
addr_first
+
VUART_RX
;
/* disable input buffering and echo */
tcgetattr
(
STDIN_FD
,
&
old
);
tcgetattr
(
STDIN_FD
,
&
tc
);
...
...
@@ -144,29 +144,29 @@ int main(int argc, char** argv) {
tc
.
c_cc
[
VTIME
]
=
0
;
tcflush
(
STDIN_FD
,
TCIFLUSH
);
tcsetattr
(
STDIN_FD
,
TCSANOW
,
&
tc
);
flags
=
fcntl
(
STDIN_FD
,
F_GETFL
,
0
);
flags
|=
O_NONBLOCK
;
fcntl
(
STDIN_FD
,
F_SETFL
,
flags
);
/* be lazy and just poll for now */
busy
=
0
;
while
(
1
)
{
if
(
!
busy
)
usleep
(
10000
);
/* 10ms */
/* Poll for status */
eb_cycle_open
(
device
,
0
,
eb_block
,
&
cycle
);
eb_cycle_read
(
cycle
,
rx
,
EB_BIG_ENDIAN
|
EB_DATA32
,
&
rx_data
[
0
]);
eb_cycle_read
(
cycle
,
tx
,
EB_BIG_ENDIAN
|
EB_DATA32
,
&
done
);
eb_cycle_close
(
cycle
);
/* Bulk read anything extra */
if
((
rx_data
[
0
]
&
0x100
)
!=
0
)
{
eb_cycle_open
(
device
,
0
,
eb_block
,
&
cycle
);
for
(
i
=
1
;
i
<
BATCH_SIZE
;
++
i
)
eb_cycle_read
(
cycle
,
rx
,
EB_BIG_ENDIAN
|
EB_DATA32
,
&
rx_data
[
i
]);
eb_cycle_close
(
cycle
);
for
(
i
=
0
;
i
<
BATCH_SIZE
;
++
i
)
{
if
((
rx_data
[
i
]
&
0x100
)
==
0
)
continue
;
byte
=
rx_data
[
i
]
&
0xFF
;
...
...
@@ -174,9 +174,9 @@ int main(int argc, char** argv) {
}
fflush
(
stdout
);
}
busy
=
busy
&&
(
done
&
0x100
)
==
0
;
if
(
!
busy
&&
read
(
STDIN_FD
,
&
byte
,
1
)
==
1
)
{
if
(
byte
==
3
)
{
/* control-C */
tcsetattr
(
STDIN_FD
,
TCSANOW
,
&
old
);
...
...
@@ -187,6 +187,6 @@ int main(int argc, char** argv) {
busy
=
1
;
}
}
return
0
;
}
tools/eb-flash.c
View file @
dffc800f
This diff is collapsed.
Click to expand it.
tools/eb-info.c
View file @
dffc800f
/** @file eb-info.c
* @brief Report the contents of an FPGA using Etherbone.
*
* Copyright (C) 2013 GSI Helmholtz Centre for Heavy Ion Research GmbH
* Copyright (C) 2013 GSI Helmholtz Centre for Heavy Ion Research GmbH
*
* A complete skeleton of an application using the Etherbone library.
*
...
...
@@ -17,7 +17,7 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************
...
...
@@ -58,11 +58,11 @@ int main(int argc, char** argv) {
eb_device_t
device
;
eb_cycle_t
cycle
;
eb_data_t
*
data
;
/* Default arguments */
program
=
argv
[
0
];
error
=
0
;
/* Process the command-line arguments */
error
=
0
;
while
((
opt
=
getopt
(
argc
,
argv
,
"h"
))
!=
-
1
)
{
...
...
@@ -79,20 +79,20 @@ int main(int argc, char** argv) {
error
=
1
;
}
}
if
(
error
)
return
1
;
if
(
optind
+
1
!=
argc
)
{
fprintf
(
stderr
,
"%s: expecting three non-optional arguments: <proto/host/port>
\n
"
,
program
);
return
1
;
}
if
((
status
=
eb_socket_open
(
EB_ABI_CODE
,
0
,
EB_DATAX
|
EB_ADDRX
,
&
socket
))
!=
EB_OK
)
die
(
"eb_socket_open"
,
status
);
if
((
status
=
eb_device_open
(
socket
,
argv
[
optind
],
EB_DATAX
|
EB_ADDRX
,
3
,
&
device
))
!=
EB_OK
)
die
(
argv
[
optind
],
status
);
c
=
1
;
if
((
status
=
eb_sdb_find_by_identity
(
device
,
GSI_ID
,
ROM_ID
,
&
sdb
,
&
c
))
!=
EB_OK
)
die
(
"eb_sdb_find_by_identity"
,
status
);
...
...
@@ -100,27 +100,27 @@ int main(int argc, char** argv) {
fprintf
(
stderr
,
"Found %d ROM identifiers on that device
\n
"
,
c
);
exit
(
1
);
}
if
((
status
=
eb_cycle_open
(
device
,
0
,
0
,
&
cycle
))
!=
EB_OK
)
die
(
"eb_cycle_open"
,
status
);
len
=
((
sdb
.
sdb_component
.
addr_last
-
sdb
.
sdb_component
.
addr_first
)
+
1
)
/
4
;
if
((
data
=
malloc
(
len
*
sizeof
(
eb_data_t
)))
==
0
)
die
(
"malloc"
,
EB_OOM
);
for
(
i
=
0
;
i
<
len
;
++
i
)
eb_cycle_read
(
cycle
,
sdb
.
sdb_component
.
addr_first
+
i
*
4
,
EB_DATA32
|
EB_BIG_ENDIAN
,
&
data
[
i
]);
if
((
status
=
eb_cycle_close
(
cycle
))
!=
EB_OK
)
die
(
"eb_cycle_close"
,
status
);
for
(
i
=
0
;
i
<
len
;
++
i
)
{
printf
(
"%c%c%c%c"
,
(
char
)(
data
[
i
]
>>
24
)
&
0xff
,
(
char
)(
data
[
i
]
>>
16
)
&
0xff
,
printf
(
"%c%c%c%c"
,
(
char
)(
data
[
i
]
>>
24
)
&
0xff
,
(
char
)(
data
[
i
]
>>
16
)
&
0xff
,
(
char
)(
data
[
i
]
>>
8
)
&
0xff
,
(
char
)(
data
[
i
]
)
&
0xff
);
}
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment