git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@52 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
509a27eaad
commit
779840691f
|
@ -4,7 +4,7 @@
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
PROJECT_NAME = ChibiOS/RT
|
PROJECT_NAME = ChibiOS/RT
|
||||||
PROJECT_NUMBER = "0.3.3 beta"
|
PROJECT_NUMBER = "0.3.4 beta"
|
||||||
OUTPUT_DIRECTORY = .
|
OUTPUT_DIRECTORY = .
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
|
|
|
@ -38,6 +38,11 @@ AVR-AT90CANx-GCC - Port on AVER AT90CAN128, not complete yet.
|
||||||
*** Releases ***
|
*** Releases ***
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
|
*** 0.3.4 ***
|
||||||
|
- Fixed a problem in chVTSetI().
|
||||||
|
- Modified chEvtWaitTimeout() to work correctly in the TIME_INFINITE
|
||||||
|
scenario.
|
||||||
|
|
||||||
*** 0.3.3 ***
|
*** 0.3.3 ***
|
||||||
- Modified the chVTSetI(), now for the "time" parameter can have value zero
|
- Modified the chVTSetI(), now for the "time" parameter can have value zero
|
||||||
with meaning "infinite". This allows all the APIs with timeout parameters
|
with meaning "infinite". This allows all the APIs with timeout parameters
|
||||||
|
|
|
@ -50,10 +50,9 @@ void chVTInit(void) {
|
||||||
*/
|
*/
|
||||||
void chVTSetI(VirtualTimer *vtp, t_time time, t_vtfunc vtfunc, void *par) {
|
void chVTSetI(VirtualTimer *vtp, t_time time, t_vtfunc vtfunc, void *par) {
|
||||||
|
|
||||||
vtp->vt_func = vtfunc;
|
|
||||||
vtp->vt_par = par;
|
vtp->vt_par = par;
|
||||||
|
|
||||||
if (time) {
|
if (time) {
|
||||||
|
vtp->vt_func = vtfunc;
|
||||||
VirtualTimer *p = dlist.dl_next;
|
VirtualTimer *p = dlist.dl_next;
|
||||||
while (p->vt_dtime < time) {
|
while (p->vt_dtime < time) {
|
||||||
time -= p->vt_dtime;
|
time -= p->vt_dtime;
|
||||||
|
@ -66,6 +65,8 @@ void chVTSetI(VirtualTimer *vtp, t_time time, t_vtfunc vtfunc, void *par) {
|
||||||
if (p != (VirtualTimer *)&dlist)
|
if (p != (VirtualTimer *)&dlist)
|
||||||
p->vt_dtime -= time;
|
p->vt_dtime -= time;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
vtp->vt_func = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -205,6 +205,7 @@ t_eventid chEvtWaitTimeout(t_eventmask ewmask,
|
||||||
t_time time) {
|
t_time time) {
|
||||||
t_eventid i;
|
t_eventid i;
|
||||||
t_eventmask m;
|
t_eventmask m;
|
||||||
|
t_msg msg;
|
||||||
|
|
||||||
chSysLock();
|
chSysLock();
|
||||||
|
|
||||||
|
@ -221,9 +222,10 @@ t_eventid chEvtWaitTimeout(t_eventmask ewmask,
|
||||||
currp->p_ewmask = ewmask;
|
currp->p_ewmask = ewmask;
|
||||||
chSchGoSleepS(PRWTEVENT);
|
chSchGoSleepS(PRWTEVENT);
|
||||||
if (!vt.vt_func) {
|
if (!vt.vt_func) {
|
||||||
|
t_msg msg = currp->p_rdymsg;
|
||||||
|
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
return RDY_TIMEOUT; // No need to read t_rdymsg value, it is a timeout.
|
return msg;
|
||||||
}
|
}
|
||||||
chVTResetI(&vt);
|
chVTResetI(&vt);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue