Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tudssl/icemu
Intermittent Computing Emulator
https://github.com/tudssl/icemu
Last synced: about 1 month ago
JSON representation
Intermittent Computing Emulator
- Host: GitHub
- URL: https://github.com/tudssl/icemu
- Owner: TUDSSL
- Created: 2022-02-28T11:06:24.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T16:33:28.000Z (over 1 year ago)
- Last Synced: 2023-12-12T19:00:49.616Z (about 1 year ago)
- Language: C++
- Size: 2.35 MB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ICEmu
Intermittent Computing Emulator## Building ICEmu
1. Checkout ICEmu
2. Update all the sumbmodules: `git submodule update --init --recursive`
3. Setup the common libraries:
`./setup-lib.sh`
4. (optionally) Build arm code:
`./arm-code/build-gcc.sh` (or `build-clang.sh` if applicable)
5. Run an elf binary in ICEmu (the memory layout in the config file must
correspond to that of the device the .elf is created for).## Usage
You can either use the ICEmu binary directly, or use the wrapper script
[`bin/icemu`](bin/) to make running it easier.### Using the ICEmu binary directly
```
ICEmu ARM Emulator
Usage: ICEmu [options] program.elf
Allowed options:
-h [ --help ] produce help message
-c [ --config-file ] arg json config file
-e [ --elf-file ] arg elf input file
-p [ --plugin ] arg load plugin (can be passed multiple times)
-x [ --dump-hex ] dump hex file of the memory regions at completion
-b [ --dump-bin ] dump bin file of the memory regions at completion
-r [ --dump-reg ] dump file with the register values at completion
--dump-prefix arg (=dump-) dump file prefix
```### Using the icemu wrapper script
All options that do not relate to the wrapper (listed below) are passed directly
to the ICEmu binary (above). The wrapper helps you by:
* Searching default plugin directories, so no full path is needed.
* Searching default config directories, so no full path is needed.
* Selecting a default configuration if no configuration is provided.run `icemu --wrapper-info` for more details and check the wrapper
[README](bin/README.md).```
Usage: icemu [options] program.elf
ICEmu wrapper script options:
--help-wrapper produce this wrapper help message
--wrapper-info print wrapper info and options
--wrapper-plugins print all found plugins
--wrapper-configs print all found config files
```### Demo
![](doc/gif/icemu-build.gif)