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

Subversion Repositories openmsp430

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

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