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

Subversion Repositories openmsp430

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

Go to most recent revision | 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
  <li>At last, update the stack pointer initialization value (look for
1372
the "<b><i>PROVIDE (__stack =</i></b>"
1373
section) and make sure that it falls in the data memory space (the
1374
stack size should also matches your application requirements, i.e. not
1375
to small... and not to big :-P ).</li>
1376 116 olivier.gi
</ul>
1377 69 olivier.gi
 
1378 135 olivier.gi
<br>
1379 69 olivier.gi
 
1380 135 olivier.gi
<br>
1381
 
1382 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.