From 981e11216a3e1534a403c6844b06f164480c3ff9 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 4 Nov 2017 14:51:30 +0000 Subject: [PATCH] Various fixes after recent changes. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10934 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/STM32/RT-STM32-LWIP-FATFS-USB/main.c | 6 ++--- os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c | 2 +- os/various/lwip_bindings/arch/sys_arch.c | 18 +++++++------ os/various/lwip_bindings/lwipthread.c | 2 +- os/various/lwip_bindings/lwipthread.h | 2 +- os/various/shell/shell_cmd.c | 28 +++++++++++++++++--- 6 files changed, 41 insertions(+), 17 deletions(-) diff --git a/demos/STM32/RT-STM32-LWIP-FATFS-USB/main.c b/demos/STM32/RT-STM32-LWIP-FATFS-USB/main.c index 38852d11a..0eaa80c40 100644 --- a/demos/STM32/RT-STM32-LWIP-FATFS-USB/main.c +++ b/demos/STM32/RT-STM32-LWIP-FATFS-USB/main.c @@ -80,7 +80,7 @@ static void tmrfunc(void *p) { chEvtBroadcastI(&removed_event); } } - chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, bbdp); + chVTSetI(&tmr, TIME_MS2I(POLLING_DELAY), tmrfunc, bbdp); chSysUnlockFromISR(); } @@ -97,7 +97,7 @@ static void tmr_init(void *p) { chEvtObjectInit(&removed_event); chSysLock(); cnt = POLLING_INTERVAL; - chVTSetI(&tmr, MS2ST(POLLING_DELAY), tmrfunc, p); + chVTSetI(&tmr, TIME_MS2I(POLLING_DELAY), tmrfunc, p); chSysUnlock(); } @@ -333,6 +333,6 @@ int main(void) { "shell", NORMALPRIO + 1, shellThread, (void *)&shell_cfg1); } - chEvtDispatch(evhndl, chEvtWaitOneTimeout(ALL_EVENTS, MS2ST(500))); + chEvtDispatch(evhndl, chEvtWaitOneTimeout(ALL_EVENTS, TIME_MS2I(500))); } } diff --git a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c index 6fd212d86..60127598a 100644 --- a/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c +++ b/os/hal/ports/STM32/LLD/SDMMCv1/hal_sdc_lld.c @@ -528,7 +528,7 @@ void sdc_lld_start_clk(SDCDriver *sdcp) { sdcp->sdmmc->CLKCR |= SDMMC_CLKCR_CLKEN; /* Clock activation delay.*/ - osalThreadSleep(OSAL_MS2ST(STM32_SDC_SDMMC_CLOCK_DELAY)); + osalThreadSleep(OSAL_MS2I(STM32_SDC_SDMMC_CLOCK_DELAY)); } /** diff --git a/os/various/lwip_bindings/arch/sys_arch.c b/os/various/lwip_bindings/arch/sys_arch.c index 13590fd98..8e0f56ea5 100644 --- a/os/various/lwip_bindings/arch/sys_arch.c +++ b/os/various/lwip_bindings/arch/sys_arch.c @@ -101,18 +101,19 @@ void sys_sem_signal_S(sys_sem_t *sem) { } u32_t sys_arch_sem_wait(sys_sem_t *sem, u32_t timeout) { - systime_t tmo, start, remaining; + systime_t start; + sysinterval_t tmo, remaining; osalSysLock(); - tmo = timeout > 0 ? MS2ST((systime_t)timeout) : TIME_INFINITE; + tmo = timeout > 0 ? TIME_MS2I((time_msecs_t)timeout) : TIME_INFINITE; start = osalOsGetSystemTimeX(); if (chSemWaitTimeoutS(*sem, tmo) != MSG_OK) { osalSysUnlock(); return SYS_ARCH_TIMEOUT; } - remaining = osalOsGetSystemTimeX() - start; + remaining = chTimeDiffX(start, osalOsGetSystemTimeX()); osalSysUnlock(); - return (u32_t)ST2MS(remaining); + return (u32_t)TIME_I2MS(remaining); } int sys_sem_valid(sys_sem_t *sem) { @@ -173,18 +174,19 @@ err_t sys_mbox_trypost(sys_mbox_t *mbox, void *msg) { } u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout) { - systime_t tmo, start, remaining; + systime_t start; + sysinterval_t tmo, remaining; osalSysLock(); - tmo = timeout > 0 ? MS2ST((systime_t)timeout) : TIME_INFINITE; + tmo = timeout > 0 ? TIME_MS2I((time_msecs_t)timeout) : TIME_INFINITE; start = osalOsGetSystemTimeX(); if (chMBFetchTimeoutS(*mbox, (msg_t *)msg, tmo) != MSG_OK) { osalSysUnlock(); return SYS_ARCH_TIMEOUT; } - remaining = osalOsGetSystemTimeX() - start; + remaining = chTimeDiffX(start, osalOsGetSystemTimeX()); osalSysUnlock(); - return (u32_t)ST2MS(remaining); + return (u32_t)TIME_I2MS(remaining); } u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg) { diff --git a/os/various/lwip_bindings/lwipthread.c b/os/various/lwip_bindings/lwipthread.c index df70dd021..5a7b3d732 100644 --- a/os/various/lwip_bindings/lwipthread.c +++ b/os/various/lwip_bindings/lwipthread.c @@ -129,7 +129,7 @@ static err_t low_level_output(struct netif *netif, struct pbuf *p) { MACTransmitDescriptor td; (void)netif; - if (macWaitTransmitDescriptor(ÐD1, &td, MS2ST(LWIP_SEND_TIMEOUT)) != MSG_OK) + if (macWaitTransmitDescriptor(ÐD1, &td, TIME_MS2I(LWIP_SEND_TIMEOUT)) != MSG_OK) return ERR_TIMEOUT; #if ETH_PAD_SIZE diff --git a/os/various/lwip_bindings/lwipthread.h b/os/various/lwip_bindings/lwipthread.h index 61eb1b2dd..ae72ccb74 100644 --- a/os/various/lwip_bindings/lwipthread.h +++ b/os/various/lwip_bindings/lwipthread.h @@ -65,7 +65,7 @@ * @brief Link poll interval. */ #if !defined(LWIP_LINK_POLL_INTERVAL) || defined(__DOXYGEN__) -#define LWIP_LINK_POLL_INTERVAL S2ST(5) +#define LWIP_LINK_POLL_INTERVAL TIME_S2I(5) #endif /** diff --git a/os/various/shell/shell_cmd.c b/os/various/shell/shell_cmd.c index cf350ff4d..63a433e0c 100644 --- a/os/various/shell/shell_cmd.c +++ b/os/various/shell/shell_cmd.c @@ -32,6 +32,7 @@ #if (SHELL_CMD_TEST_ENABLED == TRUE) || defined(__DOXYGEN__) #include "rt_test_root.h" +#include "oslib_test_root.h" #endif /*===========================================================================*/ @@ -171,17 +172,38 @@ static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) { #endif #if (SHELL_CMD_TEST_ENABLED == TRUE) || defined(__DOXYGEN__) +static THD_FUNCTION(test_rt, arg) { + BaseSequentialStream *chp = (BaseSequentialStream *)arg; + test_execute(chp, &rt_test_suite); +} + +static THD_FUNCTION(test_oslib, arg) { + BaseSequentialStream *chp = (BaseSequentialStream *)arg; + test_execute(chp, &oslib_test_suite); +} + static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) { thread_t *tp; + tfunc_t tfp; (void)argv; - if (argc > 0) { - shellUsage(chp, "test"); + if (argc != 1) { + shellUsage(chp, "test rt|oslib"); + return; + } + if (!strcmp(argv[0], "rt")) { + tfp = test_rt; + } + else if (!strcmp(argv[0], "oslib")) { + tfp = test_oslib; + } + else { + shellUsage(chp, "test rt|oslib"); return; } tp = chThdCreateFromHeap(NULL, SHELL_CMD_TEST_WA_SIZE, "test", chThdGetPriorityX(), - (tfunc_t)test_execute, chp); + tfp, chp); if (tp == NULL) { chprintf(chp, "out of memory"SHELL_NEWLINE_STR); return;