From 3b83cac49f101faeed380441c1130900a7d2cde9 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sun, 23 Nov 2014 10:25:09 +0100 Subject: [PATCH] RoCoN: test command to report measured LXPWR cycle period. Signed-off-by: Pavel Pisa --- sw/app/rocon/appl_tests.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/sw/app/rocon/appl_tests.c b/sw/app/rocon/appl_tests.c index 1b3adc8..e2deb07 100644 --- a/sw/app/rocon/appl_tests.c +++ b/sw/app/rocon/appl_tests.c @@ -279,6 +279,11 @@ int cmd_do_testsdram(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[]) volatile void *lxpwr_rx_data_hist_buff; volatile void *lxpwr_rx_data_hist_buff_end; +uint32_t lxpwr_rx_last_irq; +uint32_t lxpwr_rx_cycle_time; +uint32_t lxpwr_rx_irq_latency; +uint32_t lxpwr_rx_irq_latency_max; + IRQ_HANDLER_FNC(lxpwr_rx_done_isr) { uint32_t ir; @@ -290,6 +295,9 @@ IRQ_HANDLER_FNC(lxpwr_rx_done_isr) cr0 = LXPWR_RX_TIM->CR0; cr1 = LXPWR_RX_TIM->CR1; + lxpwr_rx_cycle_time = cr1 - lxpwr_rx_last_irq; + lxpwr_rx_last_irq = cr1; + hal_gpio_set_value(T2MAT0_PIN, 1); hal_gpio_set_value(T2MAT1_PIN, 0); hal_gpio_set_value(T2MAT0_PIN, 0); @@ -310,6 +318,10 @@ IRQ_HANDLER_FNC(lxpwr_rx_done_isr) } lxpwr_rx_data_hist_buff = pbuf; } + + lxpwr_rx_irq_latency = LXPWR_RX_TIM->TC - cr1; + if (lxpwr_rx_irq_latency > lxpwr_rx_irq_latency_max) + lxpwr_rx_irq_latency_max = lxpwr_rx_irq_latency; } return IRQ_HANDLED; @@ -362,6 +374,14 @@ int cmd_do_testlxpwrrx(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[ return 0; } +int cmd_do_testlxpwrstat(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[]) +{ + printf("lxpwrrx period %ld latency %ld max %ld\n", + (long)lxpwr_rx_cycle_time, (long)lxpwr_rx_irq_latency, + (long)lxpwr_rx_irq_latency_max); + return 0; +} + cmd_des_t const cmd_des_test_memusage = {0, 0, "memusage", "report memory usage", cmd_do_test_memusage, { @@ -424,6 +444,11 @@ cmd_des_t const cmd_des_testlxpwrrx = {0, 0, cmd_do_testlxpwrrx, {(void *)0} }; +cmd_des_t const cmd_des_testlxpwrstat = {0, 0, + "testlxpwrstat", "lxpwr interrupt statistic", + cmd_do_testlxpwrstat, {(void *)0} + }; + cmd_des_t const *const cmd_appl_tests[] = { &cmd_des_test_memusage, @@ -439,5 +464,6 @@ cmd_des_t const *const cmd_appl_tests[] = &cmd_des_testsdram, #endif /*SDRAM_BASE*/ &cmd_des_testlxpwrrx, + &cmd_des_testlxpwrstat, NULL }; -- 2.39.2