jb302@39
|
1 #LyX 2.0 created this file. For more info see http://www.lyx.org/
|
jb302@39
|
2 \lyxformat 413
|
jb302@39
|
3 \begin_document
|
jb302@39
|
4 \begin_header
|
jb302@39
|
5 \textclass article
|
jb302@39
|
6 \use_default_options true
|
jb302@39
|
7 \maintain_unincluded_children false
|
jb302@39
|
8 \language english
|
jb302@39
|
9 \language_package default
|
jb302@39
|
10 \inputencoding auto
|
jb302@39
|
11 \fontencoding global
|
jb302@39
|
12 \font_roman default
|
jb302@39
|
13 \font_sans default
|
jb302@39
|
14 \font_typewriter default
|
jb302@39
|
15 \font_default_family default
|
jb302@39
|
16 \use_non_tex_fonts false
|
jb302@39
|
17 \font_sc false
|
jb302@39
|
18 \font_osf false
|
jb302@39
|
19 \font_sf_scale 100
|
jb302@39
|
20 \font_tt_scale 100
|
jb302@39
|
21
|
jb302@39
|
22 \graphics default
|
jb302@39
|
23 \default_output_format default
|
jb302@39
|
24 \output_sync 0
|
jb302@39
|
25 \bibtex_command default
|
jb302@39
|
26 \index_command default
|
jb302@39
|
27 \paperfontsize default
|
jb302@39
|
28 \use_hyperref false
|
jb302@39
|
29 \papersize default
|
jb302@39
|
30 \use_geometry false
|
jb302@39
|
31 \use_amsmath 1
|
jb302@39
|
32 \use_esint 1
|
jb302@39
|
33 \use_mhchem 1
|
jb302@39
|
34 \use_mathdots 1
|
jb302@39
|
35 \cite_engine basic
|
jb302@39
|
36 \use_bibtopic false
|
jb302@39
|
37 \use_indices false
|
jb302@39
|
38 \paperorientation portrait
|
jb302@39
|
39 \suppress_date false
|
jb302@39
|
40 \use_refstyle 1
|
jb302@39
|
41 \index Index
|
jb302@39
|
42 \shortcut idx
|
jb302@39
|
43 \color #008000
|
jb302@39
|
44 \end_index
|
jb302@39
|
45 \secnumdepth 3
|
jb302@39
|
46 \tocdepth 3
|
jb302@39
|
47 \paragraph_separation indent
|
jb302@39
|
48 \paragraph_indentation default
|
jb302@39
|
49 \quotes_language english
|
jb302@39
|
50 \papercolumns 1
|
jb302@39
|
51 \papersides 1
|
jb302@39
|
52 \paperpagestyle default
|
jb302@39
|
53 \tracking_changes false
|
jb302@39
|
54 \output_changes false
|
jb302@39
|
55 \html_math_output 0
|
jb302@39
|
56 \html_css_as_file 0
|
jb302@39
|
57 \html_be_strict false
|
jb302@39
|
58 \end_header
|
jb302@39
|
59
|
jb302@39
|
60 \begin_body
|
jb302@39
|
61
|
jb302@39
|
62 \begin_layout Part
|
jb302@39
|
63 The ELB816 Development Environment
|
jb302@39
|
64 \end_layout
|
jb302@39
|
65
|
jb302@39
|
66 \begin_layout Section
|
jb302@39
|
67 EDE Overview
|
jb302@39
|
68 \end_layout
|
jb302@39
|
69
|
jb302@39
|
70 \begin_layout Standard
|
jb302@39
|
71 EDE is a software implementation of the ELB816 micro-processor along with
|
jb302@39
|
72 a basic tool chain to develop and debug code for it.
|
jb302@39
|
73 The block diagram below depicts the system that this project aims to implement.
|
jb302@39
|
74 \end_layout
|
jb302@39
|
75
|
jb302@39
|
76 \begin_layout Standard
|
jb302@39
|
77 \begin_inset ERT
|
jb302@39
|
78 status open
|
jb302@39
|
79
|
jb302@39
|
80 \begin_layout Plain Layout
|
jb302@39
|
81
|
jb302@39
|
82
|
jb302@39
|
83 \backslash
|
jb302@39
|
84 bigskip
|
jb302@39
|
85 \end_layout
|
jb302@39
|
86
|
jb302@39
|
87 \end_inset
|
jb302@39
|
88
|
jb302@39
|
89
|
jb302@39
|
90 \end_layout
|
jb302@39
|
91
|
jb302@39
|
92 \begin_layout Standard
|
jb302@39
|
93 \begin_inset Graphics
|
jb302@39
|
94 filename /home/jmz/qm/ede/docs/img/ede/system_overview.svg
|
jb302@39
|
95 display false
|
jb302@39
|
96
|
jb302@39
|
97 \end_inset
|
jb302@39
|
98
|
jb302@39
|
99
|
jb302@39
|
100 \end_layout
|
jb302@39
|
101
|
jb302@39
|
102 \begin_layout Section
|
jb302@39
|
103 EDE Use Cases
|
jb302@39
|
104 \end_layout
|
jb302@39
|
105
|
jb302@39
|
106 \begin_layout Standard
|
jb302@39
|
107 EDE is highly modular.
|
jb302@42
|
108 Each of it's components, with the exception of the UI, is written as a
|
jb302@42
|
109 stand alone programs and works independently.
|
jb302@39
|
110 Because of this design strategy EDE can be used in a number of different
|
jb302@39
|
111 ways.
|
jb302@39
|
112 This section details the use cases experimented with so far.
|
jb302@39
|
113 \end_layout
|
jb302@39
|
114
|
jb302@39
|
115 \begin_layout Subsection
|
jb302@39
|
116 Assemble/Upload/Execute/Debug
|
jb302@39
|
117 \end_layout
|
jb302@39
|
118
|
jb302@39
|
119 \begin_layout Standard
|
jb302@39
|
120 Using the tool chain in this manner is analogous to programming and run-time
|
jb302@39
|
121 debugging a real-world micro-controller.
|
jb302@42
|
122 Source code is assembled and written into the emulator's memory.
|
jb302@42
|
123 The user can then use the debug prompt to step through program and probe
|
jb302@42
|
124 the emulator internals.
|
jb302@39
|
125 \end_layout
|
jb302@39
|
126
|
jb302@39
|
127 \begin_layout Standard
|
jb302@39
|
128 \begin_inset ERT
|
jb302@39
|
129 status open
|
jb302@39
|
130
|
jb302@39
|
131 \begin_layout Plain Layout
|
jb302@39
|
132
|
jb302@39
|
133
|
jb302@39
|
134 \backslash
|
jb302@39
|
135 bigskip
|
jb302@39
|
136 \end_layout
|
jb302@39
|
137
|
jb302@39
|
138 \end_inset
|
jb302@39
|
139
|
jb302@39
|
140
|
jb302@39
|
141 \end_layout
|
jb302@39
|
142
|
jb302@39
|
143 \begin_layout Standard
|
jb302@39
|
144 \begin_inset Graphics
|
jb302@39
|
145 filename /home/jmz/qm/ede/docs/img/ede/aued.svg
|
jb302@39
|
146 display false
|
jb302@39
|
147
|
jb302@39
|
148 \end_inset
|
jb302@39
|
149
|
jb302@39
|
150
|
jb302@39
|
151 \end_layout
|
jb302@39
|
152
|
jb302@39
|
153 \begin_layout Standard
|
jb302@42
|
154 \begin_inset Newpage pagebreak
|
jb302@42
|
155 \end_inset
|
jb302@42
|
156
|
jb302@42
|
157
|
jb302@42
|
158 \end_layout
|
jb302@42
|
159
|
jb302@42
|
160 \begin_layout Subsection
|
jb302@42
|
161 Interpreter Mode
|
jb302@42
|
162 \end_layout
|
jb302@42
|
163
|
jb302@42
|
164 \begin_layout Standard
|
jb302@42
|
165 Source code does not have to be pre-assembled.
|
jb302@42
|
166 Since the command-line interface, the assembler and the debugger are all
|
jb302@42
|
167 written in python, the assembler's functions can be imported into the interface
|
jb302@42
|
168 code.
|
jb302@42
|
169 This has been done to create a mode where the user enters assembly code
|
jb302@42
|
170 at a prompt, and then that code is immediately assembled and executed on
|
jb302@42
|
171 an instance of the emulator.
|
jb302@42
|
172 \end_layout
|
jb302@42
|
173
|
jb302@42
|
174 \begin_layout Standard
|
jb302@39
|
175 \begin_inset ERT
|
jb302@39
|
176 status open
|
jb302@39
|
177
|
jb302@39
|
178 \begin_layout Plain Layout
|
jb302@39
|
179
|
jb302@39
|
180
|
jb302@39
|
181 \backslash
|
jb302@39
|
182 bigskip
|
jb302@39
|
183 \end_layout
|
jb302@39
|
184
|
jb302@39
|
185 \end_inset
|
jb302@39
|
186
|
jb302@39
|
187
|
jb302@39
|
188 \end_layout
|
jb302@39
|
189
|
jb302@42
|
190 \begin_layout Standard
|
jb302@42
|
191 \begin_inset Graphics
|
jb302@42
|
192 filename /home/jmz/qm/ede/docs/img/ede/interpreter.svg
|
jb302@42
|
193 display false
|
jb302@42
|
194
|
jb302@42
|
195 \end_inset
|
jb302@42
|
196
|
jb302@42
|
197
|
jb302@42
|
198 \end_layout
|
jb302@42
|
199
|
jb302@39
|
200 \end_body
|
jb302@39
|
201 \end_document
|