# 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": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "embedded, elf, binary, memory",
"author": "Eekle",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/40/d8/0ed956a950a1632463cd8ea1197815e09fe7d4e03525f5123925a7be42c4/nesiac-0.4.3.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.3",
"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": "450abbd94d65ac488b347f82b8c85016856d51d84acbd168721fe9b035dabc87",
"md5": "67d502fb4087ade4de9bd24b21862928",
"sha256": "69e1b0e39775aa1bbb66690e3b650b26fbb4903e2d11caeb1d6be99168236da8"
},
"downloads": -1,
"filename": "nesiac-0.4.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "67d502fb4087ade4de9bd24b21862928",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 10108,
"upload_time": "2024-05-10T13:48:32",
"upload_time_iso_8601": "2024-05-10T13:48:32.222763Z",
"url": "https://files.pythonhosted.org/packages/45/0a/bbd94d65ac488b347f82b8c85016856d51d84acbd168721fe9b035dabc87/nesiac-0.4.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "40d80ed956a950a1632463cd8ea1197815e09fe7d4e03525f5123925a7be42c4",
"md5": "29000061236da9c9340038e526f8155d",
"sha256": "65d350f45e99741c588f643dc10b1079357e9b28b748f23b485b93686395454e"
},
"downloads": -1,
"filename": "nesiac-0.4.3.tar.gz",
"has_sig": false,
"md5_digest": "29000061236da9c9340038e526f8155d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 7800,
"upload_time": "2024-05-10T13:48:33",
"upload_time_iso_8601": "2024-05-10T13:48:33.831261Z",
"url": "https://files.pythonhosted.org/packages/40/d8/0ed956a950a1632463cd8ea1197815e09fe7d4e03525f5123925a7be42c4/nesiac-0.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-10 13:48:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Eekle",
"github_project": "Nesiac",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nesiac"
}