<html>
<head>
<meta content="text/html; charset=ISO-8859-2"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">--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)
<br>
<br>
Pre ilustraciu, pouzivam LPC2378 na 70MHz + Keil RTX.<br>
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).<br>
Samozrejme to neni FreeRTOS, ale predpokladam podobne naroky.<br>
Aj ta pozadovana 1ms musi mat dovod, pre bezne veci kludne staci
10ms.<br>
<br>
Prikladam tabulku z manualu:<br>
<table class="kt" summary="Timing specification table"
cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<th class="kt">Function</th>
<th class="ktC">ARM7™/ARM9™<br>
(cycles)</th>
<th class="ktC">Cortex™-M<br>
(cycles)</th>
</tr>
<tr>
<td class="kt">Initialize system (os_sys_init), start task</td>
<td class="ktC">1721</td>
<td class="ktC">1147</td>
</tr>
<tr>
<td class="kt">Create task (no task switch)</td>
<td class="ktC">679</td>
<td class="ktC">403</td>
</tr>
<tr>
<td class="kt">Create task (switch task)</td>
<td class="ktC">787</td>
<td class="ktC">461</td>
</tr>
<tr>
<td class="kt">Delete task (os_tsk_delete)</td>
<td class="ktC">402</td>
<td class="ktC">218</td>
</tr>
<tr>
<td class="kt">Task switch (by os_tsk_delete_self)</td>
<td class="ktC">458</td>
<td class="ktC">230</td>
</tr>
<tr>
<td class="kt">Task switch (by os_tsk_pass)</td>
<td class="ktC">321</td>
<td class="ktC">192</td>
</tr>
<tr>
<td class="kt">Set event (no task switch)</td>
<td class="ktC">128</td>
<td class="ktC">89</td>
</tr>
<tr>
<td class="kt">Set event (switch task)</td>
<td class="ktC">363</td>
<td class="ktC">215</td>
</tr>
<tr>
<td class="kt">Send semaphore (no task switch)</td>
<td class="ktC">106</td>
<td class="ktC">72</td>
</tr>
<tr>
<td class="kt">Send semaphore (switch task)</td>
<td class="ktC">364</td>
<td class="ktC">217</td>
</tr>
<tr>
<td class="kt">Send message (no task switch)</td>
<td class="ktC">218</td>
<td class="ktC">117</td>
</tr>
<tr>
<td class="kt">Send message (switch task)</td>
<td class="ktC">404</td>
<td class="ktC">241</td>
</tr>
<tr>
<td class="kt">Get own task identifier (os_tsk_self)</td>
<td class="ktC">23</td>
<td class="ktC">65</td>
</tr>
<tr>
<td class="kt">Interrupt lockout</td>
<td class="ktC"><160</td>
<td class="ktC">0</td>
</tr>
</tbody>
</table>
<br>
<br>
<br>
Milan<br>
<br>
On 14. 2. 2014 9:30, Miroslav Mraz wrote:<br>
</div>
<blockquote cite="mid:52FDD437.7080609@seznam.cz" type="cite">V
textu
<br>
<br>
On 02/13/2014 10:46 PM, Marek Sembol wrote:
<br>
<blockquote type="cite">Zdravim zkusenejsi,
<br>
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:
<br>
1) opravdu je to pouzitit na LPC11U14 tak bezproblemove, jak se
mi jevi?
<br>
</blockquote>
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.
<br>
<blockquote type="cite">2) nebudu pouzivat USB, rad bych tedy
vyuzil ty dodatecne 2K pameti.
<br>
2a) Neni v tom problem?
<br>
</blockquote>
Zatím o žádném nevím.
<br>
<blockquote type="cite">2b) Musim pro vyuziti explicitne oznacovat
globalni promenne atributem pro umisteni tam, nebo jde linker
presvedcit, aby si tam promenne umistoval sam?
<br>
</blockquote>
Můžete tam umístit celý .bss nebo .data, jak je libo. Je jen
potřeba trochu vědět, jak upravit linker skript.
<br>
<blockquote type="cite">2c) napadlo mne vyuzit ty dodatecne 2K pro
rozsireni FreeRTOS heap. Nemate nekdo vhodne upraveny soubor
heap_x.c ?
<br>
</blockquote>
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
<a class="moz-txt-link-freetext" href="http://mirror.fsf.org/pmon2000/pmon/src/lib/libc/malloc.c">http://mirror.fsf.org/pmon2000/pmon/src/lib/libc/malloc.c</a>.
<br>
Vypadá to sice hodně divně, ale fakt to funguje.
<br>
<blockquote type="cite">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)
<br>
<br>
</blockquote>
Tohle nechám jiným, RTOS nepoužívám, takže opravdu nevím.
<br>
<br>
Mrazík
<br>
<br>
_______________________________________________
<br>
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<br>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br>
</blockquote>
<br>
</body>
</html>