<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux Embedded</title>
	<atom:link href="http://www.linuxembedded.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxembedded.fr</link>
	<description>Le blog des technologies libres et embarquées par Open Wide Ingénierie</description>
	<lastBuildDate>Thu, 12 Apr 2012 14:00:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Concours : Lancement du concours 2012</title>
		<link>http://www.linuxembedded.fr/2012/04/concours-lancement-du-concours-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concours-lancement-du-concours-2012</link>
		<comments>http://www.linuxembedded.fr/2012/04/concours-lancement-du-concours-2012/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 14:00:24 +0000</pubDate>
		<dc:creator>Albin Kauffmann</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[concours]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=1043</guid>
		<description><![CDATA[Développez un oscilloscope sur un Linux embarqué ! Voici le sujet du concours 2012 que nous avons le plaisir de lancer suite au succès du concours 2011. Il s&#8217;agit de développer un oscilloscope sur une carte FriendlyARM en prenant en &#8230;  <a href="http://www.linuxembedded.fr/2012/04/concours-lancement-du-concours-2012/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Développez un oscilloscope sur un Linux embarqué !</strong></p>
<p>Voici le sujet du concours 2012 que nous avons le plaisir de lancer suite au succès du concours 2011. Il s&#8217;agit de développer un oscilloscope sur une carte FriendlyARM en prenant en compte les problématiques temps réel. Vous trouverez tous les détails ici : <a href="http://linuxembedded.fr/concours2012">http://linuxembedded.fr/concours2012</a>.</p>
<p><span id="more-1043"></span>De nombreux lots sont à gagner et ce concours vous apprendra beaucoup. N&#8217;hésitez pas à utiliser les canaux de discussion mis à disposition : IRC (Freenode #linuxembedded), <a href="http://groups.google.com/group/concours-linuxembedded">mailing list</a>, mails aux <a href="mailto:concours@linuxembedded.fr">organisateurs</a>.<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/04/concours-lancement-du-concours-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualiser l&#8217;ordonnancement avec kernelshark</title>
		<link>http://www.linuxembedded.fr/2012/03/visualiser-lordonnancement-avec-kernelshark/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualiser-lordonnancement-avec-kernelshark</link>
		<comments>http://www.linuxembedded.fr/2012/03/visualiser-lordonnancement-avec-kernelshark/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 10:49:21 +0000</pubDate>
		<dc:creator>Albin Kauffmann</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ftrace]]></category>
		<category><![CDATA[instrumentation]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[temps réel]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=992</guid>
		<description><![CDATA[Lorsque l&#8217;on travaille dans un environnement contraint et temps réel, il peut-être particulièrement intéressant de visualiser graphiquement l&#8217;ordonnancement des processus. Dans un précédent article, vous avez pu lire une introduction à ftrace. kernelshark permet d&#8217;obtenir une visualisation graphique du fichier &#8230;  <a href="http://www.linuxembedded.fr/2012/03/visualiser-lordonnancement-avec-kernelshark/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lorsque l&#8217;on travaille dans un environnement contraint et temps réel, il peut-être particulièrement intéressant de visualiser graphiquement l&#8217;ordonnancement des processus. Dans un précédent article, vous avez pu lire une <a href="2011/03/introduction-a-ftrace">introduction à ftrace</a>. kernelshark permet d&#8217;obtenir une visualisation graphique du fichier trace généré par <em>trace-cmd</em>, un outil <em>ftrace</em> en ligne de commande.</p>
<p><span id="more-992"></span></p>
<h2>Enregistrement des traces</h2>
<p>Pour effectuer l&#8217;enregistrement de traces, le noyau Linux doit être compilé avec le support de Ftrace. Son activation (via <em>make menuconfig</em>) se fait dans le menu <em>Kernel hacking</em> -&gt; <em>Tracers</em>. Il faudra ensuite activer les traceurs qui vous intéressent (kernel functions, scheduling, syscalls, &#8230;).</p>
<p>Ensuite, il vous faudra installer <em>trace-cmd</em>. Si votre gestionnaire de paquets ne le propose pas, récupérez la dernière version <a href="http://git.kernel.org/?p=linux/kernel/git/rostedt/trace-cmd.git;a=summary">ici</a> (prenez l&#8217;archive snapshot du dernier tag). Compilez et installez <em>trace-cmd</em> à l&#8217;aide des commandes <em>make trace-cmd &amp;&amp; make install</em>.</p>
<p>Une fois votre environnement en place, il est possible d&#8217;enregistrer tous les évènements ayant lieu sur le système de manière interactive (l&#8217;enregistrement s&#8217;arrête avec <em>Ctrl^C</em>) :</p>
<pre>trace-cmd record -e all -o mes_traces.dat</pre>
<p>&#8230; ou pendant l&#8217;exécution d&#8217;un programme (ici <em>ls</em>) :</p>
<pre>trace-cmd record -e all -o ls_traces.dat ls /</pre>
<p>Pour plus d&#8217;informations sur les options, consultez l&#8217;aide :</p>
<pre>shell&gt; trace-cmd record -h

trace-cmd version 1.0.3

usage:
 trace-cmd record [-v][-e event [-f filter]][-p plugin][-F][-d] \
 [-o file][-s usecs][-O option ][-l func][-g func][-n func] \
 [-P pid][-N host:port][-t][-r prio][-b size][command ...]
 -e run command with event enabled
 -f filter for previous -e event
 -p run command with plugin enabled
 -F filter only on the given process
 -P trace the given pid like -F for the command
 -l filter function name
 -g set graph function
 -n do not trace function
 -v will negate all -e after it (disable those events)
 -d disable function tracer when running
 -o data output file [default trace.dat]
 -O option to enable (or disable)
 -r real time priority to run the capture threads
 -s sleep interval between recording (in usecs) [default: 1000]
 -N host:port to connect to (see listen)
 -t used with -N, forces use of tcp in live trace
 -b change kernel buffersize (in kilobytes per CPU)</pre>
<h2>Visualisation des traces</h2>
<p>Pour visualiser les traces, il est nécessaire d&#8217;installer <em>kernelshark</em>. Si votre gestionnaire de paquets ne le propose pas, dans le répertoire des sources de <em>trace-cmd</em> téléchargées précédemment, tapez la commande suivante <em>make gui &amp;&amp; make install_gui</em>.</p>
<p><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/ls_traces.png"><img class="alignright size-medium wp-image-1012" src="http://www.linuxembedded.fr/wp-content/uploads/2012/03/ls_traces-300x233.png" alt="" width="300" height="233" /></a>Une fois installé, vous pouvez ouvrir le fichier <em>ls_traces.dat</em> généré précédemment :</p>
<pre>kernelshark ls_traces.dat</pre>
<p>L&#8217;interface est séparée en deux parties :</p>
<ul>
<li>une visualisation de graphes</li>
<li>une visualisation précise des évènements</li>
</ul>
<p>Voici quelques éléments qui pourront aider à commencer :</p>
<ul>
<li>Le menu <em>Filter</em> permet de filtrer des types d&#8217;évènements</li>
<li>le menu <em>Plots</em> permet de sélectionner les graphes à afficher</li>
<li>le zoom en avant se fait en sélectionnant une section du graphe vers la droite</li>
<li>le zoom en arrière se fait en sélectionnant une section du graphe vers la gauche</li>
<li>le marqueur vert se pose avec un clic gauche</li>
<li>le marqueur rouge se pose avec un SHIFT + clic gauche</li>
<li>un double clic permet de placer le curseur (pour visualiser les évènements)</li>
<li>les couleurs du graphe d&#8217;une tâche correspondent aux CPUs sur lesquels celle-ci s&#8217;exécute</li>
<li>les couleurs du graphe d&#8217;un CPU correspondent aux tâches exécutées</li>
</ul>
<p>Pour plus de détails, consultez <a href="http://rostedt.homelinux.com/kernelshark/#graph-plot-task">cette page</a>.</p>
<h2>kernelshark avec PREEMPT_RT</h2>
<p>Jouons maintenant avec Linux <em>PREEMPT_RT</em>. Soit le programme téléchargeable <a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/mytimer_sigwait.c">ici</a> qui se réveille toute les millisecondes avec un timer POSIX (cf. <a href="2012/03/tache-periodique-dans-un-processus-multithread">article sur les timers</a>). Enregistrons alors son exécution sur un système Linux classique que l&#8217;on charge avec la commande <em>stress</em> :</p>
<p><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_traces.png"><img class="aligncenter size-full wp-image-1018" src="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_traces.png" alt="" width="556" height="29" /></a></p>
<p>On observe donc que la propriété temps réel de l&#8217;application n&#8217;est pas respectée et qu&#8217;un nombre important de réveils sont manqués. Observons ce même programme sur un Linux patché avec <em>PREEMPT_RT</em> :</p>
<p><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_rt_traces.png"><img class="aligncenter size-full wp-image-1021" src="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_rt_traces.png" alt="" width="557" height="29" /></a></p>
<p>Cette fois-ci, l&#8217;ordonnancement est quasi parfait.</p>
<h2>Aller plus loin</h2>
<p><em>trace-cmd</em> et <em>kernelshark</em> permettent donc d&#8217;observer le comportement d&#8217;un système et de visualiser les résultats graphiquement. Attention cependant, la sortie générée par <em>trace-cmd</em> est volumineuse et pourrait donc modifier le comportement de votre système. L&#8217;option &laquo;&nbsp;-e all&nbsp;&raquo; n&#8217;est donc pas toujours appropriée.</p>
<p>Pour aller plus loin, je vous recommande les documents suivants :</p>
<ul>
<li><a href="http://rostedt.homelinux.com/kernelshark">documentation de kernelshark</a></li>
<li><a href="http://www.omappedia.com/wiki/Installing_and_Using_Ftrace">installation et utilisation de ftrace</a></li>
<li><a href="http://lwn.net/Articles/341902">trace-cmd &#8211; command line reader for ftrace</a></li>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=tree;f=Documentation/trace">documentation du noyau</a> (répertoire <em>Documentation/trace</em> des sources)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/03/visualiser-lordonnancement-avec-kernelshark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tâche périodique dans un processus multithread</title>
		<link>http://www.linuxembedded.fr/2012/03/tache-periodique-dans-un-processus-multithread/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tache-periodique-dans-un-processus-multithread</link>
		<comments>http://www.linuxembedded.fr/2012/03/tache-periodique-dans-un-processus-multithread/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 16:40:42 +0000</pubDate>
		<dc:creator>Albin Kauffmann</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[POSIX]]></category>
		<category><![CDATA[temps réel]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=946</guid>
		<description><![CDATA[Lors du développement d&#8217;une application temps réel (en mode utilisateur), il est parfois nécessaire de déclencher une action avec une période précise. Comme expliqué dans la première section de cet article, l&#8217;usage d&#8217;usleep() ou nanosleep() ne permet pas de respecter &#8230;  <a href="http://www.linuxembedded.fr/2012/03/tache-periodique-dans-un-processus-multithread/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lors du développement d&#8217;une application temps réel (en mode utilisateur), il est parfois nécessaire de déclencher une action avec une période précise. Comme expliqué dans la première section de cet article, l&#8217;usage d&#8217;<em>usleep()</em> ou <em>nanosleep()</em> ne permet pas de respecter le temps réel et il faudra donc utiliser un timer POSIX. Si l&#8217;application est multithread, il faudra prêter une attention particulière à la configuration des signaux sous peine de conséquences sur l&#8217;ordonnancement.</p>
<h2><span id="more-946"></span>usleep et nanosleep</h2>
<p>Supposons que nous souhaitons effectuer une action toutes les millisecondes. Il pourrait sembler évident d&#8217;écrire un code comme celui-ci (attention, pour plus de lisibilité, ce code ne tient pas compte du dépassement des variables) :</p>
<pre>gettimeofday(&amp;tv, NULL);
while (1)
{
  tv.nsec += 1000000; // calcul de l'heure à attendre
  gettimeofday(&amp;time);
  nanosleep(tv.nsec - time.nsec); // attente de l'échéance
  /* Exécution du code périodique */
}</pre>
<p>Pour une application temps réel, ce code n&#8217;est cependant pas correct. En effet,  celle-ci pourrait être ordonnancée entre les appels à <em>gettimeofday()</em> et <em>nanosleep()</em> et reprendrait son exécution après une durée indéterminée pour appeler <em>nanosleep()</em> avec un temps d&#8217;attente trop important.</p>
<h2>Timer POSIX</h2>
<p>Afin de respecter la période, il est donc nécessaire d&#8217;utiliser les timers POSIX. Contrairement aux fonctions du type <em>sleep()</em>, un timer va émettre un signal à l&#8217;application elle-même qui peut le traiter de deux façons :</p>
<ul>
<li>en déclarant un handler pour le signal concerné (man <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/sigaction.2.html"><em>sigaction</em></a>)</li>
<li>en attendant la réception du signal (fonctions <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/sigwaitinfo.2.html"><em>sigwaitinfo</em></a> ou <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/sigtimedwait.2.html"><em>sigtimedwait</em></a>)</li>
</ul>
<p>Voici un exemple avec <em>sigwaitinfo</em> :</p>
<pre>#include &lt;signal.h&gt;
#include &lt;time.h&gt;
#include &lt;stdio.h&gt;

#define PERIOD_SIG      SIGRTMIN
#define PERIOD_SEC      0
#define PERIOD_NSEC     1000000 // 1ms

int main(int argc, char *argv[])
{
  sigset_t mask;
  timer_t timerid;
  struct itimerspec its;
  struct sigevent evp = {
    .sigev_notify = SIGEV_SIGNAL,
    .sigev_signo = TIMER_SIG,
  };
  siginfo_t si;
  int sig;

  sigemptyset(&amp;mask);
  sigaddset(&amp;mask, TIMER_SIG);
  sigprocmask(SIG_BLOCK, &amp;mask, NULL);

  timer_create(CLOCK_REALTIME, &amp;evp, &amp;timerid);

  its.it_value.tv_sec = PERIOD_SEC;
  its.it_value.tv_nsec = PERIOD_NSEC;
  its.it_interval.tv_sec = PERIOD_SEC;
  its.it_interval.tv_nsec = PERIOD_NSEC;
  timer_settime(timerid, 0, &amp;its, NULL);

  while (1)
  {
    sig = sigwaitinfo(&amp;mask, &amp;si);
    if (sig != TIMER_SIG)
      continue;
    /* Periodic task... */
  }

  return 0;
}</pre>
<p>Attention, ce code ne contient aucune vérification d&#8217;erreurs. Le code complet se trouve <a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_sigwait.c">ici</a> (à compiler avec `<em>gcc timer_sigwait.c -rt</em>`).</p>
<h2>Timer en environnement multithread</h2>
<p>L&#8217;utilisation des signaux dans un environnement multithread est délicat puisque, par défaut, le thread en charge de les traiter peut être choisi aléatoirement. Dans un environnement temps réel, ceci peut avoir des conséquences importantes sur l&#8217;ordonnancement des threads.</p>
<p>Il est cependant possible de forcer le timer à envoyer ses signaux vers un thread spécifique en précisant le thread ID lors de sa création :</p>
<pre>/* ... */
struct sigevent evp = {
  .sigev_notify = SIGEV_THREAD_ID,
  .sigev_signo = PERIOD_SIG,
  .sigev_notify_thread_id = <strong>mygettid()</strong>,
};

/* ... */
timer_create(CLOCK_REALTIME, &amp;evp, &amp;timerid);</pre>
<p>Le code complet est téléchargeable <a href="http://www.linuxembedded.fr/wp-content/uploads/2012/03/timer_sigwait_thread.c">ici</a> (à compiler avec `<em>gcc timer_sigwait_thread.c -pthread -rt</em>`).</p>
<h2>Aller plus loin &#8230;</h2>
<p>Les timers offrent d&#8217;autres possibilités comme la possibilité d&#8217;appeler un handler dans un nouveau thread. Pour plus d&#8217;informations, n&#8217;hésitez pas à consulter les pages de man bien complètes :</p>
<ul>
<li><a href="http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html">timer_create</a></li>
<li><a href="http://www.kernel.org/doc/man-pages/online/pages/man7/sigevent.7.html">sigevent</a></li>
<li>&#8230;</li>
</ul>
<div style="width: 1px;height: 1px;overflow: hidden">sigset_t mask;<br />
timer_t timerid;<br />
struct itimerspec its;<br />
struct sigevent evp = {<br />
.sigev_notify = SIGEV_SIGNAL,<br />
.sigev_signo = TIMER_SIG,<br />
};<br />
siginfo_t si;<br />
int sig;</p>
<p>if (sigemptyset(&amp;mask) ||<br />
sigaddset(&amp;mask, TIMER_SIG) ||<br />
sigprocmask(SIG_BLOCK, &amp;mask, NULL))<br />
return 1;</p>
<p>if (timer_create(CLOCK_REALTIME, &amp;evp, &amp;timerid))<br />
return 2;</p>
<p>its.it_value.tv_sec = TIMER_SEC;<br />
its.it_value.tv_nsec = TIMER_NSEC;<br />
its.it_interval.tv_sec = TIMER_SEC;<br />
its.it_interval.tv_nsec = TIMER_NSEC;<br />
if (timer_settime(timerid, 0, &amp;its, NULL))<br />
return 3;</p>
<p>while (1)<br />
{<br />
if ((sig = sigwaitinfo(&amp;mask, &amp;si)) &lt; 0)<br />
return 4;<br />
if (sig != TIMER_SIG)<br />
continue;<br />
printf(&laquo;&nbsp;Periodic task&#8230;\n&nbsp;&raquo;);<br />
}</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/03/tache-periodique-dans-un-processus-multithread/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Concours : Les résultats</title>
		<link>http://www.linuxembedded.fr/2012/01/concours-les-resultats/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concours-les-resultats</link>
		<comments>http://www.linuxembedded.fr/2012/01/concours-les-resultats/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:43:57 +0000</pubDate>
		<dc:creator>Albin Kauffmann</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[concours]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=886</guid>
		<description><![CDATA[La remise des prix du concours Linux Embedded a eu lieu ce mardi 24 janvier. Lors de cet évènement, les finalistes ont dévoilé les techniques mises en oeuvre pour parvenir à démarrer la carte FriendlyARM le plus rapidement possible. Parmi &#8230;  <a href="http://www.linuxembedded.fr/2012/01/concours-les-resultats/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La remise des prix du <a href="http://www.linuxembedded.fr/concours">concours Linux Embedded</a> a eu lieu ce mardi 24 janvier. Lors de cet évènement, les finalistes ont dévoilé les techniques mises en oeuvre pour parvenir à démarrer la carte FriendlyARM le plus rapidement possible.<span id="more-886"></span></p>
<p style="text-align: center">
<a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.25-1024x7681.jpg"><img src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.25-1024x7681.jpg" alt="Intro Concours" title="Concours2011-intro-1024x768" width="879" height="368" class="aligncenter size-full wp-image-943" /></a>
</p>
<p>Parmi les points techniques évoqués, voici une liste non exhaustive de ceux qui ont été les plus efficaces :</p>
<ul>
<li>réduction de la taille du système en utilisant un noyau Linux allégé et une libc légère (klibc, uclibc) afin d&#8217;obtenir, pour certains, un système de moins de 2Mo tenant en NOR</li>
<li>utilisation d&#8217;une application liée en statique et inclue dans un initramfs</li>
<li>utilisation d&#8217;un bootloader plus léger ou même réécriture de celui-ci</li>
<li>initialisation des contrôleurs Ethernet et MMC/SD au plus tôt dans le démarrage du système (dans le bootloader ou au tout début du chargement du noyau)</li>
<li>diminution de certains délais de <em>polling</em> (par exemple pour une meilleure réaction au changement d&#8217;état de la carte réseau)</li>
<li>utilisation du client DHCP du noyau Linux (exécuté dans un thread)</li>
</ul>
<p>Ces points feront sans doute l&#8217;objet de futures publications dans Linux Magazine ou Open Silicium.</p>
<p>Mais venons-en aux chiffres. Les temps de démarrage des différents projets ont été mesurés à l&#8217;aide d&#8217;une caméra. Voici les temps obtenus :</p>
<p><strong>Équipe des Poussins :</strong></p>
<table border="1" cellspacing="2" cellpadding="2" align="center" bgcolor="#EEEEFF">
<tbody>
<tr align="center">
<th>Nom</th>
<th>Temps de boot Mesuré</th>
</tr>
<tr align="center">
<td>1. Alexandre Aminot &amp; Clément Léger (CLAX)</td>
<td>2.122s</td>
</tr>
<tr align="center">
<td>2. Jean-baptiste Théou (Anbreizh)</td>
<td>3.256s</td>
</tr>
<tr align="center">
<td>3. Gabriel Huau (leirbag)</td>
<td>3.411s</td>
</tr>
</tbody>
</table>
<p><strong>Équipe des Vieux gnoux :</strong></p>
<table border="1" cellspacing="2" cellpadding="2" align="center" bgcolor="#EEEEFF">
<tbody>
<tr align="center">
<th>Nom</th>
<th>Temps de boot Mesuré</th>
</tr>
<tr align="center">
<td>1. Fabrice Jouhaud (yargil)</td>
<td>1.233s</td>
</tr>
<tr align="center">
<td>2. Julien HEYMAN (Bids)</td>
<td>1.311s</td>
</tr>
<tr align="center">
<td>3. Cédric ROUX (Sed)</td>
<td>1.400s</td>
</tr>
<tr align="center">
<td>4. Laurent NAVET (Mali)</td>
<td>11.244s</td>
</tr>
</tbody>
</table>
<p>Les meilleurs temps ont donc été effectués par l&#8217;équipe CLAX et Fabrice Jouhaud. Ils gagnent une tablette multimédia et un abonnement à <a href="http://www.unixgarden.com/index.php/category/open-silicium">Open Silicium</a>.</p>
<p>Le jury a aussi retenu le projet de Cédric Roux pour son originalité et le développement d&#8217;outils. Il gagne une tablette multimédia.</p>
<p>Pour leurs deuxièmes places, Jean-baptiste Théou et Julien HEYMAN sont repartis avec un <a href="http://mywobe.com/index.php?lang=fr">Wobe</a> ainsi qu&#8217;un abonnement à <a href="http://www.unixgarden.com/index.php/category/open-silicium">Open Silicium</a> pour la très bonne documentation de leurs projets.</p>
<p>Gabriel Huau et Laurent NAVET remportent <a href="http://www.andahammer.com/olink/">une sonde JTAG</a>, <a href="http://www.andahammer.com/cam13/">une caméra</a>, et <a href="http://www.andahammer.com/mini2440cablekit/">un kit de câbles</a> pour la FriendlyARM provenant de notre partenaire <a href="http://www.andahammer.com/">Industrial ARMWorks</a>. </p>
<p>Voici les photos de la soirée :</p>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr align="center">
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.12.19.jpg"><img class="aligncenter size-thumbnail wp-image-928" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.12.19-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.25.jpg"><img class="aligncenter size-thumbnail wp-image-927" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.25-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.42.jpg"><img class="aligncenter size-thumbnail wp-image-926" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.30.42-150x150.jpg" alt="" width="135" height="135" /></a></th>
</tr>
<tr align="center">
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.35.41.jpg"><img class="aligncenter size-thumbnail wp-image-925" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.35.41-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.38.31.jpg"><img class="aligncenter size-thumbnail wp-image-924" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.38.31-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.53.15.jpg"><img class="aligncenter size-thumbnail wp-image-923" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-19.53.15-150x150.jpg" alt="" width="135" height="135" /></a></th>
</tr>
<tr align="center">
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-20.01.19.jpg"><img class="aligncenter size-thumbnail wp-image-922" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-20.01.19-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-20.11.40.jpg"><img class="aligncenter size-thumbnail wp-image-921" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-2012-01-24-20.11.40-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0154.jpg"><img class="aligncenter size-thumbnail wp-image-920" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0154-150x150.jpg" alt="" width="135" height="135" /></a></th>
</tr>
<tr align="center">
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0156.jpg"><img class="aligncenter size-thumbnail wp-image-919" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0156-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0158.jpg"><img class="aligncenter size-thumbnail wp-image-918" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0158-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0162.jpg"><img class="aligncenter size-thumbnail wp-image-917" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0162-150x150.jpg" alt="" width="135" height="135" /></a></th>
</tr>
<tr align="center">
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0167.jpg"><img class="aligncenter size-thumbnail wp-image-916" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0167-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0173.jpg"><img class="aligncenter size-thumbnail wp-image-915" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0173-150x150.jpg" alt="" width="135" height="135" /></a></th>
<th><a href="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0176.jpg"><img class="aligncenter size-thumbnail wp-image-914" src="http://www.linuxembedded.fr/wp-content/uploads/2012/01/Concours2011-IMG_0176-150x150.jpg" alt="" width="135" height="135" /></a></th>
</tr>
</tbody>
</table>
<p>Les sources des différents projets seront publiées ici dans les jours qui viennent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/01/concours-les-resultats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EWili, deuxième édition</title>
		<link>http://www.linuxembedded.fr/2012/01/ewili-deuxieme-edition/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ewili-deuxieme-edition</link>
		<comments>http://www.linuxembedded.fr/2012/01/ewili-deuxieme-edition/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 11:06:05 +0000</pubDate>
		<dc:creator>Pierre Ficheux</dc:creator>
				<category><![CDATA[Actualité]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=869</guid>
		<description><![CDATA[Un premier &#171;&#160;mini workshop&#160;&#187; sur le thème &#171;&#160;Embed With Linux&#160;&#187; s&#8217;est déroulé en mai 2011 à Saint-Malo. Cette première édition était liée aux conférences RenPar/SympA/CFSE (Rencontres francophones du Parallélisme / Symposium en Architecture de Machines / Conférence Française sur les &#8230;  <a href="http://www.linuxembedded.fr/2012/01/ewili-deuxieme-edition/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Un premier &laquo;&nbsp;mini workshop&nbsp;&raquo; sur le thème &laquo;&nbsp;Embed With Linux&nbsp;&raquo; s&#8217;est déroulé en mai 2011 à Saint-Malo.<br />
Cette première édition était liée aux conférences  RenPar/SympA/CFSE (Rencontres francophones du Parallélisme / Symposium en Architecture de Machines / Conférence Française sur les Systèmes d&#8217;Exploitation ). L&#8217;évènement avait été relayé entre-autres par UnixGarden/Open Silicium, voir<br />
<a href="http://www.unixgarden.com/index.php/com/embed-with-linux-ewili-mini-workshop-de-saint-malo">http://www.unixgarden.com/index.php/com/embed-with-linux-ewili-mini-workshop-de-saint-malo</a></p>
<p>La nouvelle édition EWili 2012 sera un évènement indépendant et aura lieu le 7 juin 2012 à Lorient. Un appel est présentation est<br />
d&#8217;ores et déjà disponible sur <a href="http://www.sigops-france.fr/Main/EWiLi">http://www.sigops-france.fr/Main/EWiLi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/01/ewili-deuxieme-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concours : Invitation à la remise des prix</title>
		<link>http://www.linuxembedded.fr/2012/01/concours-invitation-a-la-remise-des-prix/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concours-invitation-a-la-remise-des-prix</link>
		<comments>http://www.linuxembedded.fr/2012/01/concours-invitation-a-la-remise-des-prix/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 17:28:18 +0000</pubDate>
		<dc:creator>Albin Kauffmann</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[concours]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=830</guid>
		<description><![CDATA[La phase 2 du concours Linux Embedded s’est terminée le 31 décembre. Cette deuxième phase du concours consistait à optimiser un système Linux embarqué afin qu&#8217;il démarre le plus vite possible sur une carte FriendlyARM (gagnée par les candidats à &#8230;  <a href="http://www.linuxembedded.fr/2012/01/concours-invitation-a-la-remise-des-prix/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La phase 2 du <a href="http://www.linuxembedded.fr/concours">concours Linux Embedded</a> s’est terminée le 31 décembre.</p>
<p>Cette deuxième phase du concours consistait à optimiser un système Linux embarqué afin qu&#8217;il démarre le plus vite possible sur une carte FriendlyARM (gagnée par les candidats à la fin de la première phase du concours).</p>
<p>Nous tenons à remercier les 7 finalistes dont les rendus semblent très prometteurs.</p>
<p><span id="more-830"></span>Un jury étudiera et départagera les différents projets le mardi 24 janvier. Il s&#8217;en suivra une remise des prix à laquelle 15 places sont réservées aux lecteurs de linuxembedded.fr. Cet événement sera l&#8217;occasion de rencontrer les organisateurs, le jury et les participants qui exposeront les différentes solutions techniques mises en oeuvre. Le jury est constitué de :</p>
<ul>
<li>Pierre Ficheux (<a href="http://ingenierie.openwide.fr/">Open Wide Ingénierie</a>)</li>
<li>Jean-Marc Lacroix (<a href="http://www.thalescomminc.com/">Thales Communication</a>)</li>
<li>Yann Lopez (<a href="http://www.plugnsurf.fr/">Plugnsurf</a>)</li>
<li>Thomas Monjalon (<a href="http://www.6wind.com/">6Wind</a>)</li>
<li>Olivier Viné (<a href="http://ingenierie.openwide.fr/">Open Wide Ingénierie</a>)</li>
</ul>
<p>Afin d&#8217;assister à la remise des prix et recevoir une invitation, envoyez au plus vite un email à l&#8217;adresse <a href="mailto:concours@linuxembedded.fr?subject=Invitation à la remise des prix">concours@linuxembedded.fr</a>. L&#8217;évènement aura lieu mardi 24 janvier à 19h dans nos locaux :</p>
<p>Open Wide (6ème étage)<br />
23-25, rue Daviel<br />
75 013 Paris<br />
<a href="http://www.openstreetmap.org/?mlat=48.8281&amp;mlon=2.3445&amp;zoom=17">Plan d&#8217;accès</a><br />
Accès par le métro 6, station Glacière</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2012/01/concours-invitation-a-la-remise-des-prix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparatifs Qt / EFL : Présentation des deux bibliothèques</title>
		<link>http://www.linuxembedded.fr/2011/12/comparatifs-qt-efl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=comparatifs-qt-efl</link>
		<comments>http://www.linuxembedded.fr/2011/12/comparatifs-qt-efl/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 12:41:07 +0000</pubDate>
		<dc:creator>Pierre Le Magourou</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[EFL]]></category>
		<category><![CDATA[EFLvsQt]]></category>
		<category><![CDATA[graphique]]></category>
		<category><![CDATA[IHM]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=808</guid>
		<description><![CDATA[Pour développer une interface graphique sur un système Linux embarqué, plusieurs outils sont disponibles. Dans cette suite d&#8217;articles, nous nous intéressons à Qt et aux EFL, deux solutions graphiques open source qui se démarquent et permettent la création d&#8217;applications graphiques &#8230;  <a href="http://www.linuxembedded.fr/2011/12/comparatifs-qt-efl/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour développer une interface graphique sur  un système Linux embarqué, plusieurs outils sont disponibles. Dans cette  suite d&#8217;articles, nous nous intéressons à Qt et aux EFL, deux solutions  graphiques open source qui se démarquent et permettent la création  d&#8217;applications graphiques complexes. Pour commencer la série, nous  allons présenter ces deux bibliothèques.</p>
<h2>1. Qt</h2>
<p>Qt est un  toolkit graphique écrit en C++. Il a été développé par deux étudiants  norvégiens, Haavard Nord et Eirik Chambe-Eng. Initialement prévu pour  Unix et l&#8217;environnement X11, il devient rapidement multi-plate-forme, et  permet donc de développer sur des environnements comme Unix, Windows et  Mac OS X. Les deux étudiants décident de créer la société Trolltech et  sortent la version 1.0 de Qt fin 1996.</p>
<p>Le projet KDE est lancé en  1997 par Matthias Ettrich. Il est l&#8217;un des bureaux les plus célèbres  sur Linux et est entièrement développé en Qt. Le fondateur est  rapidement embauché par la société Trolltech. C&#8217;est entre autre grâce à  KDE que Qt devient célèbre. Il faudra attendre 2000 pour que Trolltech  publie Qt2 et Qt/Embedded (à l&#8217;époque plus connu sous le nom de Qtopia).  Ajourd&#8217;hui QtSDK est composé de &laquo;&nbsp;Qt  framework&nbsp;&raquo; et d&#8217;un ensemble d&#8217;outils permettant de développer des  applications aussi bien sur des ordinateurs personnels que sur des  systèmes embarqués (Symbian, Maemo et Meego, Android via Qt Necessitas).</p>
<p>Jusqu&#8217;en  2008, Qt était sous double licence, GPL et commerciale. Après le rachat  par Nokia la même année, Qt est diffusé également sous licence LGPL, ce  qui permet de l&#8217;utiliser avec d&#8217;autres bibliothèques propriétaires sans  avoir besoin d&#8217;acquérir de licence commerciale.</p>
<p>Aujourd&#8217;hui Qt  est sans doute le toolkit le plus avancé et le plus célèbre pour  développer des applications graphiques sous Linux. Il est parfois  considéré comme une extension du C++ par certains développeurs dans la  mesure ou il facilite de façon non négligeable le travail d&#8217;un  développeur. En effet, il n&#8217;est pas uniquement un toolkit graphique,  mais fournit également une abstraction de composants standards comme  l&#8217;accès au réseau, l&#8217;accès à la base de donnée, les threads, l&#8217;unicode  qui est supporté nativement et bien d&#8217;autres.</p>
<p>Du fait de sa  notoriété, une grande communauté s&#8217;est créée autour de ce projet. Sa  documentation est très complète, contrairement à beaucoup de projets  libres. De plus, de nombreux exemples sont fournis avec le toolkit afin  de se familiariser avec la logique de programmation de Qt.</p>
<p><span style="text-decoration: underline">Points forts de Qt</span> :</p>
<ul>
<li> Portabilité</li>
<li> Abstraction de nombreux composants standards (réseau, thread, dbus, webkit)</li>
<li> Outils de traduction</li>
<li> QtCreator qui intègrent et utilisent de façon transparente des outils Qt :
<ul>
<li> designer pour créer des interfaces graphiques à la main</li>
<li> uic pour générer du code C++ à partir d&#8217;une interface graphique</li>
<li> rcc pour compiler un fichier de ressource</li>
</ul>
</li>
<li> Documentation très complète</li>
<li> Accès à de nombreux exemples de code</li>
<li> Communauté active</li>
</ul>
<p><span style="text-decoration: underline">Inconvénients de Qt</span> :</p>
<ul>
<li> Plus lourd que les EFL
<ul>
<li> Mémoire vive</li>
<li> Grosses bibliothèques (stockage)</li>
</ul>
</li>
<li> Temps de compilation d&#8217;un programme développé en Qt est plus long que la compilation d&#8217;un programme compilé avec les EFL</li>
</ul>
<h2>2. EFL</h2>
<p>Les EFL sont un ensemble de bibliothèques écrites en C sous license BSD  et LGPL, elles ont été créées et développées pour le gestionnaire de  fenêtres Enlightenment. Ce dernier existe depuis 1997 date de la sortie  de la première version. En 1999, la version 0.16 du projet semblait déjà  révolutionnaire de par ses effets graphiques précurseurs. Début  décembre 2011 la version stable 1.1 des EFL a vu le jour, elles sont  maintenant utilisées dans Enlightenment 0.17 qui n&#8217;a officiellement pas  encore de date de sortie.</p>
<p>Ces bibliothèques sont conçues à la  base pour être très optimisées (tant en performance du rendu graphique  qu&#8217;en empreinte mémoire), et peuvent être utilisées aussi bien sur un  ordinateur personnel que dans des systèmes embarqués. Le projet s&#8217;est  d&#8217;ailleurs orienté vers le tactile en pensant (à juste titre), que Linux  avait plus d&#8217;avenir dans l&#8217;embarqué que sur ordinateur. Les EFL  fonctionnent sur des architectures peu performantes (ARM 50MHz, 16MB  RAM) tout en tirant parti au mieux des systèmes plus puissants. De plus,  elles sont compatibles avec un certain nombre de systèmes (Linux, BSD,  MAC OS X, Windows) ainsi qu&#8217;avec plusieurs architectures (ARM, x86,  powerPC, MIPS, Sparc), ce qui fait qu&#8217;elles sont tout à fait adaptées à  une utilisation dans l&#8217;embarqué.</p>
<p>La communauté autour des EFL est  assez petite comparée à la communauté Qt. Néanmoins, certaines grosses  entreprises comme Samsung supportent activement le développement du  projet. De plus, la technologie commence à être utilisée par des  industriels tels que Free, Zodiac Aerospace, Intel, Ordissimo, Calaos,  Electrolux, ce qui montre clairement la maturité du projet. La  documentation des bibliothèques ainsi que les outils pour faciliter le  développement ne sont par contre clairement pas au niveau de leur  équivalent sous Qt.</p>
<p><span style="text-decoration: underline">Points forts EFL</span> :</p>
<ul>
<li> Portabilité</li>
<li> Légèreté</li>
<li> Optimisation</li>
<li> Très bien adapté à l&#8217;embarqué</li>
<li> Communauté active</li>
</ul>
<p><span style="text-decoration: underline">Inconvénients</span> :</p>
<ul>
<li> Documentation moins complète que sur Qt</li>
<li> Jeunesse du projet (manque certaines fonctionnalités)</li>
<li> Pas d&#8217;outils WYSIWYG pour créer des interfaces</li>
</ul>
<p>Cet article est le premier d&#8217;une longue série. Les suivants se  focaliseront plus sur l&#8217;aspect technique de ces deux projets, et surtout  sur la comparaison et l&#8217;utilisation de ceux-ci.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2011/12/comparatifs-qt-efl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Un pas en avant pour ARM</title>
		<link>http://www.linuxembedded.fr/2011/10/un-pas-en-avant-pour-arm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=un-pas-en-avant-pour-arm</link>
		<comments>http://www.linuxembedded.fr/2011/10/un-pas-en-avant-pour-arm/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 15:20:36 +0000</pubDate>
		<dc:creator>Tristan Lelong</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[embarqué]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[processeur]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=753</guid>
		<description><![CDATA[﻿Les processeurs arm sont une famille concurente des bien connus Intel et AMD. La société Arm ltd est en charge du développement des architectures mais un grand nombre de fabriquants possèdent des licences et les implémentent. Le 27 octobre 2011, Arm ltd annonce le jeu d'instructions 64 bits ARM (compatible avec les instructions 32 bits du ARMv7) au travers de sa nouvelle génération de processeurs : ARMv8. <a href="http://www.linuxembedded.fr/2011/10/un-pas-en-avant-pour-arm/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>﻿<a href="http://www.linuxembedded.fr/wp-content/uploads/2011/10/images.jpg"><img class="alignleft size-full wp-image-758" title="images" src="http://www.linuxembedded.fr/wp-content/uploads/2011/10/images.jpg" alt="" width="101" height="76" /></a><span style="line-height: 19px;">Les processeurs arm sont une famille concurente des bien connus Intel et AMD. Leur mode de fonctionnement est différent, la société Arm ltd est en charge du développement des architectures mais un grand nombre de fabriquants possèdent des licences et les implémentent.</span></p>
<p>Pour ne citer que les plus connus :</p>
<ul>
<li>Atmel (serie AT91)</li>
<li>Samsung (series S3xxxx / S5xxxx)</li>
<li>Qualcomm (serie SnapDragon)</li>
<li>Texas Instrument (serie OMAP)</li>
<li>Nvidia (serie Tegra)</li>
<li>Freescale (serie i.MX)</li>
</ul>
<p style="text-align: left;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;"> </span></p>
<p style="text-align: left;">Les processeurs ARM sont de type RISC (Reduced Instruction Set Computer) et possédaient jusqu&#8217;à maintenant un espace d&#8217;adressage de 32 bits seulement, alors qu&#8217;Intel et AMD produisent des processeurs x86 64 bits pour le grand public depuis plus de 10 ans.</p>
<p style="text-align: left;">Leur principale caractéristique est leur grand rapport puissance / consommation. Ils sont pour cela incontournables dans le monde de l&#8217;informatique embarqué. Arm ltd tente depuis peu de pénétrer le marché des serveurs, la dernière annonce en date ayant été faite par HP.</p>
<p>Le 27 octobre 2011, Arm ltd annonce le jeu d&#8217;instructions 64 bits ARM nommé A64, compatible avec les instructions 32 bits, au travers de sa nouvelle génération de processeurs : ARMv8.</p>
<p><img class="size-full wp-image-759 aligncenter" title="arm" src="http://www.linuxembedded.fr/wp-content/uploads/2011/10/arm1.jpg" alt="" width="173" height="81" /></p>
<p>Profitons-en pour faire un tour rapide (non exhaustif) des familles de processeurs ARM.</p>
<ul>
<li>ARMv1 : premier prototype (1985)</li>
<li>ARMv2 : premier produit commercial (1987)</li>
<li>ARMv4T : Arrivé MMU + thumb</li>
<li>ARMv5TE : arrivé fonctionnalitées DSP</li>
<li>ARM11 : arrivé de l&#8217;unité de calculs flottants</li>
<li>Cortex-A5 (ARMv7-A) : processeurs d&#8217;applications premier de la famille ARMv7</li>
<li>Cortex-A9 (ARMv7-A) : ajout du support multicore (MPCore)</li>
<li>ARMv8 : Jeu d&#8217;instructions 64 bits (2011)</li>
</ul>
<p>Cette annonce du passage en 64 bits est couplée à celle de Applied Micro qui a présenté lors du ARM techcon la première implémentation du ARMv8 : le X-Gene. Ce type de processeur n&#8217;est à priori pas orienté systèmes embarqués (avec ses 128 coeurs cadencés à 3GHz), mais de nouvelles implémentations devraient voir le jour en 2012, pour une commercialisation courant 2014&#8230;<br />
Le jeu d&#8217;instructions ARMv8 est entièrement rétrocompatible avec celui ARMv7. Il reste en taille fixe et à 32 bits par instruction. Les changements introduits par le passage en 64 bits sont globalement circonscrits aux seules parties le nécessitant. Par exemple :</p>
<ul>
<li>Les General Purpose Registers sont bien entendus étendus à 64 bits.</li>
<li>Passage à 31 G﻿eneral Purpose Registers.</li>
<li>Un modèle d&#8217;exceptions entièrement revu.</li>
<li>L&#8217;espace d&#8217;adressage passe à 64 bits.</li>
<li>Les modules de cryptographie hardware sont améliorés.</li>
<li>Le thumb2 et simd restent équivalent à l&#8217;architecture 32 bits.</li>
</ul>
<p>En clair, un processeur ARMv8 avec un OS 64 bits sera capable de faire fonctionner des applications 32 bits en parallèle avec des applications 64 bits sans soucis.<br />
Arm ltd précise bien que cela ne signifie pas la fin de l&#8217;architecture 32 bits. Celle ci pourra même bénéficier de certaines améliorations de l&#8217;architecture 64 bits.</p>
<p>Les périphériques embarqués devenant de plus en plus gourmands (et donc puissants), l&#8217;avenir nous dira comment cette nouvelle gamme de processeurs pourra suivre, voir même influencer le marché.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2011/10/un-pas-en-avant-pour-arm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concours : Résultats de la phase 1</title>
		<link>http://www.linuxembedded.fr/2011/10/concours-resultats-de-la-phase-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concours-resultats-de-la-phase-1</link>
		<comments>http://www.linuxembedded.fr/2011/10/concours-resultats-de-la-phase-1/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 11:22:05 +0000</pubDate>
		<dc:creator>Benoit Mauduit</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[concours]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[qemu]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=717</guid>
		<description><![CDATA[La phase 1 du concours Linux Embedded s&#8217;est terminée le Jeudi 20 Octobre à 23h59. Le concours consiste à mettre au point un système Linux embarqué démarrant le plus vite possible pour une cible FriendlyARM. La première phase s&#8217;est déroulée &#8230;  <a href="http://www.linuxembedded.fr/2011/10/concours-resultats-de-la-phase-1/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La phase 1 du concours Linux Embedded s&#8217;est terminée le Jeudi 20 Octobre à 23h59.</p>
<p>Le concours consiste à mettre au point un système Linux embarqué démarrant le plus vite possible pour une cible FriendlyARM. La première phase s&#8217;est déroulée dans un environnement émulé par Qemu.</p>
<p>Premièrement, nous voulons remercier et féliciter tous les participants !<br />
Nous avons eu un total de 14 rendus dont la qualité globale a été remarquée par l&#8217;équipe du jury.<br />
<span id="more-717"></span><br />
Nous sommes heureux d&#8217;avoir pu aider la catégorie <em>Poussin</em> (les étudiants) en essayant d&#8217;être le plus pédagogique possible, pensant que ce concours est un excellent moyen d&#8217;acquérir de l&#8217;expérience dans le domaine de l&#8217;informatique embarquée.</p>
<p>Aussi, ce concours a permis d&#8217;améliorer le fork Qemu de Michel Pollet (alias <em>BusError</em>) supportant la carte mini2440. D&#8217;autres contributions et techniques d&#8217;optimisation très intéressantes ont également été observées, mais feront l&#8217;objet d&#8217;un autre article à la fin du concours.</p>
<p>Les heureux gagnants sont donc :</p>
<p><strong>Équipe des Poussins :</strong></p>
<table border="1" cellspacing="2" cellpadding="2" align="center" bgcolor="#EEEEFF">
<tbody>
<tr align="center">
<th>Nom</th>
<th>Temps de boot Mesuré</th>
</tr>
<tr align="center">
<td>7totomatix</td>
<td>2,5s</td>
</tr>
<tr align="center">
<td>Anbreizh</td>
<td>1,7s</td>
</tr>
<tr align="center">
<td>CLAX</td>
<td>1,4s</td>
</tr>
<tr align="center">
<td>leirbag</td>
<td>0,44s</td>
</tr>
</tbody>
</table>
<p><strong>Équipe des Vieux gnoux :</strong></p>
<table border="1" cellspacing="2" cellpadding="2" align="center" bgcolor="#EEEEFF">
<tbody>
<tr align="center">
<th>Nom</th>
<th>Temps de boot Mesuré</th>
</tr>
<tr align="center">
<td>Bids</td>
<td>0,3s</td>
</tr>
<tr align="center">
<td>Linuxconsole</td>
<td>3,6s</td>
</tr>
<tr align="center">
<td>Pouet</td>
<td>1,9s</td>
</tr>
<tr align="center">
<td>Sed</td>
<td>0,4s</td>
</tr>
<tr align="center">
<td>yargil</td>
<td>0,3s</td>
</tr>
</tbody>
</table>
<p>De par la nature de l&#8217;émulateur, les temps indiqués ne correspondent pas à un temps que l&#8217;on pourrait observer en situation réelle et sont donc affichés ici à titre indicatif.</p>
<p>Les participants dont le nom est cité ci-dessus recevront une carte FriendlyARM mini2440 afin de poursuivre le concours dans sa deuxième phase.</p>
<p>Pour les autres participants, étant donnés les projets prometteurs reçus mais non retenus, nous vous accordons une seconde chance pour cette phase et ce jusqu&#8217;au <strong>15 Novembre 2011 à 12h00</strong>.<br />
La date limite de la seconde phase du concours n&#8217;est quant à elle pas modifiée et maintenue au 31 Décembre 2011, les retardataires auront donc moins de temps d&#8217;optimisation sur la carte FriendlyARM.</p>
<p>Bon courage et merci à tous les participants !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2011/10/concours-resultats-de-la-phase-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conférence sur les IHM embarquées</title>
		<link>http://www.linuxembedded.fr/2011/10/conference-sur-les-ihm-embarquees/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conference-sur-les-ihm-embarquees</link>
		<comments>http://www.linuxembedded.fr/2011/10/conference-sur-les-ihm-embarquees/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 10:03:39 +0000</pubDate>
		<dc:creator>Alexandre Lahaye</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[EFL]]></category>
		<category><![CDATA[graphique]]></category>

		<guid isPermaLink="false">http://www.linuxembedded.fr/?p=705</guid>
		<description><![CDATA[Jeudi dernier s&#8217;est tenu une conférence proposant un ﻿panorama des solutions utilisées pour concevoir des interfaces graphiques adaptées aux produits embarqués. Plus de 30 professionnels, issus de plusieurs secteurs d&#8217;activités, se sont donc retrouvés le 20 octobre dernier. Ils ont &#8230;  <a href="http://www.linuxembedded.fr/2011/10/conference-sur-les-ihm-embarquees/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jeudi dernier s&#8217;est tenu une conférence proposant un ﻿panorama des solutions utilisées pour concevoir des interfaces graphiques adaptées aux produits embarqués.<br />
<span id="more-705"></span></p>
<p><img src="http://www.linuxembedded.fr/wp-content/uploads/2011/10/20111020-IHM-OWI.jpeg" alt="" width="582" height="242" class="alignnone size-full wp-image-713" /><br />
Plus de 30 professionnels, issus de plusieurs secteurs d&#8217;activités, se sont donc retrouvés le 20 octobre dernier. Ils ont pu profiter de l&#8217;expertise de consultants Open Wide (Pierre Ficheux et Pierre Le Magourou) et d&#8217;un contributeur majeur aux EFL (Cédric Bail). Les questions ont été nombreuses, en particulier concernant les EFL qui ont suscité un vif intérêt.</p>
<p>Les supports de présentation sont disponibles à cette adresse : <a href="http://ingenierie.openwide.fr/References/Conferences-techniques/Octobre-2011-Les-interfaces-graphiques-dans-l-embarque">ingenierie.openwide.fr/&#8230;/Conferences-techniques/&#8230;</a></p>
<p>Fort de ce succès, une nouvelle édition de cette conférence aura lieu le <a href="http://ingenierie.openwide.fr/Societe/Actualites/Evenement/News#news_2855">24 novembre à Toulouse</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxembedded.fr/2011/10/conference-sur-les-ihm-embarquees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

