Skip to content

Commit

Permalink
Added documentation + licences for Cython implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
holzkohlengrill committed Oct 28, 2019
1 parent fa4e952 commit 5b57908
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,19 @@ pip3 install pypiemma

Dependencies: Python 3.6 or higher; `pip3 install Pygments Markdown matplotlib pandas pypiscout`

<details closed>
<summary>Optional: Cython</summary>
For bigger projects escpecially the number of objects will grow. We provide an optional Cython implementation which can speed-up your analysis (you will gain typically about **30 % speed-up**).

For now we do not provide the binaries with Emma, hence you have to compile (make sure a suitable compiler is installed) it yourself (don't worry it is quick and easy):

Install the `Cython` package (`pip install Cython`) and (in the Emma top level folder) execute (MSVC is recommended on Windows):

```
python setup.py build_ext --inplace --compiler=msvc
```
</details>


## General Workflow
The following figure shows a possible workflow using Emma:
Expand Down Expand Up @@ -155,20 +168,21 @@ emma-dev (. at) googlegroups.com
| SCout (v1.8+) | [pypiscout](https://pypi.org/project/pypiscout/) | MIT | [https://github.com/holzkohlengrill/SCout](https://github.com/holzkohlengrill/SCout) |


**Dependencies needed to generate documentation:**
**Optional dependencies:**

Utility scripts in `./doc/` need additional dependencies. As a normal user you can ignore this.

| Library (version) | pip package name | Licence | URL |
|--------------------------|-----------------------------------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| gprof2dot (v2017.9.19+) | [gprof2dot](https://pypi.org/project/gprof2dot/) | LGPL-3.0 | [https://github.com/jrfonseca/gprof2dot](https://github.com/jrfonseca/gprof2dot) |
| pylint (v2.3.1+) | [pylint](https://pypi.org/project/pylint/) | GPL-2.0 | [https://github.com/PyCQA/pylint](https://github.com/PyCQA/pylint) |
| Cython (v0.29.13+) | [Cython](https://pypi.org/project/Cython/) | Apache-2.0 | [https://cython.org/](https://cython.org/) |

Please refer to the [gprof2dot project site](https://github.com/jrfonseca/gprof2dot) and install **its dependencies (this has to be done even if you install Emma via pip)**.

Note that those modules are invoked via subprocess calls within the ./genDoc/ scripts.

**Dependencies used for documentation on GitHub pages (separate, independent branch `gh-pages`):**
**Dependencies used to generate documentation for GitHub pages (separate, independent branch `gh-pages`):**

Utility scripts used to build GitHub pages documentation. As a normal user you can ignore this.

Expand Down
18 changes: 15 additions & 3 deletions doc/readme-emma.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,28 @@ This tool creates a summary/overview about static memory usage in form of a comm
* pypiscout 2.0 or higher: (`pip3 install pypiscout`)
* Tested on Windows and Linux systems

<details closed>
<summary>Optional: Cython</summary>
For bigger projects escpecially the number of objects will grow. We provide an optional Cython implementation which can speed-up your analysis (you will gain typically about **30 % speed-up**).

For now we do not provide the binaries with Emma, hence you have to compile (make sure a suitable compiler is installed) it yourself (don't worry it is quick and easy):

Install the `Cython` package (`pip install Cython`) and (in the Emma top level folder) execute (MSVC is recommended on Windows):

```
python setup.py build_ext --inplace --compiler=msvc
```
</details>


## Process
Using the Mapfile Analyser is a two step process. The first step is to extract the required information from the mapfiles and save it to .csv files.
This is done with the `Emma.py a` script. The second step is to visualise the data. This document explains the first part only, the visualisation is documented in the Emma visualiser readme document.

## Limitations
The Emma is only suitable for analyzing projects where the devices have a single linear physical address space:
The devices must have a single linear physical address space:

* Devices that use for example the Intel 8051 architecture have separate code and data address spaces that both
start at address 0x0000. Devices based on architectures like this can not be analyzed with Emma.
* Devices that use for example a Intel 8051 architecture have separate code and data address spaces that both start at address `0x0000`. Devices based on architectures like this can not entirely analysed with Emma.
* Devices that use for example the ARMv6M architecture have a single linear address space.
Devices based on architectures like this can be analyzed with Emma.

Expand Down

0 comments on commit 5b57908

Please sign in to comment.