Skip to main content

Analysing code footprint on embedded microcontrollers using GCC generated Map files

Project description

https://img.shields.io/pypi/v/fpvgcc.svg?logo=pypi https://img.shields.io/pypi/pyversions/fpvgcc.svg?logo=pypi https://img.shields.io/travis/ebs-universe/fpv-gcc.svg?logo=travis https://img.shields.io/coveralls/github/ebs-universe/fpv-gcc.svg?logo=coveralls https://img.shields.io/requires/github/ebs-universe/fpv-gcc.svg https://img.shields.io/pypi/l/fpvgcc.svg

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.

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.

The latest version of the sources can be found at GitHub. 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 . 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 . A copy of the text of the license is included along with the sources.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fpvgcc-1.0.0.tar.gz (184.8 kB view details)

Uploaded Source

Built Distribution

fpvgcc-1.0.0-py2.py3-none-any.whl (32.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file fpvgcc-1.0.0.tar.gz.

File metadata

  • Download URL: fpvgcc-1.0.0.tar.gz
  • Upload date:
  • Size: 184.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

File hashes

Hashes for fpvgcc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 190c447437d72f0631f6af1be6c4249ac161bfc45c72f631a07a30eb85be2cd2
MD5 3518ffc5125f032aa7d9060ccbcae4e2
BLAKE2b-256 ba32d36f3ef62a22a5bcb6bbe2d1db8a070f9ab078ffad4b8350877d28681c7f

See more details on using hashes here.

File details

Details for the file fpvgcc-1.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: fpvgcc-1.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

File hashes

Hashes for fpvgcc-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ecd5df34ad2edddaecd677c0303fdf5e62cbf75233ad85311c3ab16b89f81630
MD5 be355a6a724283329df005c24f997a22
BLAKE2b-256 3faff83df5a14c213ab27cfd7fad03e910d63efeb6c6019b3e988d91965dcdde

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page