aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authormichael-west <michael.west@ettus.com>2016-08-15 11:21:57 -0700
committerMartin Braun <martin.braun@ettus.com>2016-09-02 11:10:46 -0700
commit7ea624b179cfb2cd6204be4dc128ba7ef07f4546 (patch)
tree4b2e34bea964b9e2ff2d1429301d70171f49c90c /firmware
parentb229a1972c421c90420363ce1f93be91cc9bd2aa (diff)
downloaduhd-7ea624b179cfb2cd6204be4dc128ba7ef07f4546.tar.gz
uhd-7ea624b179cfb2cd6204be4dc128ba7ef07f4546.tar.bz2
uhd-7ea624b179cfb2cd6204be4dc128ba7ef07f4546.zip
X300: GPSDO fixes
- Optimize writes so full 32-bit words are written at a time - Simplify UART so it does not strip or add characters
Diffstat (limited to 'firmware')
-rw-r--r--firmware/usrp3/x300/x300_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/firmware/usrp3/x300/x300_main.c b/firmware/usrp3/x300/x300_main.c
index 3b812a2c4..125459583 100644
--- a/firmware/usrp3/x300/x300_main.c
+++ b/firmware/usrp3/x300/x300_main.c
@@ -345,12 +345,12 @@ static void handle_uarts(void)
static uint32_t rxoffset = 0;
for (int rxch = wb_uart_getc(UART0_BASE); rxch != -1; rxch = wb_uart_getc(UART0_BASE))
{
- rxoffset++;
const int shift = ((rxoffset%4) * 8);
static uint32_t rxword32 = 0;
if (shift == 0) rxword32 = 0;
rxword32 |= ((uint32_t) rxch & 0xFF) << shift;
rxpool[(rxoffset/4) % NUM_POOL_WORDS32] = rxword32;
+ rxoffset++;
shmem[X300_FW_SHMEM_UART_RX_INDEX] = rxoffset;
}