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@37
|
71 The ELB816 architecture 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@42
|
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@40
|
86 written in a simple assembly language on any modern desktop or laptop,
|
jb302@40
|
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@40
|
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
|