Path: ...!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!pasdenom.info!from-devjntp Message-ID: JNTP-Route: news2.nemoweb.net JNTP-DataType: Article Subject: Re: Analyse utilisation =?UTF-8?Q?m=C3=A9moire=20C?= References: <63dc3dc0$0$3014$426a34cc@news.free.fr> Newsgroups: fr.sci.electronique Followup-To: fr.comp.lang.c JNTP-HashClient: klX1wgbOHxwxTT5FyMX2KpHM6ZQ JNTP-ThreadID: 93p3H_mDK2ioLBi5Zcdp_a8m2rg JNTP-ReferenceUserID: 115@news2.nemoweb.net JNTP-Uri: http://news2.nemoweb.net/?DataID=FUBzRdvuxHZhLW70_avWy1OdD5g@jntp User-Agent: Nemo/0.999a JNTP-OriginServer: news2.nemoweb.net Date: Fri, 24 Mar 23 07:46:58 +0000 Organization: Nemoweb JNTP-Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0 Injection-Info: news2.nemoweb.net; posting-host="359fb1dc8264fe85afa63c495a49bbde6ca15f37"; logging-data="2023-03-24T07:46:58Z/7753490"; posting-account="115@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net" JNTP-ProtocolVersion: 0.21.1 JNTP-Server: PhpNemoServer/0.94.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-JNTP-JsonNewsGateway: 0.96 From: Pascal06 Bytes: 3789 Lines: 55 Le 03/02/2023 à 10:23, Pascal06 a écrit : > Le 02/02/2023 à 23:48, JKB a écrit : >> Bonsoir, >> >> Pas sûr que je comprenne la demande. Si c'est pour un code >> s'exécutant sur une machine standard, il faut voir les sections du >> binaires (.data par exemple, ou .text). Le code source ne donnera >> pas grand'chose parce que le compilateur peut optimiser des tas de >> choses (alignement mémoire entre autre, champs de bits...). > Pascal Bonjour à toutes et tous, je reviens sur ce messages, car depuis j'ai trouvé des éléments de réponses. Il existe donc deux outils qui permettent d'analyser les fichiers map générés par le compilateur gcc: https://github.com/govind-mukundan/MapViewer https://www.sikorskiy.net/info/prj/amap/ Malheureusement, ces outils ne fonctionnent pas avec le code que je voulais analyser et qui est compilé avec XC8 de Microchip: celui-ci n'étant pas basé sur GCC (contrairement à XC16). Par contre, dans le code assembleur qui est généré (fichier .lst), il est indiqué en commentaire la taille de chacune des variables utilisées, par exemple: 1642 ;; *************** function _main ***************** 1643 ;; Defined at: 1644 ;; line 112 in file "main.c" 1645 ;; Parameters: Size Location Type 1646 ;; None 1647 ;; Auto vars: Size Location Type 1648 ;; sgOld 4 63[BANK0 ] unsigned long 1649 ;; spOld 4 59[BANK0 ] unsigned long 1650 ;; sg 4 0 unsigned long 1651 ;; sp 4 0 unsigned long 1652 ;; drvConfig 2 67[BANK0 ] struct . 1653 ;; adcRawValue 2 0 unsigned short 1654 ;; msdiStatus 1 0 enum E3961 1655 ;; i 1 0 unsigned char 1656 ;; Return value: Size Location Type 1657 ;; 2 313[None ] int 1658 ;; Registers used: 1659 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack Ce qui correspond donc tout à fait à ce que je cherchais. On voit par exemple que sgOld prend 4 octets, que c'est un unsigned long ( = uint32_t), qu'il utilise le bank0. Le micro 8 bits utilisé est une PIC16F15244 Ce fichier lst est placé dans le dossier /dist/default du projet. Si ça peut aider d'autre personnes ;) Pascal