aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/microblaze
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-04-05 17:42:22 -0700
committerJosh Blum <josh@joshknows.com>2010-04-05 17:42:22 -0700
commite4f75a9271cc20702444641a3e8d442e12492c11 (patch)
treea9135bfa9d4ef5b648d861e7de9c7bf989867d2c /firmware/microblaze
parent9c1e7c5b8804a821e9a48908e7302327e4b9070d (diff)
parent97496ace66842f9d7529793b2b202be9abe156c3 (diff)
downloaduhd-e4f75a9271cc20702444641a3e8d442e12492c11.tar.gz
uhd-e4f75a9271cc20702444641a3e8d442e12492c11.tar.bz2
uhd-e4f75a9271cc20702444641a3e8d442e12492c11.zip
Merge branch 'rework' of git@ettus.sourcerepo.com:ettus/uhd
Diffstat (limited to 'firmware/microblaze')
-rw-r--r--firmware/microblaze/apps/txrx.c34
1 files changed, 29 insertions, 5 deletions
diff --git a/firmware/microblaze/apps/txrx.c b/firmware/microblaze/apps/txrx.c
index 39a503091..69a04d771 100644
--- a/firmware/microblaze/apps/txrx.c
+++ b/firmware/microblaze/apps/txrx.c
@@ -385,7 +385,7 @@ void handle_udp_ctrl_packet(
issue_stream_command(
(chain)? streaming_items_per_frame : num_samps, //nsamps
(ctrl_data_in->data.stream_cmd.now == 0)? false : true, //now
- chain, //chain
+ (ctrl_data_in->data.stream_cmd.chain == 0)? chain : true, //chain
ctrl_data_in->data.stream_cmd.secs,
ctrl_data_in->data.stream_cmd.ticks,
false
@@ -398,7 +398,7 @@ void handle_udp_ctrl_packet(
issue_stream_command(
(chain)? streaming_items_per_frame : num_samps, //nsamps
true, //now
- chain, //chain
+ (ctrl_data_in->data.stream_cmd.chain == 0)? chain : true, //chain
0, 0, //time does not matter
false
);
@@ -415,14 +415,38 @@ void handle_udp_ctrl_packet(
if (ctrl_data_in->data.poke_args.addr < 0xC000){
printf("error! tried to poke into 0x%x\n", ctrl_data_in->data.poke_args.addr);
}
- else{
- *((uint32_t *) ctrl_data_in->data.poke_args.addr) = ctrl_data_in->data.poke_args.data;
+ else switch(ctrl_data_in->data.poke_args.num_bytes){
+ case sizeof(uint32_t):
+ *((uint32_t *) ctrl_data_in->data.poke_args.addr) = (uint32_t)ctrl_data_in->data.poke_args.data;
+ break;
+
+ case sizeof(uint16_t):
+ *((uint16_t *) ctrl_data_in->data.poke_args.addr) = (uint16_t)ctrl_data_in->data.poke_args.data;
+ break;
+
+ case sizeof(uint8_t):
+ *((uint8_t *) ctrl_data_in->data.poke_args.addr) = (uint8_t)ctrl_data_in->data.poke_args.data;
+ break;
+
}
ctrl_data_out.id = USRP2_CTRL_ID_OMG_POKED_REGISTER_SO_BAD_DUDE;
break;
case USRP2_CTRL_ID_PEEK_AT_THIS_REGISTER_FOR_ME_BRO:
- ctrl_data_in->data.poke_args.data = *((uint32_t *) ctrl_data_in->data.poke_args.addr);
+ switch(ctrl_data_in->data.poke_args.num_bytes){
+ case sizeof(uint32_t):
+ ctrl_data_in->data.poke_args.data = *((uint32_t *) ctrl_data_in->data.poke_args.addr);
+ break;
+
+ case sizeof(uint16_t):
+ ctrl_data_in->data.poke_args.data = *((uint16_t *) ctrl_data_in->data.poke_args.addr);
+ break;
+
+ case sizeof(uint8_t):
+ ctrl_data_in->data.poke_args.data = *((uint8_t *) ctrl_data_in->data.poke_args.addr);
+ break;
+
+ }
ctrl_data_out.id = USRP2_CTRL_ID_WOAH_I_DEFINITELY_PEEKED_IT_DUDE;
break;