aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-04-06 11:46:19 -0700
committerJosh Blum <josh@joshknows.com>2010-04-06 11:46:19 -0700
commit9a0087da6c58e93fac6050c4541b1683a02b2d5b (patch)
tree495decb3c7a5dd0f1c6dac2b116c1f12859907be /firmware
parent275b29e07f97cdf638ecb22c602d26b7d340547a (diff)
parent8ee3d7200169983e7a20409ed5e8c37907fe66e1 (diff)
downloaduhd-9a0087da6c58e93fac6050c4541b1683a02b2d5b.tar.gz
uhd-9a0087da6c58e93fac6050c4541b1683a02b2d5b.tar.bz2
uhd-9a0087da6c58e93fac6050c4541b1683a02b2d5b.zip
Merge branch 'master' of git@ettus.sourcerepo.com:ettus/uhd into rfx
Diffstat (limited to 'firmware')
-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;