OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [doc/] [html/] [software_development_tools.html] - Blame information for rev 182

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 50 olivier.gi
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 166 olivier.gi
<html><head><title>openMSP430 Software Development Tools</title></head><body>
3 50 olivier.gi
<h3>Table of content</h3>
4 135 olivier.gi
 
5 50 olivier.gi
<ul>
6 135 olivier.gi
 
7
  <li><a href="#1.%20Introduction"> 1. Introduction</a></li>
8
  <li><a href="#2.%20openmsp430-loader"> 2. openmsp430-loader</a></li>
9
  <li><a href="#3.%20openmsp430-minidebug"> 3. openmsp430-minidebug</a></li>
10
  <li><a href="#4.%20openmsp430-gdbproxy"> 4. openmsp430-gdbproxy</a></li>
11
  <li><a href="#5.%20MSPGCC%284%29%20Toolchain"> 5. MSPGCC Toolchain</a>
12
    <ul>
13
      <li><a href="#5.1%20Compiler%20options"> 5.1 Compiler options</a></li>
14
      <li><a href="#5.2%20MCU%20selection"> 5.2 MCU selection</a></li>
15
      <li><a href="#5.3%20Custom%20linker%20script"> 5.3 Custom linker
16
script</a></li>
17
    </ul>
18
  </li>
19 50 olivier.gi
</ul>
20
 
21
<a name="1. Introduction"></a>
22
<h1>1. Introduction</h1>
23
 
24 135 olivier.gi
Building on the serial debug interface capabilities provided by the
25
openMSP430, three utility programs are provided:
26 50 olivier.gi
<ul>
27
 
28 135 olivier.gi
  <li><b>openmsp430-loader:</b> a simple command line boot loader.</li>
29
  <li><b>openmsp430-minidebug:</b> a minimalistic debugger with simple
30
GUI.</li>
31
  <li><b>openmsp430-gdbproxy:</b> GDB Proxy server to be used together
32
with MSP430-GDB and the Eclipse, DDD, or Insight GUI front-ends.</li>
33
</ul>
34 50 olivier.gi
 
35 135 olivier.gi
All these software development tools have been developed in
36
TCL/TK and were successfully tested on both Linux and Windows
37
(XP/Vista/7).
38
<br>
39 50 olivier.gi
 
40 135 olivier.gi
<br>
41
 
42
<b>Note:</b> to be able to execute the scripts, <a href="http://www.tcl.tk/software/tcltk/">TCL/TK</a>
43
needs to be installed on your system.<br>
44
 
45
<br>
46
 
47
In order to connect the host PC to the openMSP430 serial debug
48 166 olivier.gi
interface, a UART or I2C serial cable/adapter is required.<br>
49 135 olivier.gi
 
50
Typically, the following solutions will suit any kind of development
51 166 olivier.gi
board:<br><br>
52
<table style="text-align: left; width: 50%; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">
53
  <tbody>
54
 
55
<tr>
56
      <td style="vertical-align: top; text-align: center;"><strong>UART</strong><br>
57
      </td>
58
      <td style="vertical-align: top; text-align: center;"><strong>I<sup>2</sup>C</strong><br>
59
      </td>
60
    </tr>
61
    <tr>
62
      <td style="vertical-align: top; text-align: left;">
63
      <span style="font-weight: bold;"><br><a href="http://www.ftdichip.com/Products/Cables/USBRS232.htm">
64
USB to RS232 converter:</a></span><br>
65
      <br>
66
      <div style="text-align: center;"><img src="http://opencores.org/usercontent,img,1353274537" alt="USB to RS232" title="USB to RS232" width="25%">
67
      <br>
68
      </div>
69 135 olivier.gi
 
70 166 olivier.gi
      <a href="http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm"><span style="font-weight: bold;">
71
USB to Serial TTL converter:</span></a><br><br>
72
      <div style="text-align: center;"><img src="http://opencores.org/usercontent,img,1353274560" alt="USB to Serial TTL" title="USB to Serial TTL" width="25%">
73
      <br>
74 135 olivier.gi
 
75 166 olivier.gi
      </div>
76
</td>
77
      <td style="vertical-align: top; text-align: left;"><br>
78
      <a href="http://www.robot-electronics.co.uk/htm/usb_iss_tech.htm"><span style="font-weight: bold;">Devantech USB-ISS adapter:</span></a><br><br>
79
      <div style="text-align: center;"><img src="http://opencores.org/usercontent,img,1353274507" alt="USB to I2C adapter" title="USB to I2C adapter" width="75%">
80
      <br>
81 135 olivier.gi
 
82 166 olivier.gi
      </div>
83
</td>
84
    </tr>
85
  </tbody>
86
</table>
87
<ul></ul>
88
 
89 50 olivier.gi
<a name="2. openmsp430-loader"></a>
90
<h1>2. openmsp430-loader</h1>
91 135 olivier.gi
 
92 69 olivier.gi
This simple program allows the user to load the openMSP430 program
93 135 olivier.gi
memory with an executable file (ELF or Intel-HEX format) provided as
94
argument.<br>
95
 
96
It is typically used in conjunction with '<b><i>make</i></b>' in order
97
to automatically load the program after the compile step (see '<b><i>Makefile</i></b>'
98
from software examples provided with the project's FPGA implementation).<br>
99
 
100 50 olivier.gi
The program can be called with the following syntax:
101 135 olivier.gi
<br>
102
 
103
<br>
104
 
105 69 olivier.gi
<table border="0" cellpadding="0" cellspacing="4">
106 135 olivier.gi
 
107
  <tbody>
108
    <tr>
109
      <td width="35"><br>
110
      </td>
111
      <td bgcolor="#d0d0d0" width="3"><br>
112
      </td>
113
      <td width="15"><br>
114
      </td>
115 166 olivier.gi
      <td> <code><br>
116
USAGE&nbsp;&nbsp; : openmsp430-loader.tcl [-device&nbsp;&nbsp; &lt;communication port&gt;]<br>
117
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
118
[-adaptor&nbsp; &lt;adaptor type&gt;]<br>
119
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
120
[-speed&nbsp;&nbsp;&nbsp; &lt;communication speed&gt;]<br>
121
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
122
[-i2c_addr &lt;cpu
123
address&gt;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
124
&lt;elf/ihex-file&gt;<br>
125 135 olivier.gi
      <br>
126 166 olivier.gi
DEFAULT : &lt;communication port&gt;&nbsp; = /dev/ttyUSB0<br>
127
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;adaptor
128
type&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = uart_generic<br>
129
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;communication speed&gt; = 115200 (for UART) / I2C_S_100KHZ (for I2C)<br>
130
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;core address&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 42<br>
131 135 olivier.gi
      <br>
132 166 olivier.gi
EXAMPLES: openmsp430-loader.tcl -device /dev/ttyUSB0 -adaptor uart_generic -speed 9600&nbsp; leds.elf<br>
133
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
134
openmsp430-loader.tcl -device
135
COM2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -adaptor
136
i2c_usb-iss&nbsp; -speed I2C_S_100KHZ -i2c_addr 75 ta_uart.ihex<br>
137
      <br>
138
 </code>
139 135 olivier.gi
      </td>
140
    </tr>
141
  </tbody>
142
</table>
143
 
144 69 olivier.gi
<br>
145 135 olivier.gi
 
146 50 olivier.gi
These screenshots show the script in action under Linux and Windows:
147 69 olivier.gi
<br>
148 135 olivier.gi
 
149
<br>
150 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1353618648" alt="openmsp430-loader Linux" title="openmsp430-loader Linux" width="100%">
151 135 olivier.gi
<br>
152
 
153
<br>
154
 
155 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1249244501" alt="openmsp430-loader Windows" title="openmsp430-loader Windows" width="75%">
156 135 olivier.gi
<br>
157
 
158 50 olivier.gi
<a name="3. openmsp430-minidebug"></a>
159
<h1>3. openmsp430-minidebug</h1>
160 135 olivier.gi
 
161
This small program provides a minimalistic graphical interface enabling
162
simple interaction with the openMSP430:
163
<br>
164
 
165
<br>
166 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1353618607" alt="openmsp430-minidebug" title="openmsp430-minidebug" width="75%">
167 135 olivier.gi
<br>
168
 
169
<br>
170
 
171 50 olivier.gi
As you can see from the screenshot, it allows the following actions:
172
<ul>
173 135 olivier.gi
 
174
  <li><b><font color="#ff0000">(1)</font></b>&nbsp;&nbsp;Connect to the
175
openMSP430 Serial Debug Interface.</li>
176
  <li><b><font color="#ff0000">(2)</font></b>&nbsp;&nbsp;Load the
177
program memory with an ELF or Intel-HEX file</li>
178
  <li><b><font color="#ff0000">(3)</font></b>&nbsp;&nbsp;Control the
179
CPU: Reset, Stop, Start, Single-Step and Software breakpoints</li>
180
  <li><b><font color="#ff0000">(4)</font></b>&nbsp;&nbsp;Read/Write
181
access of the CPU registers</li>
182
  <li><b><font color="#ff0000">(5)</font></b>&nbsp;&nbsp;Read/Write
183
access of the whole memory range (program, data, peripherals)</li>
184
  <li><b><font color="#ff0000">(6)</font></b>&nbsp;&nbsp;Basic
185
disassembled view of the loaded program (current PC location is
186
highlighted in green, software breakpoints in yellow, pink and violet)</li>
187
  <li><b><font color="#ff0000">(7)</font></b>&nbsp;&nbsp;Choose the
188
disassembled view type</li>
189
  <li><b><font color="#ff0000">(8)</font></b>&nbsp;&nbsp;Source a
190
custom external TCL script</li>
191 50 olivier.gi
</ul>
192
 
193
<a name="4. openmsp430-gdbproxy"></a>
194
<h1>4. openmsp430-gdbproxy</h1>
195 135 olivier.gi
 
196
The purpose of this program is to replace the '<b><i>msp430-gdbproxy</i></b>'
197
utility provided by the mspgcc toolchain.<br>
198
 
199
Typically, a GDB proxy creates a local port for GDB to connect to, and
200 69 olivier.gi
handles the communication with the target hardware. In our case, it is
201
basically a bridge between the RSP communication protocol from GDB and
202
the serial debug interface from the openMSP430.<br>
203 135 olivier.gi
 
204 50 olivier.gi
Schematically the communication flow looks as following:
205 135 olivier.gi
<br>
206
 
207
<br>
208
 
209 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1248897690" alt="GDB Proxy flow" title="GDB Proxy flow" width="40%">
210 135 olivier.gi
<br>
211
 
212
<br>
213
 
214
Like the original '<b><i>msp430-gdbproxy</i></b>' program, '<b><i>openmsp430-gdbproxy</i></b>'
215
can be controlled from the command line. However, it also provides a
216
simple graphical interface:
217
<br>
218
 
219
<br>
220 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1353618690" alt="gdbproxy" title="gdbproxy" width="60%">
221 135 olivier.gi
<br>
222
 
223
<br>
224
 
225
These two additional screenshots show the script in action together
226
with the Eclipse and DDD graphical frontends: <br>
227
 
228
<br>
229
 
230 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1320787180" alt="gdbproxy-Eclipse" title="gdbproxy-Eclipse" width="100%">
231 135 olivier.gi
<br>
232
 
233
<br>
234
 
235 166 olivier.gi
<img src="http://opencores.org/usercontent,img,1306526049" alt="gdbproxy-DDD" title="gdbproxy-DDD" width="100%">
236 135 olivier.gi
<br>
237
 
238
<br>
239
 
240
<b>Tip 1:</b> There are several tutorials on Internet explaining how to
241 69 olivier.gi
configure Eclipse for the MSP430. As an Eclipse newbie, I found the
242 135 olivier.gi
followings quite helpful (the <b><i>msp430-gdbproxy</i></b> sections
243
should of course be ignored as we are using our own <b><i>openmsp430-gdbproxy</i></b>
244
program :-) ):
245 50 olivier.gi
<ul>
246 135 olivier.gi
 
247
  <li><a href="http://www.43oh.com/2010/11/a-step-by-step-guide-msp430-programming-under-linux/">A
248
Step By Step Guide To MSP430 Programming Under Linux</a> (English)</li>
249
  <li><a href="http://www.mikrocontroller.net/articles/MSP430_eclipse_helios_mspgcc4_gdb-proxy">MSP430
250
eclipse helios mspgcc4</a> (German)</li>
251 50 olivier.gi
</ul>
252
 
253 135 olivier.gi
<b>Tip 2: </b>You probably want to install this excellent Eclipse
254
plugin (see screenshot above): <a style="font-weight: bold;" href="https://sourceforge.net/projects/embsysregview/">EmbSysRegView</a><br>
255 50 olivier.gi
 
256 135 olivier.gi
<a name="5. MSPGCC(4) Toolchain"></a><br>
257
 
258
<h1>5. MSPGCC Toolchain</h1>
259
 
260 116 olivier.gi
<a name="5.1 Compiler options"></a>
261
<h2>5.1 Compiler options</h2>
262 50 olivier.gi
 
263 135 olivier.gi
The <b>msp430-gcc</b> compiler accepts the following MSP430 specific
264
command line parameters (copied from the MSPGCC <a href="http://mspgcc.sourceforge.net/manual/c745.html">manual page</a>):
265
<br>
266
 
267
<br>
268
 
269 116 olivier.gi
<table align="center" border="1">
270 135 olivier.gi
 
271
  <tbody>
272
    <tr>
273
      <td>-mmcu= </td>
274
      <td>Specify the MCU name </td>
275
    </tr>
276
    <tr>
277
      <td>-mno-volatile-workaround</td>
278
      <td>Do not perform a volatile workaround for bitwise operations. </td>
279
    </tr>
280
    <tr>
281
      <td>-mno-stack-init </td>
282
      <td>Do not initialize the stack as <i>main()</i>starts. </td>
283
    </tr>
284
    <tr>
285
      <td>-minit-stack= </td>
286
      <td>Specify the initial stack address. </td>
287
    </tr>
288
    <tr>
289
      <td>-mendup-at= </td>
290
      <td>Jump to the specified routine at the end of <i>main()</i>. </td>
291
    </tr>
292
    <tr>
293
      <td>-mforce-hwmul </td>
294
      <td>Force use of a hardware multiplier. </td>
295
    </tr>
296
    <tr>
297
      <td>-mdisable-hwmul </td>
298
      <td>Do not use the hardware multiplier. </td>
299
    </tr>
300
    <tr>
301
      <td>-minline-hwmul </td>
302
      <td>Issue inline code for 32-bit integer operations for devices
303
with a hardware multiplier. </td>
304
    </tr>
305
    <tr>
306
      <td>-mnoint-hwmul </td>
307
      <td>Do not disable and enable
308
interrupts around hardware multiplier operations. This makes
309
multiplication faster when you are certain no hardware multiplier
310
operations will occur at deeper interrupt levels. </td>
311
    </tr>
312
    <tr>
313
      <td>-mcall-shifts </td>
314
      <td>Use subroutine calls for shift
315
operations. This may save some space for shift intensive applications. </td>
316
    </tr>
317
  </tbody>
318 116 olivier.gi
</table>
319 135 olivier.gi
 
320 116 olivier.gi
<br>
321 50 olivier.gi
 
322 116 olivier.gi
<a name="5.2 MCU selection"></a>
323
<h2>5.2 MCU selection</h2>
324
 
325 135 olivier.gi
The following table aims to help selecting the proper MCU name for the <b>-mmcu</b>
326
<a href="http://mspgcc.sourceforge.net/manual/c745.html">option</a>
327
during the <b>msp430-gcc</b> call:
328
<br>
329
 
330
<br>
331
 
332 50 olivier.gi
<table align="center" border="1">
333 135 olivier.gi
 
334
  <tbody>
335
    <tr align="center">
336
      <td><b>-mmcu option</b></td>
337
      <td><b>&nbsp;&nbsp;Program&nbsp;&nbsp;<br>
338
Memory</b></td>
339
      <td><b>Data<br>
340
&nbsp;&nbsp;&nbsp;Memory&nbsp;&nbsp;&nbsp;</b></td>
341
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Hardware<br>
342 69 olivier.gi
&nbsp; Multiplier&nbsp; </span><br>
343
      </td>
344 135 olivier.gi
    </tr>
345
    <tr align="center">
346
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 1 kB</i></b></td>
347
    </tr>
348
    <tr align="center">
349
      <td>msp430x110 </td>
350
      <td> 1 kB</td>
351
      <td> 128 B</td>
352
      <td style="vertical-align: top;">No<br>
353 69 olivier.gi
      </td>
354 135 olivier.gi
    </tr>
355
    <tr align="center">
356
      <td>msp430x1101 </td>
357
      <td> 1 kB</td>
358
      <td> 128 B</td>
359
      <td style="vertical-align: top;">No</td>
360
    </tr>
361
    <tr align="center">
362
      <td>msp430x2001 </td>
363
      <td> 1 kB</td>
364
      <td> 128 B</td>
365
      <td style="vertical-align: top;">No</td>
366
    </tr>
367
    <tr align="center">
368
      <td>msp430x2002 </td>
369
      <td> 1 kB</td>
370
      <td> 128 B</td>
371
      <td style="vertical-align: top;">No</td>
372
    </tr>
373
    <tr align="center">
374
      <td>msp430x2003 </td>
375
      <td> 1 kB</td>
376
      <td> 128 B</td>
377
      <td style="vertical-align: top;">No</td>
378
    </tr>
379
    <tr align="center">
380
      <td>msp430x2101 </td>
381
      <td> 1 kB</td>
382
      <td> 128 B</td>
383
      <td style="vertical-align: top;">No</td>
384
    </tr>
385
    <tr align="center">
386
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 2 kB</i></b></td>
387
    </tr>
388
    <tr align="center">
389
      <td>msp430x1111 </td>
390
      <td> 2 kB</td>
391
      <td> 128 B</td>
392
      <td style="vertical-align: top;">No</td>
393
    </tr>
394
    <tr align="center">
395
      <td>msp430x2011 </td>
396
      <td> 2 kB</td>
397
      <td> 128 B</td>
398
      <td style="vertical-align: top;">No</td>
399
    </tr>
400
    <tr align="center">
401
      <td>msp430x2012 </td>
402
      <td> 2 kB</td>
403
      <td> 128 B</td>
404
      <td style="vertical-align: top;">No</td>
405
    </tr>
406
    <tr align="center">
407
      <td>msp430x2013 </td>
408
      <td> 2 kB</td>
409
      <td> 128 B</td>
410
      <td style="vertical-align: top;">No</td>
411
    </tr>
412
    <tr align="center">
413
      <td>msp430x2111 </td>
414
      <td> 2 kB</td>
415
      <td> 128 B</td>
416
      <td style="vertical-align: top;">No</td>
417
    </tr>
418
    <tr align="center">
419
      <td>msp430x2112 </td>
420
      <td> 2 kB</td>
421
      <td> 128 B</td>
422
      <td style="vertical-align: top;">No</td>
423
    </tr>
424
    <tr align="center">
425
      <td>msp430x311 </td>
426
      <td> 2 kB</td>
427
      <td> 128 B</td>
428
      <td style="vertical-align: top;">No</td>
429
    </tr>
430
    <tr align="center">
431
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 4 kB</i></b></td>
432
    </tr>
433
    <tr align="center">
434
      <td>msp430x112 </td>
435
      <td> 4 kB</td>
436
      <td> 256 B</td>
437
      <td style="vertical-align: top;">No</td>
438
    </tr>
439
    <tr align="center">
440
      <td>msp430x1121 </td>
441
      <td> 4 kB</td>
442
      <td> 256 B</td>
443
      <td style="vertical-align: top;">No</td>
444
    </tr>
445
    <tr align="center">
446
      <td>msp430x1122 </td>
447
      <td> 4 kB</td>
448
      <td> 256 B</td>
449
      <td style="vertical-align: top;">No</td>
450
    </tr>
451
    <tr align="center">
452
      <td>msp430x122 </td>
453
      <td> 4 kB</td>
454
      <td> 256 B</td>
455
      <td style="vertical-align: top;">No</td>
456
    </tr>
457
    <tr align="center">
458
      <td>msp430x1222 </td>
459
      <td> 4 kB</td>
460
      <td> 256 B</td>
461
      <td style="vertical-align: top;">No</td>
462
    </tr>
463
    <tr align="center">
464
      <td>msp430x2122 </td>
465
      <td> 4 kB</td>
466
      <td> 256 B</td>
467
      <td style="vertical-align: top;">No</td>
468
    </tr>
469
    <tr align="center">
470
      <td>msp430x2121 </td>
471
      <td> 4 kB</td>
472
      <td> 256 B</td>
473
      <td style="vertical-align: top;">No</td>
474
    </tr>
475
    <tr align="center">
476
      <td>msp430x312 </td>
477
      <td> 4 kB</td>
478
      <td> 256 B</td>
479
      <td style="vertical-align: top;">No</td>
480
    </tr>
481
    <tr align="center">
482
      <td>msp430x412 </td>
483
      <td> 4 kB</td>
484
      <td> 256 B</td>
485
      <td style="vertical-align: top;">No</td>
486
    </tr>
487
    <tr align="center">
488
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 8 kB</i></b></td>
489
    </tr>
490
    <tr align="center">
491
      <td>msp430x123 </td>
492
      <td> 8 kB</td>
493
      <td> 256 B</td>
494
      <td style="vertical-align: top;">No</td>
495
    </tr>
496
    <tr align="center">
497
      <td>msp430x133 </td>
498
      <td> 8 kB</td>
499
      <td> 256 B</td>
500
      <td style="vertical-align: top;">No</td>
501
    </tr>
502
    <tr align="center">
503
      <td>msp430x313 </td>
504
      <td> 8 kB</td>
505
      <td> 256 B</td>
506
      <td style="vertical-align: top;">No</td>
507
    </tr>
508
    <tr align="center">
509
      <td>msp430x323 </td>
510
      <td> 8 kB</td>
511
      <td> 256 B</td>
512
      <td style="vertical-align: top;">No</td>
513
    </tr>
514
    <tr align="center">
515
      <td>msp430x413 </td>
516
      <td> 8 kB</td>
517
      <td> 256 B</td>
518
      <td style="vertical-align: top;">No</td>
519
    </tr>
520
    <tr align="center">
521
      <td>msp430x423 </td>
522
      <td> 8 kB</td>
523
      <td> 256 B</td>
524
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
525 69 olivier.gi
      </td>
526 135 olivier.gi
    </tr>
527
    <tr align="center">
528
      <td>msp430xE423 </td>
529
      <td> 8 kB</td>
530
      <td> 256 B</td>
531
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
532 69 olivier.gi
      </td>
533 135 olivier.gi
    </tr>
534
    <tr align="center">
535
      <td>msp430xE4232</td>
536
      <td> 8 kB</td>
537
      <td> 256 B</td>
538
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
539 69 olivier.gi
      </td>
540 135 olivier.gi
    </tr>
541
    <tr align="center">
542
      <td>msp430xW423 </td>
543
      <td> 8 kB</td>
544
      <td> 256 B</td>
545
      <td style="vertical-align: top;">No</td>
546
    </tr>
547
    <tr align="center">
548
      <td>msp430x1132 </td>
549
      <td> 8 kB</td>
550
      <td> 256 B</td>
551
      <td style="vertical-align: top;">No</td>
552
    </tr>
553
    <tr align="center">
554
      <td>msp430x1232 </td>
555
      <td> 8 kB</td>
556
      <td> 256 B</td>
557
      <td style="vertical-align: top;">No</td>
558
    </tr>
559
    <tr align="center">
560
      <td>msp430x1331 </td>
561
      <td> 8 kB</td>
562
      <td> 256 B</td>
563
      <td style="vertical-align: top;">No</td>
564
    </tr>
565
    <tr align="center">
566
      <td>msp430x2131 </td>
567
      <td> 8 kB</td>
568
      <td> 256 B</td>
569
      <td style="vertical-align: top;">No</td>
570
    </tr>
571
    <tr align="center">
572
      <td>msp430x2132 </td>
573
      <td> 8 kB</td>
574
      <td> 256 B</td>
575
      <td style="vertical-align: top;">No</td>
576
    </tr>
577
    <tr align="center">
578
      <td>msp430x2232 </td>
579
      <td> 8 kB</td>
580
      <td> 512 B</td>
581
      <td style="vertical-align: top;">No</td>
582
    </tr>
583
    <tr align="center">
584
      <td>msp430x2234 </td>
585
      <td> 8 kB</td>
586
      <td> 512 B</td>
587
      <td style="vertical-align: top;">No</td>
588
    </tr>
589
    <tr align="center">
590
      <td>msp430x233 </td>
591
      <td> 8 kB</td>
592
      <td> 1024 B</td>
593
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
594 69 olivier.gi
      </td>
595 135 olivier.gi
    </tr>
596
    <tr align="center">
597
      <td>msp430x2330 </td>
598
      <td> 8 kB</td>
599
      <td> 1024 B</td>
600
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
601 69 olivier.gi
      </td>
602 135 olivier.gi
    </tr>
603 72 olivier.gi
    <tr align="center">
604 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
605
Memory Size: 12 kB</i></b></td>
606 72 olivier.gi
    </tr>
607
    <tr>
608
      <td style="vertical-align: top; text-align: center;">msp430xE4242<br>
609
      </td>
610
      <td style="vertical-align: top; text-align: center;">12 kB</td>
611 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"> 512 B</td>
612 72 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
613
      </td>
614
    </tr>
615
    <tr>
616
      <td style="vertical-align: top; text-align: center;">msp430x314<br>
617
      </td>
618
      <td style="vertical-align: top; text-align: center;">12 kB</td>
619 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"> 512 B<br>
620 72 olivier.gi
      </td>
621
      <td style="vertical-align: top; text-align: center;">No<br>
622
      </td>
623
    </tr>
624 135 olivier.gi
    <tr align="center">
625
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 16 kB</i></b></td>
626
    </tr>
627
    <tr align="center">
628
      <td>msp430x4250 </td>
629
      <td>16 kB</td>
630
      <td> 256 B</td>
631
      <td style="vertical-align: top;">No</td>
632
    </tr>
633
    <tr align="center">
634
      <td>msp430xG4250</td>
635
      <td>16 kB</td>
636
      <td> 256 B</td>
637
      <td style="vertical-align: top;">No</td>
638
    </tr>
639
    <tr align="center">
640
      <td>msp430x135 </td>
641
      <td>16 kB</td>
642
      <td> 512 B</td>
643
      <td style="vertical-align: top;">No</td>
644
    </tr>
645
    <tr align="center">
646
      <td>msp430x1351 </td>
647
      <td>16 kB</td>
648
      <td> 512 B</td>
649
      <td style="vertical-align: top;">No</td>
650
    </tr>
651
    <tr align="center">
652
      <td>msp430x155 </td>
653
      <td>16 kB</td>
654
      <td> 512 B</td>
655
      <td style="vertical-align: top;">No</td>
656
    </tr>
657
    <tr align="center">
658
      <td>msp430x2252 </td>
659
      <td>16 kB</td>
660
      <td> 512 B</td>
661
      <td style="vertical-align: top;">No</td>
662
    </tr>
663
    <tr align="center">
664
      <td>msp430x2254 </td>
665
      <td>16 kB</td>
666
      <td> 512 B</td>
667
      <td style="vertical-align: top;">No</td>
668
    </tr>
669
    <tr align="center">
670
      <td>msp430x315 </td>
671
      <td>16 kB</td>
672
      <td> 512 B</td>
673
      <td style="vertical-align: top;">No</td>
674
    </tr>
675
    <tr align="center">
676
      <td>msp430x325 </td>
677
      <td>16 kB</td>
678
      <td> 512 B</td>
679
      <td style="vertical-align: top;">No</td>
680
    </tr>
681
    <tr align="center">
682
      <td>msp430x415 </td>
683
      <td>16 kB</td>
684
      <td> 512 B</td>
685
      <td style="vertical-align: top;">No</td>
686
    </tr>
687
    <tr align="center">
688
      <td>msp430x425 </td>
689
      <td>16 kB</td>
690
      <td> 512 B</td>
691
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
692 69 olivier.gi
      </td>
693 135 olivier.gi
    </tr>
694
    <tr align="center">
695
      <td>msp430xE425 </td>
696
      <td>16 kB</td>
697
      <td> 512 B</td>
698
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
699 69 olivier.gi
      </td>
700 135 olivier.gi
    </tr>
701
    <tr align="center">
702
      <td>msp430xW425 </td>
703
      <td>16 kB</td>
704
      <td> 512 B</td>
705
      <td style="vertical-align: top;">No</td>
706
    </tr>
707
    <tr align="center">
708
      <td>msp430xE4252</td>
709
      <td>16 kB</td>
710
      <td> 512 B</td>
711
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
712 69 olivier.gi
      </td>
713 135 olivier.gi
    </tr>
714
    <tr align="center">
715
      <td>msp430x435 </td>
716
      <td>16 kB</td>
717
      <td> 512 B</td>
718
      <td style="vertical-align: top;">No</td>
719
    </tr>
720
    <tr align="center">
721
      <td>msp430x4351 </td>
722
      <td>16 kB</td>
723
      <td> 512 B</td>
724
      <td style="vertical-align: top;">No</td>
725
    </tr>
726
    <tr align="center">
727
      <td>msp430x235 </td>
728
      <td>16 kB</td>
729
      <td> 2048 B</td>
730
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
731 69 olivier.gi
      </td>
732 135 olivier.gi
    </tr>
733
    <tr align="center">
734
      <td>msp430x2350 </td>
735
      <td>16 kB</td>
736
      <td> 2048 B</td>
737
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
738 69 olivier.gi
      </td>
739 135 olivier.gi
    </tr>
740 72 olivier.gi
    <tr align="center">
741 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
742
Memory Size: 24 kB</i></b></td>
743 72 olivier.gi
    </tr>
744
    <tr>
745
      <td style="vertical-align: top; text-align: center;">msp430x4260<br>
746
      </td>
747
      <td style="vertical-align: top; text-align: center;">24 kB<br>
748
      </td>
749
      <td style="vertical-align: top; text-align: center;">256 B<br>
750
      </td>
751
      <td style="vertical-align: top; text-align: center;">No<br>
752
      </td>
753
    </tr>
754
    <tr>
755
      <td style="vertical-align: top; text-align: center;">msp430xG4260<br>
756
      </td>
757
      <td style="vertical-align: top; text-align: center;">24 kB<br>
758
      </td>
759
      <td style="vertical-align: top; text-align: center;">256 B<br>
760
      </td>
761
      <td style="vertical-align: top; text-align: center;">No<br>
762
      </td>
763
    </tr>
764
    <tr>
765
      <td style="vertical-align: top; text-align: center;">msp430x156<br>
766
      </td>
767
      <td style="vertical-align: top; text-align: center;">24 kB<br>
768
      </td>
769
      <td style="vertical-align: top; text-align: center;">512 B<br>
770
      </td>
771
      <td style="vertical-align: top; text-align: center;">No<br>
772
      </td>
773
    </tr>
774
    <tr>
775
      <td style="vertical-align: top; text-align: center;">msp430x4361<br>
776
      </td>
777
      <td style="vertical-align: top; text-align: center;">24 kB<br>
778
      </td>
779
      <td style="vertical-align: top; text-align: center;">1024 B<br>
780
      </td>
781
      <td style="vertical-align: top; text-align: center;">No<br>
782
      </td>
783
    </tr>
784
    <tr>
785
      <td style="vertical-align: top; text-align: center;">msp430x436<br>
786
      </td>
787
      <td style="vertical-align: top; text-align: center;">24 kB<br>
788
      </td>
789
      <td style="vertical-align: top; text-align: center;">1024 B<br>
790
      </td>
791
      <td style="vertical-align: top; text-align: center;">No<br>
792
      </td>
793
    </tr>
794
    <tr>
795
      <td style="vertical-align: top; text-align: center;">msp430x336<br>
796
      </td>
797
      <td style="vertical-align: top; text-align: center;">24 kB<br>
798
      </td>
799
      <td style="vertical-align: top; text-align: center;">1024 B<br>
800
      </td>
801
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
802
      </td>
803
    </tr>
804 135 olivier.gi
    <tr align="center">
805
      <td rowspan="1" colspan="4"><b><i>Program Memory Size: 32 kB</i></b></td>
806
    </tr>
807
    <tr align="center">
808
      <td>msp430x4270 </td>
809
      <td>32 kB</td>
810
      <td> 256 B</td>
811
      <td style="vertical-align: top;">No</td>
812
    </tr>
813
    <tr align="center">
814
      <td>msp430xG4270</td>
815
      <td>32 kB</td>
816
      <td> 256 B</td>
817
      <td style="vertical-align: top;">No</td>
818
    </tr>
819
    <tr align="center">
820
      <td>msp430x147 </td>
821
      <td>32 kB</td>
822
      <td> 1024 B</td>
823
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
824 69 olivier.gi
      </td>
825 135 olivier.gi
    </tr>
826
    <tr align="center">
827
      <td>msp430x1471 </td>
828
      <td>32 kB</td>
829
      <td> 1024 B</td>
830
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
831 69 olivier.gi
      </td>
832 135 olivier.gi
    </tr>
833
    <tr align="center">
834
      <td>msp430x157 </td>
835
      <td>32 kB</td>
836
      <td> 1024 B</td>
837
      <td style="vertical-align: top;">No</td>
838
    </tr>
839
    <tr align="center">
840
      <td>msp430x167 </td>
841
      <td>32 kB</td>
842
      <td> 1024 B</td>
843
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
844 69 olivier.gi
      </td>
845 135 olivier.gi
    </tr>
846
    <tr align="center">
847
      <td>msp430x2272 </td>
848
      <td>32 kB</td>
849
      <td> 1024 B</td>
850
      <td style="vertical-align: top;">No</td>
851
    </tr>
852
    <tr align="center">
853
      <td>msp430x2274 </td>
854
      <td>32 kB</td>
855
      <td> 1024 B</td>
856
      <td style="vertical-align: top;">No</td>
857
    </tr>
858
    <tr align="center">
859
      <td>msp430x337 </td>
860
      <td>32 kB</td>
861
      <td> 1024 B</td>
862
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
863 69 olivier.gi
      </td>
864 135 olivier.gi
    </tr>
865
    <tr align="center">
866
      <td>msp430x417 </td>
867
      <td>32 kB</td>
868
      <td> 1024 B</td>
869
      <td style="vertical-align: top;">No</td>
870
    </tr>
871
    <tr align="center">
872
      <td>msp430x427 </td>
873
      <td>32 kB</td>
874
      <td> 1024 B</td>
875
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
876 69 olivier.gi
      </td>
877 135 olivier.gi
    </tr>
878
    <tr align="center">
879
      <td>msp430xE427 </td>
880
      <td>32 kB</td>
881
      <td> 1024 B</td>
882
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
883 69 olivier.gi
      </td>
884 135 olivier.gi
    </tr>
885
    <tr align="center">
886
      <td>msp430xE4272</td>
887
      <td>32 kB</td>
888
      <td> 1024 B</td>
889
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
890 69 olivier.gi
      </td>
891 135 olivier.gi
    </tr>
892
    <tr align="center">
893
      <td>msp430xW427 </td>
894
      <td>32 kB</td>
895
      <td> 1024 B</td>
896
      <td style="vertical-align: top;">No</td>
897
    </tr>
898
    <tr align="center">
899
      <td>msp430x437 </td>
900
      <td>32 kB</td>
901
      <td> 1024 B</td>
902
      <td style="vertical-align: top;">No</td>
903
    </tr>
904
    <tr align="center">
905
      <td>msp430xG437 </td>
906
      <td>32 kB</td>
907
      <td> 1024 B</td>
908
      <td style="vertical-align: top;">No</td>
909
    </tr>
910
    <tr align="center">
911
      <td>msp430x4371 </td>
912
      <td>32 kB</td>
913
      <td> 1024 B</td>
914
      <td style="vertical-align: top;">No</td>
915
    </tr>
916
    <tr align="center">
917
      <td>msp430x447 </td>
918
      <td>32 kB</td>
919
      <td> 1024 B</td>
920
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
921 69 olivier.gi
      </td>
922 135 olivier.gi
    </tr>
923
    <tr align="center">
924
      <td>msp430x2370 </td>
925
      <td>32 kB</td>
926
      <td> 2048 B</td>
927
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
928 69 olivier.gi
      </td>
929 135 olivier.gi
    </tr>
930
    <tr align="center">
931
      <td>msp430x247 </td>
932
      <td>32 kB</td>
933
      <td> 4096 B</td>
934
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
935 69 olivier.gi
      </td>
936 135 olivier.gi
    </tr>
937
    <tr align="center">
938
      <td>msp430x2471 </td>
939
      <td>32 kB</td>
940
      <td> 4096 B</td>
941
      <td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
942 69 olivier.gi
      </td>
943 135 olivier.gi
    </tr>
944
    <tr>
945 72 olivier.gi
      <td style="vertical-align: top; text-align: center;">msp430x1610<br>
946
      </td>
947
      <td style="vertical-align: top; text-align: center;">32 kB</td>
948
      <td style="vertical-align: top; text-align: center;">5120 B<br>
949
      </td>
950
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
951
      </td>
952
    </tr>
953
    <tr align="center">
954 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
955
Memory Size: 41 kB</i></b></td>
956 72 olivier.gi
    </tr>
957
    <tr>
958
      <td style="vertical-align: top; text-align: center;">msp430x5438<br>
959
      </td>
960
      <td style="vertical-align: top; text-align: center;">41 kB<br>
961
      </td>
962
      <td style="vertical-align: top; text-align: center;">16384 B<br>
963
      </td>
964 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
965 72 olivier.gi
    </tr>
966
    <tr>
967
      <td style="vertical-align: top; text-align: center;">msp430x5437<br>
968
      </td>
969
      <td style="vertical-align: top; text-align: center;">41 kB<br>
970
      </td>
971
      <td style="vertical-align: top; text-align: center;">16384 B<br>
972
      </td>
973 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
974 72 olivier.gi
    </tr>
975
    <tr>
976
      <td style="vertical-align: top; text-align: center;">msp430x5436<br>
977
      </td>
978
      <td style="vertical-align: top; text-align: center;">41 kB<br>
979
      </td>
980
      <td style="vertical-align: top; text-align: center;">16384 B<br>
981
      </td>
982 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
983 72 olivier.gi
    </tr>
984
    <tr>
985
      <td style="vertical-align: top; text-align: center;">msp430x5435<br>
986
      </td>
987
      <td style="vertical-align: top; text-align: center;">41 kB<br>
988
      </td>
989
      <td style="vertical-align: top; text-align: center;">16384 B<br>
990
      </td>
991 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
992 72 olivier.gi
    </tr>
993
    <tr>
994
      <td style="vertical-align: top; text-align: center;">msp430x5419<br>
995
      </td>
996
      <td style="vertical-align: top; text-align: center;">41 kB<br>
997
      </td>
998
      <td style="vertical-align: top; text-align: center;">16384 B<br>
999
      </td>
1000 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
1001 72 olivier.gi
    </tr>
1002
    <tr>
1003
      <td style="vertical-align: top; text-align: center;">msp430x5418<br>
1004
      </td>
1005
      <td style="vertical-align: top; text-align: center;">41 kB<br>
1006
      </td>
1007
      <td style="vertical-align: top; text-align: center;">16384 B<br>
1008
      </td>
1009 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">No </td>
1010 72 olivier.gi
    </tr>
1011
    <tr align="center">
1012 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
1013
Memory Size: 48 kB</i></b></td>
1014 72 olivier.gi
    </tr>
1015
    <tr>
1016
      <td style="vertical-align: top; text-align: center;">msp430x1611<br>
1017
      </td>
1018
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1019
      </td>
1020
      <td style="vertical-align: top; text-align: center;">10240 B<br>
1021
      </td>
1022 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1023 72 olivier.gi
    </tr>
1024
    <tr>
1025
      <td style="vertical-align: top; text-align: center;">msp430x248<br>
1026
      </td>
1027
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1028
      </td>
1029
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1030
      </td>
1031 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1032 72 olivier.gi
    </tr>
1033
    <tr>
1034
      <td style="vertical-align: top; text-align: center;">msp430x2481<br>
1035
      </td>
1036
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1037
      </td>
1038 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">4096 B </td>
1039
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1040 72 olivier.gi
    </tr>
1041
    <tr>
1042
      <td style="vertical-align: top; text-align: center;">msp430x4783<br>
1043
      </td>
1044
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1045
      </td>
1046
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1047
      </td>
1048 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1049 72 olivier.gi
    </tr>
1050
    <tr>
1051
      <td style="vertical-align: top; text-align: center;">msp430xG438<br>
1052
      </td>
1053
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1054
      </td>
1055 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1056
      <td style="vertical-align: top; text-align: center;">No </td>
1057 72 olivier.gi
    </tr>
1058
    <tr>
1059
      <td style="vertical-align: top; text-align: center;">msp430x4784<br>
1060
      </td>
1061
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1062
      </td>
1063 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1064
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1065 72 olivier.gi
    </tr>
1066
    <tr>
1067
      <td style="vertical-align: top; text-align: center;">msp430x148<br>
1068
      </td>
1069
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1070
      </td>
1071 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1072
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1073 72 olivier.gi
    </tr>
1074
    <tr>
1075
      <td style="vertical-align: top; text-align: center;">msp430x168<br>
1076
      </td>
1077
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1078
      </td>
1079 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1080
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1081 72 olivier.gi
    </tr>
1082
    <tr>
1083
      <td style="vertical-align: top; text-align: center;">msp430x1481<br>
1084
      </td>
1085
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1086
      </td>
1087 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1088
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1089 72 olivier.gi
    </tr>
1090
    <tr>
1091
      <td style="vertical-align: top; text-align: center;">msp430x448<br>
1092
      </td>
1093
      <td style="vertical-align: top; text-align: center;">48 kB<br>
1094
      </td>
1095 135 olivier.gi
      <td style="vertical-align: top; text-align: center;">2048 B </td>
1096
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1097 72 olivier.gi
    </tr>
1098
    <tr align="center">
1099 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
1100
Memory Size: 51 kB</i></b></td>
1101 72 olivier.gi
    </tr>
1102
    <tr>
1103
      <td style="vertical-align: top; text-align: center;">msp430xG4617<br>
1104
      </td>
1105
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1106
      </td>
1107
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1108
      </td>
1109 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1110 72 olivier.gi
    </tr>
1111
    <tr>
1112
      <td style="vertical-align: top; text-align: center;">msp430x2418<br>
1113
      </td>
1114
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1115
      </td>
1116
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1117
      </td>
1118 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1119 72 olivier.gi
    </tr>
1120
    <tr>
1121
      <td style="vertical-align: top; text-align: center;">msp430x2618<br>
1122
      </td>
1123
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1124
      </td>
1125
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1126
      </td>
1127 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1128 72 olivier.gi
    </tr>
1129
    <tr>
1130
      <td style="vertical-align: top; text-align: center;">msp430x2417<br>
1131
      </td>
1132
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1133
      </td>
1134
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1135
      </td>
1136 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1137 72 olivier.gi
    </tr>
1138
    <tr>
1139
      <td style="vertical-align: top; text-align: center;">msp430xG4618<br>
1140
      </td>
1141
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1142
      </td>
1143
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1144
      </td>
1145 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1146 72 olivier.gi
    </tr>
1147
    <tr>
1148
      <td style="vertical-align: top; text-align: center;">msp430x2617<br>
1149
      </td>
1150
      <td style="vertical-align: top; text-align: center;">51 kB<br>
1151
      </td>
1152
      <td style="vertical-align: top; text-align: center;">8192 B<br>
1153
      </td>
1154 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1155 72 olivier.gi
    </tr>
1156
    <tr align="center">
1157 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
1158
Memory Size: 54 kB</i></b></td>
1159 72 olivier.gi
    </tr>
1160
    <tr>
1161
      <td style="vertical-align: top; text-align: center;">msp430x1612<br>
1162
      </td>
1163
      <td style="vertical-align: top; text-align: center;">54 kB<br>
1164
      </td>
1165
      <td style="vertical-align: top; text-align: center;">5120 B<br>
1166
      </td>
1167 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1168 72 olivier.gi
    </tr>
1169
    <tr align="center">
1170 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
1171
Memory Size: 55 kB</i></b></td>
1172 72 olivier.gi
    </tr>
1173
    <tr>
1174
      <td style="vertical-align: top; text-align: center;">msp430x2619<br>
1175
      </td>
1176
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1177
      </td>
1178
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1179
      </td>
1180 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1181 72 olivier.gi
    </tr>
1182
    <tr>
1183
      <td style="vertical-align: top; text-align: center;">msp430xG4619<br>
1184
      </td>
1185
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1186
      </td>
1187
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1188
      </td>
1189 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1190 72 olivier.gi
    </tr>
1191
    <tr>
1192
      <td style="vertical-align: top; text-align: center;">msp430xG4616<br>
1193
      </td>
1194
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1195
      </td>
1196
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1197
      </td>
1198 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1199 72 olivier.gi
    </tr>
1200
    <tr>
1201
      <td style="vertical-align: top; text-align: center;">msp430x2416<br>
1202
      </td>
1203
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1204
      </td>
1205
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1206
      </td>
1207 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1208 72 olivier.gi
    </tr>
1209
    <tr>
1210
      <td style="vertical-align: top; text-align: center;">msp430x2419<br>
1211
      </td>
1212
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1213
      </td>
1214
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1215
      </td>
1216 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1217 72 olivier.gi
    </tr>
1218
    <tr>
1219
      <td style="vertical-align: top; text-align: center;">msp430x2616<br>
1220
      </td>
1221
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1222
      </td>
1223
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1224
      </td>
1225 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1226 72 olivier.gi
    </tr>
1227
    <tr>
1228
      <td style="vertical-align: top; text-align: center;">msp430x2410<br>
1229
      </td>
1230
      <td style="vertical-align: top; text-align: center;">55 kB<br>
1231
      </td>
1232
      <td style="vertical-align: top; text-align: center;">4096 B<br>
1233
      </td>
1234 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1235 72 olivier.gi
    </tr>
1236
    <tr align="center">
1237 135 olivier.gi
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program
1238
Memory Size: 59 kB</i></b></td>
1239 72 olivier.gi
    </tr>
1240
    <tr>
1241
      <td style="vertical-align: top; text-align: center;">msp430x4794<br>
1242
      </td>
1243
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1244
      </td>
1245
      <td style="vertical-align: top; text-align: center;">2560 B<br>
1246
      </td>
1247 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1248 72 olivier.gi
    </tr>
1249
    <tr>
1250
      <td style="vertical-align: top; text-align: center;">msp430x4793<br>
1251
      </td>
1252
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1253
      </td>
1254
      <td style="vertical-align: top; text-align: center;">2560 B<br>
1255
      </td>
1256 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1257 72 olivier.gi
    </tr>
1258
    <tr>
1259
      <td style="vertical-align: top; text-align: center;">msp430x2491<br>
1260
      </td>
1261
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1262
      </td>
1263
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1264
      </td>
1265 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1266 72 olivier.gi
    </tr>
1267
    <tr>
1268
      <td style="vertical-align: top; text-align: center;">msp430x1491<br>
1269
      </td>
1270 166 olivier.gi
      <td style="vertical-align: top; text-align: center;">60 kB<br>
1271 72 olivier.gi
      </td>
1272
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1273
      </td>
1274 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1275 72 olivier.gi
    </tr>
1276
    <tr>
1277
      <td style="vertical-align: top; text-align: center;">msp430x149<br>
1278
      </td>
1279 166 olivier.gi
      <td style="vertical-align: top; text-align: center;">60 kB<br>
1280 72 olivier.gi
      </td>
1281
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1282
      </td>
1283 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1284 72 olivier.gi
    </tr>
1285
    <tr>
1286
      <td style="vertical-align: top; text-align: center;">msp430xG439<br>
1287
      </td>
1288
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1289
      </td>
1290
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1291
      </td>
1292
      <td style="vertical-align: top; text-align: center;">No<br>
1293
      </td>
1294
    </tr>
1295
    <tr>
1296
      <td style="vertical-align: top; text-align: center;">msp430x249<br>
1297
      </td>
1298
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1299
      </td>
1300
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1301
      </td>
1302 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1303 72 olivier.gi
    </tr>
1304
    <tr>
1305
      <td style="vertical-align: top; text-align: center;">msp430x449<br>
1306
      </td>
1307
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1308
      </td>
1309
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1310
      </td>
1311 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1312 72 olivier.gi
    </tr>
1313
    <tr>
1314
      <td style="vertical-align: top; text-align: center;">msp430x169<br>
1315
      </td>
1316
      <td style="vertical-align: top; text-align: center;">59 kB<br>
1317
      </td>
1318
      <td style="vertical-align: top; text-align: center;">2048 B<br>
1319
      </td>
1320 135 olivier.gi
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span> </td>
1321 72 olivier.gi
    </tr>
1322 135 olivier.gi
  </tbody>
1323
</table>
1324 72 olivier.gi
 
1325 135 olivier.gi
<br>
1326 50 olivier.gi
 
1327 135 olivier.gi
<span style="text-decoration: underline;">Note:</span> the program
1328
memory size should imperatively match the openMSP430 configuration.<br>
1329
 
1330 69 olivier.gi
<br>
1331 135 olivier.gi
 
1332 116 olivier.gi
<a name="5.3 Custom linker script"></a>
1333
<h2>5.3 Custom linker script</h2>
1334 135 olivier.gi
 
1335
The use of the <b>-mmcu</b> switch is of course <b>NOT</b> mandatory.
1336
It is simply a convenient way to use the pre-existing linker scripts
1337
provided with the MSPGCC4 toolchain.<br>
1338
 
1339 116 olivier.gi
<br>
1340 135 olivier.gi
 
1341
However, if the peripheral address space is larger than the standard
1342
512B of the original MSP430 (see the <a href="http://opencores.org/project,openmsp430,core#2.1.3.2%20Advanced%20System%20Configuration">Advanced
1343
System Configuration</a> section), a customized linker script <b>MUST</b>
1344
be provided.<br>
1345
 
1346 116 olivier.gi
<br>
1347 135 olivier.gi
 
1348
To create a custom linker script, the simplest way is to start from an
1349
existing one:
1350 116 olivier.gi
<ul>
1351 135 olivier.gi
 
1352
  <li>the MSPGCC toolchain provides a wide range of examples for all
1353
supported MSP430 models (see "<b><i>msp430/lib/ldscripts/</i></b>"
1354
sub-directory, in the MSPGCC installation directory).</li>
1355
  <li>the openMSP430 project also provide a simple linker script
1356
example: <a href="http://opencores.org/websvn,filedetails?repname=openmsp430&amp;path=/openmsp430/trunk/core/sim/rtl_sim/src/ldscript_example.x">ldscript_example.x</a></li>
1357 116 olivier.gi
</ul>
1358 135 olivier.gi
 
1359 116 olivier.gi
<br>
1360 135 olivier.gi
 
1361
From there, the script can be modified to match <b>YOUR</b> openMSP430
1362
configuration:
1363 116 olivier.gi
<ul>
1364 135 olivier.gi
 
1365
  <li>In the <b><i>text (rx)</i></b> section definition, update the <b><i>ORIGIN</i></b>
1366
and <b><i>LENGTH</i></b> fields to match the <b>PROGRAM MEMORY</b>
1367
configuration.</li>
1368
  <li>In the <b><i>data (rwx)</i></b> section definition, update the <b><i>ORIGIN</i></b>
1369
field to match the <b>PERIPHERAL SPACE</b> configuration and the <b><i>LENGTH</i></b>
1370
field to match the <b>DATA MEMORY</b> configuration.</li>
1371 182 olivier.gi
 
1372
</ul><br>
1373 69 olivier.gi
 
1374 182 olivier.gi
 
1375 135 olivier.gi
<br>
1376 69 olivier.gi
 
1377 135 olivier.gi
<br>
1378
 
1379 69 olivier.gi
</body></html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.