jb302@39: #LyX 2.0 created this file. For more info see http://www.lyx.org/ jb302@39: \lyxformat 413 jb302@39: \begin_document jb302@39: \begin_header jb302@39: \textclass article jb302@39: \use_default_options true jb302@39: \maintain_unincluded_children false jb302@39: \language english jb302@39: \language_package default jb302@39: \inputencoding auto jb302@39: \fontencoding global jb302@39: \font_roman default jb302@39: \font_sans default jb302@39: \font_typewriter default jb302@39: \font_default_family default jb302@39: \use_non_tex_fonts false jb302@39: \font_sc false jb302@39: \font_osf false jb302@39: \font_sf_scale 100 jb302@39: \font_tt_scale 100 jb302@39: jb302@39: \graphics default jb302@39: \default_output_format default jb302@39: \output_sync 0 jb302@39: \bibtex_command default jb302@39: \index_command default jb302@39: \paperfontsize default jb302@39: \use_hyperref false jb302@39: \papersize default jb302@39: \use_geometry false jb302@39: \use_amsmath 1 jb302@39: \use_esint 1 jb302@39: \use_mhchem 1 jb302@39: \use_mathdots 1 jb302@39: \cite_engine basic jb302@39: \use_bibtopic false jb302@39: \use_indices false jb302@39: \paperorientation portrait jb302@39: \suppress_date false jb302@39: \use_refstyle 1 jb302@39: \index Index jb302@39: \shortcut idx jb302@39: \color #008000 jb302@39: \end_index jb302@39: \secnumdepth 3 jb302@39: \tocdepth 3 jb302@39: \paragraph_separation indent jb302@39: \paragraph_indentation default jb302@39: \quotes_language english jb302@39: \papercolumns 1 jb302@39: \papersides 1 jb302@39: \paperpagestyle default jb302@39: \tracking_changes false jb302@39: \output_changes false jb302@39: \html_math_output 0 jb302@39: \html_css_as_file 0 jb302@39: \html_be_strict false jb302@39: \end_header jb302@39: jb302@39: \begin_body jb302@39: jb302@39: \begin_layout Part jb302@39: The ELB816 Development Environment jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Section jb302@39: EDE Overview jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: EDE is a software implementation of the ELB816 micro-processor along with jb302@39: a basic tool chain to develop and debug code for it. jb302@39: The block diagram below depicts the system that this project aims to implement. jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset ERT jb302@39: status open jb302@39: jb302@39: \begin_layout Plain Layout jb302@39: jb302@39: jb302@39: \backslash jb302@39: bigskip jb302@39: \end_layout jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset Graphics jb302@39: filename /home/jmz/qm/ede/docs/img/ede/system_overview.svg jb302@39: display false jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Section jb302@39: EDE Use Cases jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: EDE is highly modular. jb302@42: Each of it's components, with the exception of the UI, is written as a jb302@42: stand alone programs and works independently. jb302@39: Because of this design strategy EDE can be used in a number of different jb302@39: ways. jb302@39: This section details the use cases experimented with so far. jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Subsection jb302@39: Assemble/Upload/Execute/Debug jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: Using the tool chain in this manner is analogous to programming and run-time jb302@39: debugging a real-world micro-controller. jb302@42: Source code is assembled and written into the emulator's memory. jb302@42: The user can then use the debug prompt to step through program and probe jb302@42: the emulator internals. jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset ERT jb302@39: status open jb302@39: jb302@39: \begin_layout Plain Layout jb302@39: jb302@39: jb302@39: \backslash jb302@39: bigskip jb302@39: \end_layout jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset Graphics jb302@39: filename /home/jmz/qm/ede/docs/img/ede/aued.svg jb302@39: display false jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@42: \begin_inset Newpage pagebreak jb302@42: \end_inset jb302@42: jb302@42: jb302@42: \end_layout jb302@42: jb302@42: \begin_layout Subsection jb302@42: Interpreter Mode jb302@42: \end_layout jb302@42: jb302@42: \begin_layout Standard jb302@42: Source code does not have to be pre-assembled. jb302@42: Since the command-line interface, the assembler and the debugger are all jb302@42: written in python, the assembler's functions can be imported into the interface jb302@42: code. jb302@42: This has been done to create a mode where the user enters assembly code jb302@42: at a prompt, and then that code is immediately assembled and executed on jb302@42: an instance of the emulator. jb302@42: \end_layout jb302@42: jb302@42: \begin_layout Standard jb302@39: \begin_inset ERT jb302@39: status open jb302@39: jb302@39: \begin_layout Plain Layout jb302@39: jb302@39: jb302@39: \backslash jb302@39: bigskip jb302@39: \end_layout jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@42: \begin_layout Standard jb302@42: \begin_inset Graphics jb302@42: filename /home/jmz/qm/ede/docs/img/ede/interpreter.svg jb302@42: display false jb302@42: jb302@42: \end_inset jb302@42: jb302@42: jb302@42: \end_layout jb302@42: jb302@39: \end_body jb302@39: \end_document