summaryrefslogtreecommitdiff
path: root/sim/ucsim/docs/index.html
blob: 36db93d72b586afaa247fbfda2077caa53ad1311 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Microcontroller Simulator</title>
  </head>
  <body style="    background-color: white;">
    [ <a href="news.html">News</a> ]
    [ <a href="#download">Download</a> (<a href="https://github.com/danieldrotos/ucsim/releases/latest">latest</a>) ]
    [ <a href="#install">Installation</a> ]
    [ <a href="#use">Usage</a> ]
    [ <a href="mailto:dr.dkdb@gmail.com">Mail to developer</a> ]
    
    <p> </p>

    <pre><tt><font size="+1">
        _____     _           
       / ____|   (_)          
 _   _| |     ___ _ _ __ ___  
| | | | |    / __| | '_ ` _ \ 
| |_| | |____\__ \ | | | | | |
\ ._,_|\_____|___/_|_| |_| |_|
| |                           
|_|                           
    </font></tt></pre>
    
    <h1>Software simulator for microcontrollers</h1>
    
    <p><b><i>&micro;Csim</i></b> can be used to simulate
      microcontrollers. It supports

      <ul><li>Intel (MCS51 family, MCS48, MCS80, MCS85)</li>
	<li>XA51,</li>
	<li>AVR core,</li>
	<li>Z80 (Z80, Z180, GB80, EZ80, Z80N, R800),</li>
	<li>TLCS90,</li>
	<li>Rabbit (r2k, r3k, r4k, r5k)</li>
	<li>Motorola (6800, 68hc08, 6809, 68hc11, 68hc12)</li>
	<li>MOS6502,</li>
	<li>ST7,</li>
	<li>STM8,</li>
	<li>Padauk (pdk13, pdk14, pdk15, pdk16)</li>
	<li>PicoBlaze,</li>
	<li><a href="https://danieldrotos.github.io/p12dev/">p1516,
	p2223</a> soft processors,</li>
	<li>F8 soft processor,</li>
	<li>OISC processors (URISC, MISC16)</li>
      </ul>
      
      It can run on Linux, Windows, OSX, BSD, and other systems.</p>

    <p>See <a href="news.html">what's new</a> in current version.</p>
      
      <h2><a name="download">Download</a></h2>
      
      <p>You can download <i>&micro;Csim</i> from two places:</p>
      
      
	
      <p><b>SDCC homepage.</b> <i>&micro;Csim</i> is part of the SDCC
        (Small Device C Compiler) project. You can download source of
        SDCC or precompiled binaries from <a href="http://sdcc.sf.net">http://sdcc.sf.net</a>.
	  Please note, that SDCC binary package contains limited <i>&micro;Csim</i>,
	including simulators for SDCC ports only.</p>
	
      <p><b><i>&micro;Csim</i> site.</b> Standalone source package is
	  available on the <i>&micro;Csim</i> web site:
	
        <a href="https://github.com/danieldrotos/ucsim/releases">https://github.com/danieldrotos/ucsim/releases</a></p>

	  <p>Home site contains precompiled Debian (i386 and amd64
	architectures) packages for all Debian based Linux
	distributions, Windows installer and standalone Windows
	    package.</p>
	  
	  <p>Older versions are available from the archive site: <a href="http://mazsola.iit.uni-miskolc.hu/ucsim/archive">http://mazsola.iit.uni-miskolc.hu/ucsim/download</a></p>
	  
	      
      <p><!-- INSTALL --></p>
      
      <h2><a name="install">How to install</a></h2>
      
      <p>UNIX version is distributed in source, as well as
	in pre-compiled debian stable packages for i386 and amd64
	architectures.</p>

      <p>Windows version distributed as a setup executable and as a
	portable zip package.</p>

      <h3>How to compile from source</h3>
      
    <ol>

      <li>Get archive file, uncompress and untar it. These steps will
        produce a directory <b>ucsim-X.Y.Z</b> where X.Y.Z is the
        version number. </li>
      
      <li>Make sure, that following packages are installed on your
      system: <b>make</b> (GNU make is required),
        <b>bison</b> (or yacc), <b>flex</b> (or lex), <b>libncurses-dev</b>.
        You will need a C++ compiler as well.</li>
      
      <li>Go to the directory and configure the
        package. Issue <tt><b>./configure</b></tt> command. It will
        determine your system and produce <b>Makefile</b>.
        Installation directory can be specified
        with <b><tt>--prefix=<i>dir</i></tt></b><!-- -- --> option to
        the <tt><b>configure</b></tt>. Default directory
        is <tt>/usr/local</tt>.  Executable files will be placed
        in <tt>bin</tt> subdirectory.</li>
      
      <li>Compile the package with <tt><b>make</b></tt> command,
      or <b>gmake</b> if GNU make has that name. </li>
      
      <li>Install
      executables <b>ucsim_i8051</b>, <b>ucsim_avr</b>, <b>ucsim_hc08</b>, <b>ucsim_xa</b>, <b>ucsim_z80,
      etc.</b> to any directory you want. It can be done
      with <tt><b>make install</b></tt> command which will place files
      in installation directory specified
      with <tt><b>--prefix=<i>dir</i></b><!-- -- --></tt> option
      of <tt><b>configure</b></tt>. Note that you may have to have
      special privilege to do this if installation directory is not
      writable by the user. </li>
      
    </ol>
    
    <!-- USE -->
    <h2><a name="use">How to use</a></h2>
    <ul>
      <li> <a href="invoke.html">Invocation</a>.<br>
        Starting the simulator program. </li>
    </ul>
    <p><b>Features of the simulator</b> </p>
    <ul>
      
      <li><a href="analyzer.html">Code analyzer</a>. <br>
        The simulator tries to figure out places of valid instructions in code
        area.</li>
      
      <li><a href="cpu_types.html">Processor types</a>. <br>
        The simulator can simulate different type of microcontrollers. </li>
      
      <li><a href="mulcons.html">Multiple consoles</a>. <br>
        The simulator can handle more than one command consoles and accepts
        command from multiple sources. It also can be driven by other programs
        such as debugger interfaces. </li>
      
      <li><a href="serial.html">Serial interfaces</a>. <br>
        The simulator can virtually connect a terminal to serial interface of
        the simulated CPU. </li>
      
      <li><a href="memory.html">Memory simulation</a>. <br>
        Simulated CPU provides address spaces, storage is simulated by memory
        chips, address decoders connects them together. </li>
      
      <li><a href="simif.html">Simulator interface</a>.<br>
        This is a special interface which provides services for the simulated
        program. This services can be used to control the simulator (for example
        run/stop) and access some host features (print, file I/O).</li>
      
      <li><a href="vcd.html">VCD file I/O</a>.<br>
        This is a special virtual hardware peripheral which can monitor changes
        of a memory location (or a bit in MCS51 where bit address space is
        available) and write out changes to a VCD file. It can also be used to
        replay events from a VCD file in order to simulate external events.</li>

      <li><a href="display.html">Peripheral displays</a>. <br>Textual
      user intarfaces which can show information about a
      peripheral. Some of them are interactive and can be used to
      provide external input data for the simulated system (port,
      uart).</li>
      
      <li><a href="syntax.html">Command syntax</a>
        and <a href="cmd.html">command
        reference</a>, <a href="syntax.html#expr">expressions</a>. <br>
	
        The simulator can be controlled via a command line
        interface. It accepts simple commands. </li>
      
    </ul>
    <p><b>Microcontroller specific features</b> </p>
    <ul>
	    <li><a href="stm8/index.html">STM8</a></li>
    </ul>
    <h2><a name="dev">Developers</a></h2>
    <ul>
      <li><a href="testing.html">Regression Testing</a></li>
    </ul>
    <hr>
    <table border="0">
      <tbody>
        <tr>
          <td><a href="mailto:dr.dkdb@gmail.com"><img src="post.jpg"
                border="0" align="top"></a></td>
          <td><i>&copy; 1997 Dániel Drótos</i> <br>
            <a href="mailto:dr.dkdb@gmail.com">dr.dkdb@gmail.com</a></td>
        </tr>
      </tbody>
    </table>
  </body>
</html>