Task periodiche PPC

Forum relativo alle schede FLEX, ERIKA Enterprise, RT-Druid, ScicosLab, ...

Moderator: paolo.gai

Locked
MAX
Newbie
Posts: 4
Joined: Mon Nov 07, 2011 10:32 am

Task periodiche PPC

Post by MAX » Thu Nov 17, 2011 10:59 am

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

paolo.gai
Administrator
Posts: 875
Joined: Thu Dec 07, 2006 12:11 pm

Re: Task periodiche PPC

Post by paolo.gai » Thu Nov 17, 2011 11:15 am

Ciao,

ci sono gli esempi Task, Resource ed Event che forniscono alcuni esempi su come fare task periodici!

Paolo

MAX
Newbie
Posts: 4
Joined: Mon Nov 07, 2011 10:32 am

Re: Task periodiche PPC

Post by MAX » Thu Nov 17, 2011 4:03 pm

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?

paolo.gai
Administrator
Posts: 875
Joined: Thu Dec 07, 2006 12:11 pm

Re: Task periodiche PPC

Post by paolo.gai » Thu Nov 17, 2011 6:18 pm

- 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

Locked