Metadata-Version: 2.1
Name: fpvgcc
Version: 1.0.0
Summary: Analysing code footprint on embedded microcontrollers using GCC generated Map files
Home-page: https://github.com/ebs-universe/fpv-gcc
Author: Chintalagiri Shashank
Author-email: shashank@chintal.in
License: UNKNOWN
Project-URL: Documentation, https://fpvgcc.readthedocs.io/en/latest
Project-URL: Bug Tracker, https://github.com/ebs-universe/fpv-gcc/issues
Project-URL: Source Repository, https://github.com/ebs-universe/fpv-gcc
Description: 
        
        .. image:: https://img.shields.io/pypi/v/fpvgcc.svg?logo=pypi
            :target: https://pypi.org/project/fpvgcc
        
        .. image:: https://img.shields.io/pypi/pyversions/fpvgcc.svg?logo=pypi
            :target: https://pypi.org/project/fpvgcc
        
        .. image:: https://img.shields.io/travis/ebs-universe/fpv-gcc.svg?logo=travis
            :target: https://travis-ci.org/ebs-universe/fpv-gcc
        
        .. image:: https://img.shields.io/coveralls/github/ebs-universe/fpv-gcc.svg?logo=coveralls
            :target: https://coveralls.io/github/ebs-universe/fpv-gcc
        
        .. image:: https://img.shields.io/requires/github/ebs-universe/fpv-gcc.svg
            :target: https://requires.io/github/ebs-universe/fpv-gcc/requirements
        
        .. image:: https://img.shields.io/pypi/l/fpvgcc.svg
            :target: https://www.gnu.org/licenses/gpl-3.0.en.html
        
        
        
        .. inclusion-marker-do-not-remove
        
        Introduction
        ------------
        
        ``fpvgcc`` is a python script/package to help analyse code footprint on
        embedded microcontrollers using GCC generated Map files.
        
        This module uses information contained within ``.map`` files generated by
        gcc (when invoked with ``-Wl,-Map,out.map``), to provide easily
        readable summaries of static memory usage at various levels of the code
        hierarchy. This package generates no information that isn't already contained
        within the ``.map`` file.
        
        The provided outputs can be used to gain insight into the relative sizes of
        included code, and aid in prioritizing static memory optimization for very
        low memory platforms. Some provided functionality may also deliver minor
        usability improvements to the workflow involved in parsing though generated
        assembly listings.
        
        
        .. warning::
            This package does not attempt to perform any kind of dynamic analysis.
            All memory usage reported refers only to **static** memory usage. This
            means the size of actual functions and global variables which are
            instantiated in the C code itself.
        
            Anything on the call stack, such as function locals, will **not** be
            accounted for. Similarly, anything in the heap which is allocated at
            runtime using ``malloc`` or similar will **not** be accounted for.
        
            Due to this, the utility of this module is likely limited to code
            written for highly memory constrained embedded microcontrollers, where
            dynamic memory allocation is anyway avoided when possible.
        
        Known Issues
        ------------
        
        This script was first written based on the format of mapfiles
        generated by ``msp430-elf-gcc, v4.9.1``. Over time, it was modifed to
        accept elements found in mapfiles generated by later versions and gcc-based
        toolchains for other platforms.
        
        Still, remember that the file parsing was implemented by observing the
        content of real mapfiles, and not based on a file format specification.
        Even with toolchains it was written to support, there are large sections
        of the file that are not actually used. Due to this, the outputs generated
        are not always accurate. Various boundary conditions result in minor errors
        in size reporting.
        
        The following more serious issues are known. They should be fixed at some
        point, but for the moment I've chosen to work around them :
        
            - Having two C filenames with the same name (or generating the same
              obj name) in your tree will cause parsing to break on some
              platforms / toolchains.
        
        
        Project Information
        -------------------
        
        The latest version of the documentation, including installation, usage, and
        API/developer notes can be found at
        `ReadTheDocs <https://fpv-gcc.readthedocs.io/en/latest/index.html>`_.
        
        The latest version of the sources can be found at
        `GitHub <https://github.com/ebs-universe/fpv-gcc>`_. Please use GitHub's features
        to report bugs, request features, or submit pull/merge requests.
        
        The principle author for ``fpvgcc`` is Chintalagiri Shashank. The author can
        be contacted if necessary via the information on the
        `author's github profile <https://github.com/chintal>`_ . See the AUTHORS file
        for a full list of collaborators and/or contributing authors, if any.
        
        ``fpvgcc`` is distributed under the terms of the
        `GPLv3 license <https://www.gnu.org/licenses/gpl-3.0-standalone.html>`_ .
        A copy of the text of the license is included along with the sources.
        
        
Keywords: utilities
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Description-Content-Type: text/x-rst
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: tests
Provides-Extra: build
Provides-Extra: publish
