Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
M
Mock Turtle
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
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
Mock Turtle
Commits
0b0a7f18
Commit
0b0a7f18
authored
Aug 10, 2015
by
Federico Vaga
Browse files
Options
Browse Files
Download
Plain Diff
wrtd: fix software trigger generation on input side
parents
bc4af073
7c45952b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
20 deletions
+11
-20
rt-tdc.c
applications/wrtd/rt/tdc/rt-tdc.c
+10
-19
wrtd-in-config.c
applications/wrtd/tools/wrtd-in-config.c
+1
-1
No files found.
applications/wrtd/rt/tdc/rt-tdc.c
View file @
0b0a7f18
...
...
@@ -400,31 +400,22 @@ static inline void ctl_chan_get_state (uint32_t seq, struct wrnc_msg *ibuf)
static
inline
void
ctl_software_trigger
(
uint32_t
seq
,
struct
wrnc_msg
*
ibuf
)
{
struct
wrtd_trigger_message
*
msg
=
mq_map_out_buffer
(
1
,
WRTD_REMOTE_OUT_TDC
);
mq_claim
(
1
,
WRTD_REMOTE_OUT_TDC
);
/* assemble a trigger message on the spot */
msg
->
hdr
.
target_ip
=
0xffffffff
;
// broadcast
msg
->
hdr
.
target_port
=
0xebd0
;
// port
msg
->
hdr
.
target_offset
=
0x4000
;
// target EB slot
msg
->
transmit_seconds
=
lr_readl
(
WRN_CPU_LR_REG_TAI_SEC
);
msg
->
transmit_cycles
=
lr_readl
(
WRN_CPU_LR_REG_TAI_CYCLES
);
msg
->
count
=
1
;
struct
wr_timestamp
ts
;
/* and dumbly copy the trigger entry */
struct
wrtd_trigger_entry
ent
;
wrtd_msg_trigger_entry
(
ibuf
,
&
ent
);
ctl_ack
(
seq
);
ent
.
ts
.
seconds
=
lr_readl
(
WRN_CPU_LR_REG_TAI_SEC
);
ent
.
ts
.
ticks
=
lr_readl
(
WRN_CPU_LR_REG_TAI_CYCLES
);
ent
.
ts
.
frac
=
0
;
msg
->
triggers
[
0
]
=
ent
;
/* trigger entity ts from the host contains the delay.
So add to it the current time */
ts
.
seconds
=
lr_readl
(
WRN_CPU_LR_REG_TAI_SEC
);
ts
.
ticks
=
lr_readl
(
WRN_CPU_LR_REG_TAI_CYCLES
);
ts
.
frac
=
0
;
ts_add
(
&
ent
.
ts
,
&
ts
);
mq_send
(
1
,
WRTD_REMOTE_OUT_TDC
,
sizeof
(
struct
wrtd_trigger_message
)
/
4
);
// fixme
sent_packets
++
;
ctl_ack
(
seq
);
/* Send trigger */
send_trigger
(
&
ent
);
}
static
inline
void
ctl_chan_set_mode
(
uint32_t
seq
,
struct
wrnc_msg
*
ibuf
)
...
...
applications/wrtd/tools/wrtd-in-config.c
View file @
0b0a7f18
...
...
@@ -260,7 +260,7 @@ static int wrtd_cmd_sw_trigger(struct wrtd_node *wrtd, int input,
uint64_t
ts
;
int
ret
;
if
(
argc
!=
1
||
argv
[
0
]
==
NULL
)
{
if
(
argc
<
1
||
argv
[
0
]
==
NULL
)
{
fprintf
(
stderr
,
"Missing ID value.
\n
"
);
return
-
1
;
}
...
...
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