git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@226 35acf78f-673a-0410-8e92-d51de3d6d3f4

master
gdisirio 2008-03-12 15:23:10 +00:00
parent 1422b47cc4
commit 9d69c31143
2 changed files with 7 additions and 14 deletions

View File

@ -62,8 +62,8 @@ AVR-AT90CANx-GCC - Port on AVR AT90CAN128, not tested on hardware yet.
*** 0.6.1 ***
- Removed some redundant checks from the scheduler code: improved threads
flyback time.
- Huge scheduler speed improvement obtained by removing the 2nd parameter to
flyback time, reduced interrupts service time.
- Nice scheduler speed improvement obtained by removing the 2nd parameter to
the chSchReadyI() API and manually assigning the message value only where
is really needed (very few points in the code).
- Removed the -falign-functions=16 option from the AT91SAM7X demo makefiles,

View File

@ -55,12 +55,11 @@ void chSchInit(void) {
/* NOTE: it is inlined in this module only.*/
INLINE Thread *chSchReadyI(Thread *tp) {
#else
void chSchReadyI(Thread *tp) {
Thread *chSchReadyI(Thread *tp) {
#endif
Thread *cp;
tp->p_state = PRREADY;
// tp->p_rdymsg = RDY_OK;
cp = rlist.r_queue.p_next;
while (cp->p_prio >= tp->p_prio)
cp = cp->p_next;
@ -100,7 +99,7 @@ static void wakeup(void *p) {
if (((Thread *)p)->p_state == PRWTSEM)
chSemFastSignalI(((Thread *)p)->p_wtsemp);
#endif
chSchReadyI(p)->p_rdymsg = RDY_TIMEOUT;;
chSchReadyI(p)->p_rdymsg = RDY_TIMEOUT;
}
/**
@ -185,16 +184,10 @@ void chSchRescheduleS(void) {
* immediatly else \p FALSE.
*/
bool_t chSchRescRequiredI(void) {
tprio_t p1 = firstprio(&rlist.r_queue);
tprio_t p2 = currp->p_prio;
if (rlist.r_preempt) {
if (firstprio(&rlist.r_queue) <= currp->p_prio)
return FALSE;
}
else { /* Time quantum elapsed. */
if (firstprio(&rlist.r_queue) < currp->p_prio)
return FALSE;
}
return TRUE;
return rlist.r_preempt ? p1 > p2 : p1 >= p2;
}
/** @} */