Skip to content

Commit

Permalink
Readme updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
cederom committed Feb 14, 2017
1 parent bba64ff commit 8f7d90d
Showing 1 changed file with 53 additions and 35 deletions.
88 changes: 53 additions & 35 deletions README.md
Expand Up @@ -7,49 +7,59 @@ http://www.icederom.com
# About # About
iCeDeROM - a Swiss Army Knife Multi-Tool for Digital Electronics - is a platform and hardware independent python-based low-level development and analysis software utility to work with microelectronic devices such as embedded and computer systems. iCeDeROM - a Swiss Army Knife Multi-Tool for Digital Electronics - is a platform and hardware independent python-based low-level development and analysis software utility to work with microelectronic devices such as embedded and computer systems.


iCeDeROM was started by Tomasz Bolesław CEDRO (http://www.tomek.cedro.info) in 2014 as an Open-Source project. iCeDeROM was started by CeDeROM Tomasz Bolesław CEDRO (http://www.tomek.cedro.info) in 2014 as an Open-Source project.




# Features # Features


## Available Features ## Available Features / Work in Progress..


[X] Python 2.7 - [X] Python 3.6.
[ ] Switch to Python 3.6. - [X] Switch from Python 2.7 to Python 3.6.
[ ] Run all from Virtualenv. - [X] Run all from Virtualenv.
[ ] Automate Python+Virtualenv+Dependencies setup. - [ ] Make sure all functions work on Python3.6.
[X] Qt4 GUI: MDI (Multiple Document Interface) for modules windows, Panels for configuration, etc. - [ ] Automate Python+Virtualenv+Dependencies setup.
[ ] Switch to PyQt5. - [X] Qt5 GUI: MDI (Multiple Document Interface) for modules windows, Panels for configuration, etc.
[X] Logging: loglevels, file output, QtWidget output. - [X] Switch from PyQt4 to PyQt5.
[X] Python Console: buil-it python interpreter with access to all modules, QtWidget CLI. - [ ] Make sure all functions work on PyQt5.
[X] Interface: various hardware interface infrastructure, QtWidget configuration. - [X] Logging: loglevels, file output, QtWidget output.
[X] Terminal: Serial Console Port terminal, QtWidget CLI. - [ ] Fix broken logging after switch to PyQt5.
- [X] Python Console: buil-it python interpreter with access to all modules, QtWidget CLI.
- [ ] Add prompt to built-int interpreter shell.
- [X] Interface: various hardware interface infrastructure, QtWidget configuration.
- [ ] Make Terminal use Interface encoding.
- [X] Terminal
- [x] Serial Console Port terminal
- [X] QtWidget CLI
- [ ] Terminal history search.
- [ ] RegExp search.
- [ ] Terminal cursor/move/select/append fixes.




## Planned Features ## Planned Features


[ ] Common iCeDeROM API. - [ ] Common iCeDeROM API.
[ ] No GUI operaitons (i.e. shell only). - [ ] No GUI operaitons (i.e. shell only).
[ ] Python scripts automation. - [ ] Python scripts automation.
[ ] Interface Bitbang. - [ ] Interface Bitbang.
[ ] Transport Layer between Target Device and Interface Layer. - [ ] Transport Layer between Target Device and Interface Layer.
[ ] Various Hardware Interfaces support. - [ ] Various Hardware Interfaces support.
[ ] Memory buffer, chunk-based. - [ ] Memory buffer, chunk-based.
[ ] Hex Editor. - [ ] Hex Editor.
[ ] JTAG Support. - [ ] JTAG Support.
[ ] SWD Support. - [ ] SWD Support.
[ ] MIPS CPU Support. - [ ] MIPS CPU Support.
[ ] ARM CPU Support. - [ ] ARM CPU Support.
[ ] Intel CPU Support. - [ ] Intel CPU Support.
[ ] Debugging. - [ ] Debugging.
[ ] Memory Analysis. - [ ] Memory Analysis.




# Requirements, Dependencies, Hardware # Requirements, Dependencies, Hardware


## Python Virtual Environment ## Python Virtual Environment


Soon, a switch from Python2.7 to Python3.6 is planned. That would help A switch from Python2.7 to Python3.6 is almost complete. This helps
keeping all dependencies coherent and independent from underlying keeping all dependencies coherent and independent from underlying
operating system packages. See [Virtualenv](doc/virtualenv.md) manual operating system packages. See [Virtualenv](doc/virtualenv.md) manual
for more information. for more information.
Expand All @@ -58,8 +68,8 @@ for more information.
* `iCeDeROM.sh` script will launch application using virtualenv. * `iCeDeROM.sh` script will launch application using virtualenv.


## Software Dependencies ## Software Dependencies
* Python 2.7 (soon switching to Python3.6) * Python 3.6.
* PyQt4 (soon switching to PyQt5) * PyQt5.
* GitPython (download with pip) * GitPython (download with pip)
* pyLibFTDI (download with pip) * pyLibFTDI (download with pip)


Expand All @@ -71,11 +81,17 @@ pip install -r requirements.txt
``` ```


## Supported Hardware ## Supported Hardware
* FTDI USB Dongles - using LibFTDI wrapper
* Serial Console Port
* Manual and Preset Configuration (presets available for <a href="http://shop.kristech.pl/p/24/257/kt-link-.html" target="_blank">KT-LINK</a>)


## Documentation - [X] FTDI USB Dongles
- [X] Use LibFTDI. No need to install device driver!
- [X] Serial Console Port
- [X] LibFTDI based, no need to install device driver!
- [X] Manual and Preset Configuration (presets available for <a href="http://shop.kristech.pl/p/24/257/kt-link-.html" target="_blank">KT-LINK</a>)


# Documentation

## Manuals


* [Virtualenv](doc/virtualenv.md): Python Virtual Environment Reference Manual. * [Virtualenv](doc/virtualenv.md): Python Virtual Environment Reference Manual.


Expand All @@ -86,6 +102,8 @@ iCeDeROM is supposed to work as standalone application, but it should be also po


Modular design makes it possible to add new functionalities easily by use of existing software components that provide Python bindings. It should be also possible to interact with binaries and libraries that have no Python bindings. External modules and applications should be wrapped and adapted to work with iCeDeROM. Yet, no stable API is established. Below a functional proposition is presented. Modular design makes it possible to add new functionalities easily by use of existing software components that provide Python bindings. It should be also possible to interact with binaries and libraries that have no Python bindings. External modules and applications should be wrapped and adapted to work with iCeDeROM. Yet, no stable API is established. Below a functional proposition is presented.


Please note that below examples are just example of the organization. I am switching to Python3.6 and PyQt5 now..

Here is an example Core Module - a set of objects and functions wrapped in a Python Module: Here is an example Core Module - a set of objects and functions wrapped in a Python Module:
```python ```python
#!/usr/bin/env python #!/usr/bin/env python
Expand Down

0 comments on commit 8f7d90d

Please sign in to comment.