Buongiorno. Io devo realizzare delle task periodiche con il micro MPC5604P della Freescale. Come posso configurare il file oil per ottenere ad esempio il risultato di far lampeggiare un led ogni secondo? Quali sono gli esempi presenti che devo seguire?
Grazie
Task periodiche PPC
Moderator: paolo.gai
Re: Task periodiche PPC
Ciao,
ci sono gli esempi Task, Resource ed Event che forniscono alcuni esempi su come fare task periodici!
Paolo
ci sono gli esempi Task, Resource ed Event che forniscono alcuni esempi su come fare task periodici!
Paolo
Re: Task periodiche PPC
Ho provato a compilare le quattro demo per e200z7 definendo la mia cpu (e200z0) ma mi dà che alcune funzioni non sono definite.
Infatti in ee_files\pkg\cpu\e200zx\inc\ee_cpu.h c'è scritto che e200z0 non ha timer interni e quindi non sono definite alcune funzioni.
Allora ho provato a definire una task e un kernel in questa maniera:
KERNEL_TYPE = FP;
};
TASK Task1 {
PRIORITY = 0x01;
ACTIVATION = 1;
SCHEDULE = FULL;
REL_DEADLINE = "10.5ms";
AUTOSTART = TRUE {APPMODE = "periodic"; };
};
ma mi dà errori del tipo:
..\..\Evidence\EE_160~1\eclipse\plugins\CO9B78~1.201\ee_files\pkg\cpu\e200zx\src\ee_irq.c:55: illegal use of 'inline'
..\..\Evidence\EE_160~1\eclipse\plugins\CO9B78~1.201\ee_files\pkg\cpu\e200zx\src\ee_irq.c:56: declaration syntax
error.
Quest'ultimo errore me lo dà anche semplicemente compilando l'esempio così com'è e definendo il kernel FP
C'è la possibilità di settare una task periodica per la cpu e200z0 senza usare allarmi, counter o eventi?
Infatti in ee_files\pkg\cpu\e200zx\inc\ee_cpu.h c'è scritto che e200z0 non ha timer interni e quindi non sono definite alcune funzioni.
Allora ho provato a definire una task e un kernel in questa maniera:
KERNEL_TYPE = FP;
};
TASK Task1 {
PRIORITY = 0x01;
ACTIVATION = 1;
SCHEDULE = FULL;
REL_DEADLINE = "10.5ms";
AUTOSTART = TRUE {APPMODE = "periodic"; };
};
ma mi dà errori del tipo:
..\..\Evidence\EE_160~1\eclipse\plugins\CO9B78~1.201\ee_files\pkg\cpu\e200zx\src\ee_irq.c:55: illegal use of 'inline'
..\..\Evidence\EE_160~1\eclipse\plugins\CO9B78~1.201\ee_files\pkg\cpu\e200zx\src\ee_irq.c:56: declaration syntax
error.
Quest'ultimo errore me lo dà anche semplicemente compilando l'esempio così com'è e definendo il kernel FP
C'è la possibilità di settare una task periodica per la cpu e200z0 senza usare allarmi, counter o eventi?
Re: Task periodiche PPC
- Per definire un task periodico sullo z0 devi programmare un timer ed agganciarci una activatetask o un CounterTick+allarme. gli esempi task, resource, event usano esattamente questo metodo.
- la demo è stata creata per lo z7 e non per lo z0, per cui va sicuramente riadattata per funzionare sullo z0
- REL_DEADLINE riguarda il kernel EDF, mentre il KERNEL da te citato nell'esempio è un FP. Di fatto la cosa è ignorata. Se sei partito da un esempio EDF allora si devi definire un timer interno per il riferimento temporale. Se usi una conformance class osek non ce ne è bisogno (i demo task, resource, event che consiglio NON usano EDF!)
Ciao,
Paolo
- la demo è stata creata per lo z7 e non per lo z0, per cui va sicuramente riadattata per funzionare sullo z0
- REL_DEADLINE riguarda il kernel EDF, mentre il KERNEL da te citato nell'esempio è un FP. Di fatto la cosa è ignorata. Se sei partito da un esempio EDF allora si devi definire un timer interno per il riferimento temporale. Se usi una conformance class osek non ce ne è bisogno (i demo task, resource, event che consiglio NON usano EDF!)
Ciao,
Paolo