annotate docs/lyx/intro.lyx @ 42:792da050d8c4 tip

more dox
author james <jb302@eecs.qmul.ac.uk>
date Tue, 22 Apr 2014 14:25:14 +0100
parents 6b947f6d69d9
children
rev   line source
jb302@37 1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
jb302@37 2 \lyxformat 413
jb302@37 3 \begin_document
jb302@37 4 \begin_header
jb302@37 5 \textclass article
jb302@37 6 \use_default_options true
jb302@37 7 \maintain_unincluded_children false
jb302@37 8 \language english
jb302@37 9 \language_package default
jb302@37 10 \inputencoding auto
jb302@37 11 \fontencoding global
jb302@37 12 \font_roman default
jb302@37 13 \font_sans default
jb302@37 14 \font_typewriter default
jb302@37 15 \font_default_family default
jb302@37 16 \use_non_tex_fonts false
jb302@37 17 \font_sc false
jb302@37 18 \font_osf false
jb302@37 19 \font_sf_scale 100
jb302@37 20 \font_tt_scale 100
jb302@37 21
jb302@37 22 \graphics default
jb302@37 23 \default_output_format default
jb302@37 24 \output_sync 0
jb302@37 25 \bibtex_command default
jb302@37 26 \index_command default
jb302@37 27 \paperfontsize default
jb302@37 28 \use_hyperref false
jb302@37 29 \papersize default
jb302@37 30 \use_geometry false
jb302@37 31 \use_amsmath 1
jb302@37 32 \use_esint 1
jb302@37 33 \use_mhchem 1
jb302@37 34 \use_mathdots 1
jb302@37 35 \cite_engine basic
jb302@37 36 \use_bibtopic false
jb302@37 37 \use_indices false
jb302@37 38 \paperorientation portrait
jb302@37 39 \suppress_date false
jb302@37 40 \use_refstyle 1
jb302@37 41 \index Index
jb302@37 42 \shortcut idx
jb302@37 43 \color #008000
jb302@37 44 \end_index
jb302@37 45 \secnumdepth 3
jb302@37 46 \tocdepth 3
jb302@37 47 \paragraph_separation indent
jb302@37 48 \paragraph_indentation default
jb302@37 49 \quotes_language english
jb302@37 50 \papercolumns 1
jb302@37 51 \papersides 1
jb302@37 52 \paperpagestyle default
jb302@37 53 \tracking_changes false
jb302@37 54 \output_changes false
jb302@37 55 \html_math_output 0
jb302@37 56 \html_css_as_file 0
jb302@37 57 \html_be_strict false
jb302@37 58 \end_header
jb302@37 59
jb302@37 60 \begin_body
jb302@37 61
jb302@37 62 \begin_layout Part
jb302@37 63 Introduction
jb302@37 64 \end_layout
jb302@37 65
jb302@37 66 \begin_layout Section
jb302@37 67 Motivations
jb302@37 68 \end_layout
jb302@37 69
jb302@37 70 \begin_layout Standard
jb302@42 71 The ELB816 architecture [1] is designed to be a
jb302@37 72 \begin_inset Quotes eld
jb302@37 73 \end_inset
jb302@37 74
jb302@37 75 simple to understand 8-bit microprocessor system to help learn about micro-proce
jb302@37 76 ssor electronics.
jb302@37 77 \begin_inset Quotes erd
jb302@37 78 \end_inset
jb302@37 79
jb302@37 80 .
jb302@37 81 The combination of an ELB816 emulator, debugger and assembler could be
jb302@37 82 used as a set of tools for learning or teaching micro-processor programming
jb302@40 83 without the intricacies of real-world commercial micro-processors getting
jb302@37 84 in the way of a fundamental understanding of the subject.
jb302@37 85 A PC based emulator would allow students to quickly develop and debug programs
jb302@37 86 written in a simple assembly language on any modern desktop or laptop,
jb302@37 87 and an MCS-51 port running on an 8052 would allow students to test programs
jb302@37 88 in an actual circuit.
jb302@37 89 EDE aims to bring together these components in order to provide an environment
jb302@37 90 for using ELB816 as an educational tool.
jb302@37 91 \end_layout
jb302@37 92
jb302@37 93 \begin_layout Section
jb302@37 94 Project Aims
jb302@37 95 \end_layout
jb302@37 96
jb302@37 97 \begin_layout Itemize
jb302@37 98 Develop an assembler for the ELB816 assembly language.
jb302@37 99 \end_layout
jb302@37 100
jb302@37 101 \begin_layout Itemize
jb302@37 102 Develop an emulated programmable micro-controller system based on the ELB816
jb302@37 103 micro-processor architecture.
jb302@37 104 \end_layout
jb302@37 105
jb302@37 106 \begin_layout Itemize
jb302@37 107 Develop a debugger that allows interactive debugging of programs running
jb302@37 108 on the emulator.
jb302@37 109 \end_layout
jb302@37 110
jb302@37 111 \begin_layout Section
jb302@37 112 Methodology
jb302@37 113 \end_layout
jb302@37 114
jb302@37 115 \begin_layout Subsection
jb302@37 116 Assembler
jb302@37 117 \end_layout
jb302@37 118
jb302@37 119 \begin_layout Description
jb302@37 120 Language: Python
jb302@37 121 \end_layout
jb302@37 122
jb302@37 123 \begin_layout Description
jb302@37 124 Priority: First
jb302@37 125 \end_layout
jb302@37 126
jb302@37 127 \begin_layout Standard
jb302@37 128 The assembler will be developed before anything else so that it can subsequently
jb302@37 129 be used to assemble test programs during development of the emulator.
jb302@37 130
jb302@37 131 \end_layout
jb302@37 132
jb302@37 133 \begin_layout Subsection
jb302@37 134 Emulator
jb302@37 135 \end_layout
jb302@37 136
jb302@37 137 \begin_layout Description
jb302@37 138 Language: C
jb302@37 139 \end_layout
jb302@37 140
jb302@37 141 \begin_layout Description
jb302@37 142 Priority: Second
jb302@37 143 \end_layout
jb302@37 144
jb302@37 145 \begin_layout Standard
jb302@37 146 The emulator will use only standard libraries in order to ensure it is portable
jb302@37 147 between compilers and platforms.
jb302@37 148 Specifically GCC for x86 and Keil C51 for Intel MCS-51.
jb302@37 149 The emulator will first be developed on Linux to facilitated rapid development.
jb302@37 150 It will be ported to MCS-51 once it is complete
jb302@37 151 \end_layout
jb302@37 152
jb302@37 153 \begin_layout Subsection
jb302@37 154 Debugger
jb302@37 155 \end_layout
jb302@37 156
jb302@37 157 \begin_layout Description
jb302@37 158 Language: C/Python
jb302@37 159 \end_layout
jb302@37 160
jb302@37 161 \begin_layout Description
jb302@37 162 Priority: Second
jb302@37 163 \end_layout
jb302@37 164
jb302@37 165 \begin_layout Standard
jb302@37 166 The debug interface will be developed along side the emulator.
jb302@37 167 It will communicate with a a simple control function, built into the emulator,
jb302@37 168 that will read commands using C's
jb302@37 169 \begin_inset listings
jb302@37 170 lstparams "basicstyle={\ttfamily}"
jb302@37 171 inline true
jb302@37 172 status open
jb302@37 173
jb302@37 174 \begin_layout Plain Layout
jb302@37 175
jb302@37 176 stdio.h
jb302@37 177 \end_layout
jb302@37 178
jb302@37 179 \end_inset
jb302@37 180
jb302@37 181 library.
jb302@37 182 This means that on Linux the commands will be issued using
jb302@37 183 \begin_inset listings
jb302@37 184 lstparams "basicstyle={\ttfamily}"
jb302@37 185 inline true
jb302@37 186 status open
jb302@37 187
jb302@37 188 \begin_layout Plain Layout
jb302@37 189
jb302@37 190 STDIN
jb302@37 191 \end_layout
jb302@37 192
jb302@37 193 \end_inset
jb302@37 194
jb302@37 195 and on the MCS-51 version they will be issued over a serial interface.
jb302@37 196 Python will be used to build a controller class for sending commands to
jb302@37 197 and receiving data from the emulator.
jb302@37 198 Python will also be used to build a text based user interface on top of
jb302@37 199 this.
jb302@37 200 \end_layout
jb302@37 201
jb302@37 202 \end_body
jb302@37 203 \end_document