{"id":2365,"date":"2012-06-11T07:00:08","date_gmt":"2012-06-11T06:00:08","guid":{"rendered":"http:\/\/www.blaess.fr\/christophe\/?p=2365"},"modified":"2012-11-30T13:43:12","modified_gmt":"2012-11-30T12:43:12","slug":"la-andaboard-au-poteau-de-torture-1-disjonction-thermique","status":"publish","type":"post","link":"https:\/\/www.blaess.fr\/christophe\/2012\/06\/11\/la-andaboard-au-poteau-de-torture-1-disjonction-thermique\/","title":{"rendered":"La Pandaboard au poteau de torture &#8211; 1 &#8211; Disjonction thermique"},"content":{"rendered":"<p style=\"text-align: justify;\"><a href=\"http:\/\/www.blaess.fr\/christophe\/2012\/06\/11\/la-andaboard-au-poteau-de-torture-1-disjonction-thermique\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-2379\" title=\"La Pandaboard au poteau de torture\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau.png\" alt=\"La Pandaboard au poteau de torture\" width=\"150\" height=\"109\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Je conseille souvent \u00e0 mes clients de faire des tests de longues dur\u00e9es pour leurs syst\u00e8mes temps r\u00e9el avec des charges extr\u00e9mement \u00e9lev\u00e9es, tant en interruptions qu&rsquo;en processus, afin de valider la bonne tenue de l&rsquo;architecture choisie. Il s&rsquo;agit d&rsquo;aller sensiblement au-del\u00e0 de la charge pr\u00e9vue lors de la conception, et de laisser le syst\u00e8me en fonctionnement le plus longtemps possible (plusieurs jours au minimum) afin de pouvoir observer les cas rares o\u00f9 les latences maximales sont atteintes.<\/p>\n<p style=\"text-align: justify;\">Nous allons r\u00e9aliser ce genre de <em>torture test<\/em> pour la Pandaboard.<\/p>\n<p>\n<!--more-->\n<\/p>\n<h1>Tenue en charge maximale<\/h1>\n<p style=\"text-align: justify;\">Le premier test \u00e0 r\u00e9aliser avec un \u00e9quipement embarqu\u00e9 est de v\u00e9rifier s&rsquo;il peut tenir une charge processeur maximale de mani\u00e8re prolong\u00e9e. Ceci est facile \u00e0 r\u00e9aliser. Prenons un petit processus bouclant ind\u00e9finiment.<\/p>\n<pre><a title=\"boucle.c\" href=\"http:\/\/www.blaess.fr\/christophe\/files\/article-2012-06-11\/boucle.c\" target=\"_blank\"><strong>boucle.c<\/strong><\/a>\n\nint main(void)\n{\n    while(1)\n        ;\n}<\/pre>\n<p style=\"text-align: justify;\">Cette boucle consommera tous les cycles CPU que le noyau lui laissera. Nous allons en lancer deux instances en parall\u00e8le (une sur chaque coeur) sur la Pandaboard.<\/p>\n<pre>[Panda]# <strong>\/root\/boucle &amp;<\/strong>\n[Panda]# <strong>\/root\/boucle &amp;<\/strong>\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">Si nous laissons tourner ce syst\u00e8me pendant un moment, le processeur de la Pandaboard va se mettre \u00e0 chauffer (ce qui est tout \u00e0 fait normal) mais n&rsquo;arrivera pas \u00e0 dissiper toute la chaleur qu&rsquo;il produit (ce qui est plus discutable). Aussi arriv\u00e9 \u00e0 un certain seuil, un disjoncteur thermique se d\u00e9clenche et coupera l&rsquo;alimentation. La dur\u00e9e avant la disjontion thermique varie en fonction de la temp\u00e9rature initiale du processeur (et donc de son activit\u00e9 ant\u00e9rieure) et des mouvements d&rsquo;air dans la pi\u00e8ce.<\/p>\n<p style=\"text-align: justify;\">Pour en avoir le coeur net, j&rsquo;ai utilis\u00e9 un <a title=\"http:\/\/hardwarebug.org\/files\/omap4_temp.c\" href=\"http:\/\/hardwarebug.org\/files\/omap4_temp.c\" target=\"_blank\">petit programme de Mans Rullgard<\/a> (en voici une <a title=\"omap4_temp.c\" href=\"http:\/\/www.blaess.fr\/christophe\/files\/article-2012-06-11\/omap4_temp.c\" target=\"_blank\">copie locale<\/a>) qui permet d&rsquo;afficher la temp\u00e9rature du processeur (en degr\u00e9s celsius).<\/p>\n<pre>[Panda]# <strong>.\/omap4_temp<\/strong>\n59\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">Nous partons d&rsquo;un \u00e9tat o\u00f9 le processeur est d\u00e9j\u00e0 en marche depuis quelques dizaines de secondes, mais n&rsquo;a pas travaill\u00e9 de mani\u00e8re intensive. Au bout de trente secondes nous lan\u00e7ons la premi\u00e8re boucle, puis la seconde apr\u00e8s trente secondes suppl\u00e9mentaires.<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2382\" title=\"Processeur OMAP 4430 sur la Pandaboard\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-01.png\" alt=\"Processeur OMAP 4430 sur la Pandaboard\" width=\"600\" height=\"491\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">La valeur de temp\u00e9rature est relev\u00e9e toutes les secondes et stock\u00e9es dans un fichier de texte ainsi que la date (initialis\u00e9e au 01\/01\/2000 \u00e0 chaque boot) afin de pouvoir ajuster les diff\u00e9rentes courbes que nous obtiendrons.Voici le script que j&rsquo;ai utilis\u00e9 pour r\u00e9aliser cette exp\u00e9rience.<\/p>\n<pre><a title=\"test-montee-temperature.sh\" href=\"http:\/\/www.blaess.fr\/christophe\/files\/article-2012-06-11\/test-montee-temperature.sh\" target=\"_blank\"><strong>test-montee-temperature.sh:<\/strong><\/a>\n#! \/bin\/sh\n\nif [ $# -lt 1 ]\nthen\n\tFICHIER=\"traces-temperatures-$(date)\"\nelse\n\tFICHIER=\"$1\"\nfi\n\nsleep 5\n\ndate +\"[%Y\/%m\/%d %H:%M] Debut Mesure\"  &gt; \"$FICHIER\"\n\nfor i in $(seq 1 30)\ndo\n\tdate +\"[%Y\/%m\/%d %H:%M] $(\/root\/omap4_temp)\" &gt;&gt; \"$FICHIER\"\n\tsleep 1\ndone\n\ndate +\"[%Y\/%m\/%d %H:%M] Debut boucle 1\"\t&gt;&gt; \"$FICHIER\"\ntaskset 1 \/root\/boucle &amp;\n\nfor i in $(seq 1 30)\ndo\n\tdate +\"[%Y\/%m\/%d %H:%M] $(\/root\/omap4_temp)\" &gt;&gt; \"$FICHIER\"\n\tsleep 1\ndone\n\ndate +\"[%Y\/%m\/%d %H:%M] Debut boucle 2\"\t&gt;&gt; \"$FICHIER\"\n\ntaskset 2 \/root\/boucle &amp;\n\nwhile true\ndo\n\tdate +\"[%Y\/%m\/%d %H:%M] $(\/root\/omap4_temp)\" &gt;&gt; \"$FICHIER\"\n\tsleep 1\ndone<\/pre>\n<p style=\"text-align: justify;\">Le script attend un nom de fichier en argument.<\/p>\n<pre>[Panda]# <strong>\/root\/test-montee-temperature.sh \/root\/test-temperature-pandaboard-seule.txt<\/strong><\/pre>\n<p style=\"text-align: justify;\">Le programme tourne pendant une vingtaine de minutes, puis la carte s&rsquo;arr\u00eate soudainement. Le fichier de r\u00e9sultats est stock\u00e9 sur la carte SD (m\u00eame s&rsquo;il est probablement tronqu\u00e9 d&rsquo;un ou deux derniers enregistrements).<\/p>\n<pre>[Panda]# <strong>cat \/root\/test-temperature-pandaboard-seule.txt<\/strong>\n[2000\/01\/01 10:10] Debut Mesure\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 37\n[2000\/01\/01 10:10] 39\n[2000\/01\/01 10:10] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 39\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] Debut boucle 1\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 41\n[2000\/01\/01 10:11] 42\n[2000\/01\/01 10:11] 42\n[2000\/01\/01 10:11] 42\n[2000\/01\/01 10:11] 44\n[...]\n[2000\/01\/01 10:34] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[2000\/01\/01 10:35] 99\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">L&rsquo;exp\u00e9rience a donc dur\u00e9 25 minutes. En examinant les valeurs, on remarque que la temp\u00e9rature monte tr\u00e8s rapidement aux alentours de 70\u00b0C puis continue \u00e0 cro\u00eetre r\u00e9guli\u00e8rement. Les 90\u00b0C sont atteints au bout d&rsquo;une dizaine de minutes. Lorsque le seuil des 100\u00b0C est atteint, le processeur s&rsquo;arr\u00eate totalement.<\/p>\n<p style=\"text-align: justify;\">Voici la courbe de mont\u00e9e en temp\u00e9rature du processeur lorsqu&rsquo;il est charg\u00e9 au maximum de mani\u00e8re continue&nbsp;; cliquez sur la figure pour voir les d\u00e9tails.<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-seul2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2410\" title=\"Mont\u00e9e en temp\u00e9rature de l'OMAP seul\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-seul2-300x225.png\" alt=\"Mont\u00e9e en temp\u00e9rature de l'OMAP seul\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Il est donc clair que <strong>la carte Pandaboard ne supporte pas une charge de 100% du CPU de mani\u00e8re continue<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Ceci n&rsquo;est pas particuli\u00e8rement surprenant, la plupart des processeurs modernes sont con\u00e7us avec un souci d&rsquo;int\u00e9gration tel qu&rsquo;ils ne peuvent \u00e9vacuer toute la chaleur qu&rsquo;ils produisent en fonctionnant \u00e0 plein r\u00e9gime. Nous allons devoir am\u00e9liorer la dissipation thermique du processeur OMAP de la Pandaboard.<\/p>\n<h1>Ajout d&rsquo;un dissipateur thermique<\/h1>\n<p style=\"text-align: justify;\">Une seconde exp\u00e9rience va consister \u00e0 poser un petit radiateur de dissipation thermique sur le processeur (sans m\u00eame utiliser de p\u00e2te de contact, je n&rsquo;en avais plus au d\u00e9but de ces essais).<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright  wp-image-2387\" title=\"Dissipateur thermique simple\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-02.png\" alt=\"Dissipateur thermique simple\" width=\"168\" height=\"160\" \/><\/a> En informatique, un radiateur est une petite pi\u00e8ce m\u00e9tallique ayant une forte conductivit\u00e9 thermique et une forme incluant de nombreuses ailettes afin d&rsquo;augmenter au maximum la surface d&rsquo;\u00e9change avec l&rsquo;air ambiant. Le radiateur que je vais employer (photo ci-contre) a \u00e9t\u00e9 r\u00e9cup\u00e9r\u00e9 sur un ancien amplificateur. Il n&rsquo;est pas parfaitement adapt\u00e9 mais ses dimensions sont correctes. Naturellement dans le cas d&rsquo;une mise en production industrielle plus compl\u00e8te, on se procurera un dissipateur mieux ajust\u00e9.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-2389\" title=\"panda-poteau-03\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-03-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a>\u00c0 titre d&rsquo;exemple, voici un mod\u00e8le de radiateur que l&rsquo;on trouve sur des processeurs plus cons\u00e9quents (Pentium et ses descendants). On assure le contact entre le processeur et le radiateur \u00e0 l&rsquo;aide d&rsquo;une p\u00e2te thermique qui garantit une bonne conductivit\u00e9.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Nous allons r\u00e9it\u00e9rer notre exp\u00e9rience apr\u00e8s avoir plac\u00e9 un dissipateur sur l&rsquo;OMAP.<\/p>\n<pre>[Panda]# <strong>\/root\/test-montee-temperature.sh \/root\/test-temperature-pandaboard-dissipateur.txt<\/strong><\/pre>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2398\" title=\"Dissipateur thermique sur processeur OMAP\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-04-300x201.png\" alt=\"Dissipateur thermique sur processeur OMAP\" width=\"300\" height=\"201\" \/><\/a>Le programme ne s&rsquo;arr\u00eate pas cette fois. Au bout d&rsquo;un peu plus d&rsquo;une heure je l&rsquo;ai interrompu manuellement.<\/p>\n<pre>   (Contr\u00f4le-C)\n[Panda]# <strong>killall boucle<\/strong>\n[Panda]# <strong>cat \/root\/test-temperature-pandaboard-dissipateur.txt<\/strong>\n[2000\/01\/01 00:45] Debut Mesure\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 31\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:45] 32\n[2000\/01\/01 00:46] 32\n[2000\/01\/01 00:46] Debut boucle 1\n[2000\/01\/01 00:46] 34\n[2000\/01\/01 00:46] 34\n[2000\/01\/01 00:46] 34\n[2000\/01\/01 00:46] 36\n[2000\/01\/01 00:46] 36\n[2000\/01\/01 00:46] 36\n[2000\/01\/01 00:46] 36\n   [...]\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:55] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[2000\/01\/01 01:56] 76\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">La temp\u00e9rature s&rsquo;est stabilis\u00e9e \u00e0 76 \u00b0Celsius et le dissipateur arrive \u00e0 \u00e9vacuer l&rsquo;\u00e9nergie thermique d\u00e9gag\u00e9e par le CPU.<br \/>\n<a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-dissipateur1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2411\" title=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec dissipateur\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-dissipateur1-300x225.png\" alt=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec dissipateur\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<h1>Utilisation d&rsquo;un ventilateur<\/h1>\n<p style=\"text-align: justify;\">Le dissipateur thermique utilis\u00e9 pr\u00e9c\u00e9demment semble suffisant pour \u00e9vacuer la chaleur du CPU. Toutefois, dans le cas o\u00f9 la carte se trouverait dans un environnement clos (bo\u00eetier ou chassis ferm\u00e9), il serait n\u00e9cessaire d&rsquo;assurer une ventilation m\u00e9canique suppl\u00e9mentaire. Nous allons faire quelques essais avec un petit ventilateur de PC.<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2400\" title=\"Ventilateur suppl\u00e9mentaire\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-05-222x300.png\" alt=\"Ventilateur suppl\u00e9mentaire\" width=\"222\" height=\"300\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">J&rsquo;ai plac\u00e9 le ventilateur \u00e0 c\u00f4t\u00e9 de la carte Pandaboard de mani\u00e8re \u00e0 ce que le flux d&rsquo;air passe sur le processeur. Puis nous pouvons recommencer notre exp\u00e9rience.<\/p>\n<pre>[Panda]# <strong>\/root\/test-montee-temperature.sh \/root\/test-temperature-pandaboard-ventilateur.txt<\/strong><\/pre>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2403\" title=\"Ventilateur sur processeur OMAP\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-06-300x298.png\" alt=\"Ventilateur sur processeur OMAP\" width=\"300\" height=\"298\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Le programme fonctionnant sans interruption, je l&rsquo;ai arr\u00eat\u00e9 manuellement au bout d&rsquo;un peu plus d&rsquo;une demi-heure.<\/p>\n<pre>   (Contr\u00f4le-C)\n[Panda]# <strong>killall boucle<\/strong>\n[Panda]# <strong>cat \/root\/test-temperature-pandaboard-ventilateur.txt<\/strong>\n[2000\/01\/01 00:05] Debut Mesure\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] Debut boucle 1\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 34\n[2000\/01\/01 00:05] 36\n[2000\/01\/01 00:05] 36\n[2000\/01\/01 00:05] 36\n[2000\/01\/01 00:05] 36\n[2000\/01\/01 00:05] 36\n[2000\/01\/01 00:05] 37\n[...]\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[2000\/01\/01 00:40] 46\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">Les r\u00e9sultats sont remarquables&nbsp;: non seulement la temp\u00e9rature se situe bien en-dessous de celle obtenue auparavant, mais en plus elle est parfaitement stabilis\u00e9e.<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-ventilateur1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2412\" title=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec ventilateur\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-ventilateur1-300x225.png\" alt=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec ventilateur\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<h1>Cumul d&rsquo;un dissipateur et d&rsquo;un ventilateur<\/h1>\n<p style=\"text-align: justify;\">Cumulons maintenant les effets de nos deux dispositifs, pour v\u00e9rifier si la temp\u00e9rature est encore mieux r\u00e9gul\u00e9e.<br \/>\n<a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2401\" title=\"Dissipateur et ventilateur sur processeur OMAP\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/panda-poteau-07-300x237.png\" alt=\"Dissipateur et ventilateur sur processeur OMAP\" width=\"300\" height=\"237\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Au vu des r\u00e9sultats pr\u00e9c\u00e9dents, j&rsquo;ai arr\u00eat\u00e9 l&rsquo;exp\u00e9rience au bout de vingt-cinq minutes seulement car la temp\u00e9rature \u00e9tait bien stabilis\u00e9e.<\/p>\n<pre>[Panda]# <strong>\/root\/test-montee-temperature.sh \/root\/test-temperature-pandaboard-dissipateur-ventilateur.txt<\/strong>\n   (Contr\u00f4le-C)\n[Panda]# <strong>killall boucle<\/strong>\n[Panda]# <strong>cat \/root\/test-temperature-pandaboard-dissipateur-ventilateur.txt<\/strong>\n[2000\/01\/01 02:04] Debut Mesure\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:04] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] Debut boucle 1\n[2000\/01\/01 02:05] 29\n[2000\/01\/01 02:05] 31\n[2000\/01\/01 02:05] 31\n[2000\/01\/01 02:05] 31\n[2000\/01\/01 02:05] 31\n[...]\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[2000\/01\/01 02:31] 37\n[Panda]#<\/pre>\n<p style=\"text-align: justify;\">Cette fois le processeur ne d\u00e9passe pas les 40\u00b0, ce qui est une valeur vraiment basse lorsqu&rsquo;on r\u00e9alise qu&rsquo;il fonctionne \u00e0 plein r\u00e9gime.<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-dissipateur-ventilateur.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2413\" title=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec dissipateur et ventilateur\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperature-omap-dissipateur-ventilateur-300x225.png\" alt=\"Mont\u00e9e en temp\u00e9rature de l'OMAP avec dissipateur et ventilateur\" width=\"300\" height=\"225\" \/><\/a><\/p>\n<h1>Conclusion<\/h1>\n<p style=\"text-align: justify;\">Pour finir, j&rsquo;ai regroup\u00e9 les quatre exp\u00e9riences sur un seul graphique en tronquant la dur\u00e9e \u00e0 celle du premier essai (qui menait \u00e0 une disjonction thermique).<\/p>\n<p><a href=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperatures-omap1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2417\" title=\"Mont\u00e9e en temp\u00e9rature d'un processeur OMAP charg\u00e9 \u00e0 100%\" src=\"http:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2012\/06\/temperatures-omap1-300x177.png\" alt=\"Mont\u00e9e en temp\u00e9rature d'un processeur OMAP charg\u00e9 \u00e0 100%\" width=\"300\" height=\"177\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Nous pouvons ainsi voir l&rsquo;importance du refroidissement pour les syst\u00e8mes embarqu\u00e9s soumis \u00e0 des charges CPU importantes, et remarquer que la simple pr\u00e9sence d&rsquo;un petit dissipateur pos\u00e9 sur le processeur assure d\u00e9j\u00e0 une nette am\u00e9lioration des conditions de fonctionnement. Dans les prochains articles, nous allons laisser ce dissipateur en place pour mener des tests de performance sur des longues dur\u00e9es.<\/p>","protected":false},"excerpt":{"rendered":"<p>Je conseille souvent &agrave; mes clients de faire des tests de longues dur&eacute;es pour leurs syst&egrave;mes temps r&eacute;el avec des charges extr&eacute;mement &eacute;lev&eacute;es, tant en interruptions qu&rsquo;en processus, afin de valider la bonne tenue de l&rsquo;architecture choisie. Il s&rsquo;agit d&rsquo;aller sensiblement au-del&agrave; de la charge pr&eacute;vue lors de la conception, et de laisser le syst&egrave;me [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,8,10,14],"tags":[],"class_list":["post-2365","post","type-post","status-publish","format-standard","hentry","category-embarque","category-linux-2","category-microprocesseur","category-temps-reel"],"_links":{"self":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/2365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/comments?post=2365"}],"version-history":[{"count":1,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/2365\/revisions"}],"predecessor-version":[{"id":3240,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/2365\/revisions\/3240"}],"wp:attachment":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/media?parent=2365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/categories?post=2365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/tags?post=2365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}