diff options
author | Josh Blum <josh@joshknows.com> | 2010-04-12 13:55:57 +0000 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-04-12 13:55:57 +0000 |
commit | 615f7081d8361643031437ac31bb4a44e41839e8 (patch) | |
tree | f092991d1f3ff97fa53d9373c90e358105c4ff79 /firmware/microblaze | |
parent | 50780640a1b9ed6abb2abebbc727ce19711fbcb4 (diff) | |
parent | 34854116a4fd287fe681222f2b7a881692e418d3 (diff) | |
download | uhd-615f7081d8361643031437ac31bb4a44e41839e8.tar.gz uhd-615f7081d8361643031437ac31bb4a44e41839e8.tar.bz2 uhd-615f7081d8361643031437ac31bb4a44e41839e8.zip |
Merge branch 'master' into usrp_e
Diffstat (limited to 'firmware/microblaze')
-rw-r--r-- | firmware/microblaze/apps/txrx.c | 34 |
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; |