# Overview
Nesiac is a terminal tool for visualising memory usage in embedded programs.
As an example when run on the STM32 "HID_Standalone" project for STM32H747I-DISCO board:
![image](https://github.com/Eekle/Nesiac/assets/96976531/e59df990-cb21-43a8-91d9-fda814f4189c)
# Installation
Nesiac may be installed with pip via:
`python -m pip install nesiac`
The `nesiac` executable will then be made available in your python executables directory, which should be on your path.
# Usage
Nesiac requires two files to do its analysis:
- An ELF file for section and symbol info
- A map file (in GCC style) for memory region info
If Nesiac is given a single path as argument, that path should be a directory containing exactly one `.elf` and one `.map` file. In that case, Nesiac will use those files for analysis.
Alternatively those paths may be overriden with the `-e,--elf-file` and `-m,--map-file` arguments.
Exporting a map file from GCC may be enabled with the `-Wl,-Map=<FILE>` flag.
If you are using a linker that cannot generate GCC style map files, then you can provide a dummy map file with the region info in the correct format:
```
Memory Configuration
Name Origin Length Attributes
FLASH 0x0000000008000000 0x0000000000100000 xr
RAM 0x0000000024000000 0x0000000000020000 xrw
ITCMRAM 0x0000000000000000 0x0000000000010000 xrw
*default* 0x0000000000000000 0xffffffffffffffff
```
# Languages
Nesiac will demangle C++ and Rust symbols when it finds them.
![image](https://github.com/Eekle/Nesiac/assets/96976531/56d88964-cc35-405e-8396-6c1106c357b0)
Raw data
{
"_id": null,
"home_page": "https://github.com/Eekle/Nesiac/",
"name": "nesiac",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "embedded,elf,binary,memory",
"author": "Eekle",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/f6/82/0d54dfe055f03270072b16d5bfb17650f0ac314305f62e05fdab56c183e2/nesiac-0.4.2.tar.gz",
"platform": null,
"description": "# Overview\n\nNesiac is a terminal tool for visualising memory usage in embedded programs.\n\nAs an example when run on the STM32 \"HID_Standalone\" project for STM32H747I-DISCO board:\n\n![image](https://github.com/Eekle/Nesiac/assets/96976531/e59df990-cb21-43a8-91d9-fda814f4189c)\n\n# Installation\n\nNesiac may be installed with pip via:\n\n`python -m pip install nesiac`\n\nThe `nesiac` executable will then be made available in your python executables directory, which should be on your path.\n\n# Usage\n\nNesiac requires two files to do its analysis:\n\n- An ELF file for section and symbol info\n- A map file (in GCC style) for memory region info\n\nIf Nesiac is given a single path as argument, that path should be a directory containing exactly one `.elf` and one `.map` file. In that case, Nesiac will use those files for analysis.\n\nAlternatively those paths may be overriden with the `-e,--elf-file` and `-m,--map-file` arguments.\n\nExporting a map file from GCC may be enabled with the `-Wl,-Map=<FILE>` flag.\n\nIf you are using a linker that cannot generate GCC style map files, then you can provide a dummy map file with the region info in the correct format:\n\n```\nMemory Configuration\n\nName Origin Length Attributes\nFLASH 0x0000000008000000 0x0000000000100000 xr\nRAM 0x0000000024000000 0x0000000000020000 xrw\nITCMRAM 0x0000000000000000 0x0000000000010000 xrw\n*default* 0x0000000000000000 0xffffffffffffffff\n```\n\n# Languages\n\nNesiac will demangle C++ and Rust symbols when it finds them.\n\n![image](https://github.com/Eekle/Nesiac/assets/96976531/56d88964-cc35-405e-8396-6c1106c357b0)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Memory usage visualiser for embedded applications",
"version": "0.4.2",
"project_urls": {
"Homepage": "https://github.com/Eekle/Nesiac/",
"Repository": "https://github.com/Eekle/Nesiac/"
},
"split_keywords": [
"embedded",
"elf",
"binary",
"memory"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fd0a7b75981d18ecbed9d77de74ed55c014ca02ba8dd4554684b15a483f514f5",
"md5": "410957298db9a56d9ca2ff4bdbb19b71",
"sha256": "b5edb58c5c2145c6d12448208361abb8f6840e7421c7d344a0fb70fb3d17d5ac"
},
"downloads": -1,
"filename": "nesiac-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "410957298db9a56d9ca2ff4bdbb19b71",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 10099,
"upload_time": "2023-10-10T06:49:22",
"upload_time_iso_8601": "2023-10-10T06:49:22.995421Z",
"url": "https://files.pythonhosted.org/packages/fd/0a/7b75981d18ecbed9d77de74ed55c014ca02ba8dd4554684b15a483f514f5/nesiac-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f6820d54dfe055f03270072b16d5bfb17650f0ac314305f62e05fdab56c183e2",
"md5": "3c955943e266f80999517ef634471332",
"sha256": "55622934ef3d00576a6e107605d873c098b7bf882515ba97e52fff8f961d1bed"
},
"downloads": -1,
"filename": "nesiac-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "3c955943e266f80999517ef634471332",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 7981,
"upload_time": "2023-10-10T06:49:24",
"upload_time_iso_8601": "2023-10-10T06:49:24.396560Z",
"url": "https://files.pythonhosted.org/packages/f6/82/0d54dfe055f03270072b16d5bfb17650f0ac314305f62e05fdab56c183e2/nesiac-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-10 06:49:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Eekle",
"github_project": "Nesiac",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nesiac"
}