git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_16.1.x@8829 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
Giovanni Di Sirio 2016-02-06 10:31:24 +00:00
parent c3a9398423
commit d25a2b7e97
2 changed files with 19 additions and 16 deletions

View File

@ -99,18 +99,18 @@ 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;
u32_t time;
systime_t tmo, start, remaining;
osalSysLock();
tmo = timeout > 0 ? MS2ST((systime_t)timeout) : TIME_INFINITE;
time = (u32_t)ST2MS(osalOsGetSystemTimeX());
if (chSemWaitTimeoutS(*sem, tmo) != MSG_OK)
time = SYS_ARCH_TIMEOUT;
else
time = (u32_t)ST2MS(osalOsGetSystemTimeX()) - time;
start = osalOsGetSystemTimeX();
if (chSemWaitTimeoutS(*sem, tmo) != MSG_OK) {
osalSysUnlock();
return SYS_ARCH_TIMEOUT;
}
remaining = osalOsGetSystemTimeX() - start;
osalSysUnlock();
return time;
return (u32_t)ST2MS(remaining);
}
int sys_sem_valid(sys_sem_t *sem) {
@ -171,18 +171,18 @@ 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) {
u32_t time;
systime_t tmo;
systime_t tmo, start, remaining;
osalSysLock();
tmo = timeout > 0 ? MS2ST((systime_t)timeout) : TIME_INFINITE;
time = (u32_t)osalOsGetSystemTimeX();
if (chMBFetchS(*mbox, (msg_t *)msg, tmo) != MSG_OK)
time = SYS_ARCH_TIMEOUT;
else
time = (u32_t)ST2MS(osalOsGetSystemTimeX()) - time;
start = osalOsGetSystemTimeX();
if (chMBFetchS(*mbox, (msg_t *)msg, tmo) != MSG_OK) {
osalSysUnlock();
return SYS_ARCH_TIMEOUT;
}
remaining = osalOsGetSystemTimeX() - start;
osalSysUnlock();
return time;
return (u32_t)ST2MS(remaining);
}
u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg) {

View File

@ -72,6 +72,9 @@
*** Releases and Change Log ***
*****************************************************************************
*** 16.1.3 ***
- VAR: Fixed missing time convesion in lwIP arch module (bug #696, again).
*** 16.1.2 ***
- VAR: Fixed missing time convesion in lwIP arch module (bug #696).
- HAL: Fixed incorrect handling of TIME_IMMEDIATE in the HAL buffer queues