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