LPC11u14 a FreeRTOS

milger milger na pobox.sk
Pátek Únor 14 09:59:31 CET 2014


--3) Jak zvolit "tick"? Zvolil bych si nejradeji 1ms, ale mam strach, 
abych nespalil prilisne % vykonu rezii. Mate nekdo predstavu kolik ta 
rezie bere? (hodiny 48MHz)

Pre ilustraciu, pouzivam LPC2378 na 70MHz + Keil RTX.
Nutnostou je jedno vlakno beziace pravidelne kazdych 200us, takze aj 
"tick" je 200us. Rezia na prepnutie  sa pohybuje radovo v 10-kach us 
(nepamatam presne).
Samozrejme to neni FreeRTOS, ale predpokladam podobne naroky.
Aj ta pozadovana 1ms musi mat dovod, pre bezne veci kludne staci 10ms.

Prikladam tabulku z manualu:
Function 	ARM7^(TM)/ARM9^(TM)
(cycles) 	Cortex^(TM)-M
(cycles)
Initialize system (os_sys_init), start task 	1721 	1147
Create task (no task switch) 	679 	403
Create task (switch task) 	787 	461
Delete task (os_tsk_delete) 	402 	218
Task switch (by os_tsk_delete_self) 	458 	230
Task switch (by os_tsk_pass) 	321 	192
Set event (no task switch) 	128 	89
Set event (switch task) 	363 	215
Send semaphore (no task switch) 	106 	72
Send semaphore (switch task) 	364 	217
Send message (no task switch) 	218 	117
Send message (switch task) 	404 	241
Get own task identifier (os_tsk_self) 	23 	65
Interrupt lockout 	<160 	0




Milan

On 14. 2. 2014 9:30, Miroslav Mraz wrote:
> V textu
>
> On 02/13/2014 10:46 PM, Marek Sembol wrote:
>> Zdravim zkusenejsi,
>> pro domaci projektik jsem se rozhodl zkusit subj. Oficialni demo sice 
>> pro tuto kombinaci neexistuje, ale jelikoz podpora jadra M0 tam je, 
>> tak celkem nebyl problem udelat prelozitelny projekt. Po nahrani do 
>> kontroleru chodi (obligatni blikani LEDkou z tasku) A ted par otazek:
>> 1) opravdu je to pouzitit na LPC11U14 tak bezproblemove, jak se mi jevi?
> Pokud se dodrží zarovnání dat pro CM0 tak proč ne. Ne všichni to však 
> respektují a pak kód, který bez problému běží na CM3, na CM0 spadne do 
> hard-fault.
>> 2) nebudu pouzivat USB, rad bych tedy vyuzil ty dodatecne 2K pameti.
>> 2a) Neni v tom problem?
> Zatím o žádném nevím.
>> 2b) Musim pro vyuziti explicitne oznacovat globalni promenne 
>> atributem pro umisteni tam, nebo jde linker presvedcit, aby si tam 
>> promenne umistoval sam?
> Můžete tam umístit celý .bss nebo .data, jak je libo. Je jen potřeba 
> trochu vědět, jak upravit linker skript.
>> 2c) napadlo mne vyuzit ty dodatecne 2K pro rozsireni FreeRTOS heap. 
>> Nemate nekdo vhodne upraveny soubor heap_x.c ?
> Pokud používáte newlib, hledejte spíš _sbrk() - to je právě to, co 
> ukusuje z haldy. Pokud to chcete mít úplně pod kontrolou, pak jde 
> použít třeba http://mirror.fsf.org/pmon2000/pmon/src/lib/libc/malloc.c.
> Vypadá to sice hodně divně, ale fakt to funguje.
>> 3) Jak zvolit "tick"? Zvolil bych si nejradeji 1ms, ale mam strach, 
>> abych nespalil prilisne % vykonu rezii. Mate nekdo predstavu kolik ta 
>> rezie bere? (hodiny 48MHz)
>>
> Tohle nechám jiným, RTOS nepoužívám, takže opravdu nevím.
>
> Mrazík
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140214/9672bc00/attachment.html>


Další informace o konferenci Hw-list