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

Subversion Repositories openmsp430

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

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 69 olivier.gi
<html><head><title>openMSP430 Software Development Tools</title></head><body>
3 50 olivier.gi
<h3>Table of content</h3>
4
<ul>
5 69 olivier.gi
        <li><a href="#1.%20Introduction">                        1. Introduction</a></li>
6
        <li><a href="#2.%20openmsp430-loader">                   2. openmsp430-loader</a></li>
7
        <li><a href="#3.%20openmsp430-minidebug">                3. openmsp430-minidebug</a></li>
8
        <li><a href="#4.%20openmsp430-gdbproxy">                 4. openmsp430-gdbproxy</a></li>
9 116 olivier.gi
        <li><a href="#5.%20MSPGCC(4)%20Toolchain">               5. MSPGCC(4) Toolchain</a>
10 50 olivier.gi
        <ul>
11 116 olivier.gi
           <li><a href="#5.1%20Compiler%20options">                    5.1 Compiler options</a></li>
12
           <li><a href="#5.2%20MCU%20selection">                       5.2 MCU selection</a></li>
13
           <li><a href="#5.3%20Custom%20linker%20script">              5.3 Custom linker script</a></li>
14 50 olivier.gi
        </ul>
15
   </li>
16
</ul>
17
 
18
<a name="1. Introduction"></a>
19
<h1>1. Introduction</h1>
20
 
21
Building on the serial debug interface capabilities provided by the openMSP430, three small utility programs are provided:
22
<ul>
23
        <li><b>openmsp430-loader:</b> a simple command line boot loader.</li>
24
        <li><b>openmsp430-minidebug:</b> a minimalistic debugger with simple GUI.</li>
25
        <li><b>openmsp430-gdbproxy:</b> GDB Proxy server to be used together with MSP430-GDB and the Eclipse, DDD, or Insight graphical front-ends.</li>
26
</ul>
27
 
28 116 olivier.gi
All these software development tools have been developed in TCL/TK and were successfully tested on both Linux and Windows (XP/Vista/7).
29 69 olivier.gi
<br><br>
30
<b>Note:</b> in order to be able to directly execute the scripts, <a href="http://www.tcl.tk/software/tcltk/">TCL/TK</a>
31 116 olivier.gi
needs to be installed on your system. Optionally for Windows users, the scripts can be turned into single-file binary executable programs
32
using <a href="http://freewrap.sourceforge.net/">freeWrap</a> by running/clicking the <i>"tools/freewrap642/generate_exec.bat"</i> file provided in the project repository.
33 50 olivier.gi
 
34
 
35
<a name="2. openmsp430-loader"></a>
36
<h1>2. openmsp430-loader</h1>
37 69 olivier.gi
This simple program allows the user to load the openMSP430 program
38 100 olivier.gi
memory with an executable file (ELF or Intel-HEX format) provided as argument.<br>
39 69 olivier.gi
It is typically used in conjunction with '<b><i>make</i></b>' in order to automatically load the program after the compile step (see '<b><i>Makefile</i></b>' from software examples provided with the project's FPGA implementation).<br>
40 50 olivier.gi
The program can be called with the following syntax:
41 69 olivier.gi
<br><br>
42
<table border="0" cellpadding="0" cellspacing="4">
43
<tbody><tr>
44
<td width="35"><br>
45
</td>
46
<td bgcolor="#d0d0d0" width="3"><br>
47
</td>
48
<td width="15"><br>
49
</td>
50 50 olivier.gi
<td>
51 100 olivier.gi
        <code>openmsp430-loader.tcl [-device &lt;communication device&gt;] [-baudrate &lt;communication speed&gt;] &lt;elf/ihex-file&gt;
52 69 olivier.gi
<br><br>
53
Examples: openmsp430-loader.tcl -device /dev/ttyUSB0 -baudrate  9600  leds.elf<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openmsp430-loader.tcl
54 100 olivier.gi
-device COM2: -baudrate 38400 ta_uart.ihex </code>
55 50 olivier.gi
</td>
56
</tr>
57 69 olivier.gi
</tbody></table>
58
<br>
59 50 olivier.gi
These screenshots show the script in action under Linux and Windows:
60 69 olivier.gi
<br><br>
61 116 olivier.gi
<img src="usercontent,img,1306525377" alt="openmsp430-loader Linux" title="openmsp430-loader Linux"  width="75%"/>
62 69 olivier.gi
<br><br>
63 116 olivier.gi
<img src="getimg.php?1249244501" alt="openmsp430-loader Windows" title="openmsp430-loader Windows" width="75%"/>
64 69 olivier.gi
<br>
65 50 olivier.gi
<a name="3. openmsp430-minidebug"></a>
66
<h1>3. openmsp430-minidebug</h1>
67
This small program provides a minimalistic graphical interface enabling simple interaction with the openMSP430:
68 69 olivier.gi
<br><br>
69 116 olivier.gi
<img src="usercontent,img,1306665243" alt="openmsp430-minidebug" title="openmsp430-minidebug" width="75%"/>
70 69 olivier.gi
<br><br>
71 50 olivier.gi
As you can see from the screenshot, it allows the following actions:
72
<ul>
73 116 olivier.gi
        <li><b><font color="#ff0000">(1)</font></b>&nbsp;&nbsp;Connect to the openMSP430 Serial Debug Interface.</li>
74 100 olivier.gi
        <li><b><font color="#ff0000">(2)</font></b>&nbsp;&nbsp;Load the program memory with an ELF or Intel-HEX file</li>
75 116 olivier.gi
        <li><b><font color="#ff0000">(3)</font></b>&nbsp;&nbsp;Control the CPU: Reset, Stop, Start, Single-Step and Software breakpoints</li>
76
        <li><b><font color="#ff0000">(4)</font></b>&nbsp;&nbsp;Read/Write access of the CPU registers</li>
77
        <li><b><font color="#ff0000">(5)</font></b>&nbsp;&nbsp;Read/Write access of the whole memory range (program, data, peripherals)</li>
78
        <li><b><font color="#ff0000">(6)</font></b>&nbsp;&nbsp;Basic disassembled view of the loaded program (current PC location is highlighted in green, software breakpoints in yellow, pink and violet)</li>
79
        <li><b><font color="#ff0000">(7)</font></b>&nbsp;&nbsp;Choose the disassembled view type</li>
80
        <li><b><font color="#ff0000">(8)</font></b>&nbsp;&nbsp;Source a custom external TCL script</li>
81 50 olivier.gi
</ul>
82
 
83
<a name="4. openmsp430-gdbproxy"></a>
84
<h1>4. openmsp430-gdbproxy</h1>
85 69 olivier.gi
The purpose of this program is to replace the '<b><i>msp430-gdbproxy</i></b>' utility provided by the mspgcc toolchain.<br>
86
Typically, a GDB proxy creates a local port for gdb to connect to, and
87
handles the communication with the target hardware. In our case, it is
88
basically a bridge between the RSP communication protocol from GDB and
89
the serial debug interface from the openMSP430.<br>
90 50 olivier.gi
Schematically the communication flow looks as following:
91 69 olivier.gi
<br><br>
92 116 olivier.gi
<img src="getimg.php?1248897690" alt="GDB Proxy flow" title="GDB Proxy flow" width="40%"/>
93 69 olivier.gi
<br><br>
94 50 olivier.gi
Like the original '<b><i>msp430-gdbproxy</i></b>' program, '<b><i>openmsp430-gdbproxy</i></b>' can be controlled from the command line. However, it also provides a small graphical interface:
95 69 olivier.gi
<br><br>
96 116 olivier.gi
<img src="usercontent,img,1306525816" alt="gdbproxy" title="gdbproxy"  width="60%"/>
97 69 olivier.gi
<br><br>
98 50 olivier.gi
These two additional screenshots show the script in action together with the Eclipse and DDD graphical frontends:
99 69 olivier.gi
<br><br>
100 116 olivier.gi
<img src="usercontent,img,1306525935" alt="gdbproxy-Eclipse" title="gdbproxy-Eclipse"  width="100%"/>
101 69 olivier.gi
<br><br>
102 116 olivier.gi
<img src="usercontent,img,1306526049" alt="gdbproxy-DDD" title="gdbproxy-DDD" width="100%"/>
103 69 olivier.gi
<br><br>
104
<b>Tip:</b> There are several tutorials on Internet explaining how to
105
configure Eclipse for the MSP430. As an Eclipse newbie, I found the
106 116 olivier.gi
followings quite helpful (the <b><i>msp430-gdbproxy</b></i> sections should of course be ignored as we are using our own <b><i>openmsp430-gdbproxy</b></i> program :-) ):
107 50 olivier.gi
<ul>
108 116 olivier.gi
        <li><a href="http://www.43oh.com/2010/11/a-step-by-step-guide-msp430-programming-under-linux/">A Step By Step Guide To MSP430 Programming Under Linux</a> (English)</li>
109
        <li><a href="http://www.mikrocontroller.net/articles/MSP430_eclipse_helios_mspgcc4_gdb-proxy">MSP430 eclipse helios mspgcc4</a> (German)</li>
110 50 olivier.gi
</ul>
111
 
112 116 olivier.gi
<a name="5. MSPGCC(4) Toolchain"></a>
113
<h1>5. MSPGCC(4) Toolchain</h1>
114 50 olivier.gi
 
115 116 olivier.gi
<a name="5.1 Compiler options"></a>
116
<h2>5.1 Compiler options</h2>
117 50 olivier.gi
 
118 116 olivier.gi
The <b>msp430-gcc</b> compiler accepts the following MSP430 specific command line parameters (copied from the MSPGCC <a href="http://mspgcc.sourceforge.net/manual/c745.html">manual page</a>):
119
<br><br>
120
<table align="center" border="1">
121
<tbody>
122
<tr><td>-mmcu=                  </td><td>Specify the MCU name                                                                     </td></tr>
123
<tr><td>-mno-volatile-workaround</td><td>Do not perform a volatile workaround for bitwise operations.                             </td></tr>
124
<tr><td>-mno-stack-init         </td><td>Do not initialize the stack as <i>main()</i>starts.                                     </td></tr>
125
<tr><td>-minit-stack=           </td><td>Specify the initial stack address.                                                       </td></tr>
126
<tr><td>-mendup-at=             </td><td>Jump to the specified routine at the end of <i>main()</i>.                              </td></tr>
127
<tr><td>-mforce-hwmul           </td><td>Force use of a hardware multiplier.                                                      </td></tr>
128
<tr><td>-mdisable-hwmul         </td><td>Do not use the hardware multiplier.                                                      </td></tr>
129
<tr><td>-minline-hwmul          </td><td>Issue inline code for 32-bit integer operations for devices with a hardware multiplier.  </td></tr>
130
<tr><td>-mnoint-hwmul           </td><td>Do not disable and enable interrupts around hardware multiplier operations. This makes
131
                                           multiplication faster when you are certain no hardware multiplier operations will occur
132
                                           at deeper interrupt levels.                                                               </td></tr>
133
<tr><td>-mcall-shifts           </td><td>Use subroutine calls for shift operations. This may save some space for shift intensive
134
                                           applications.                                                                             </td></tr>
135
</tbody>
136
</table>
137
<br>
138 50 olivier.gi
 
139 116 olivier.gi
 
140
<a name="5.2 MCU selection"></a>
141
<h2>5.2 MCU selection</h2>
142
 
143
The following table aims to help selecting the proper MCU name for the <b>-mmcu</b> <a href="http://mspgcc.sourceforge.net/manual/c745.html">option</a> during the <b>msp430-gcc</b> call:
144
<br><br>
145 50 olivier.gi
<table align="center" border="1">
146 69 olivier.gi
<tbody><tr align="center"><td><b>-mmcu option</b></td><td><b>&nbsp;&nbsp;Program&nbsp;&nbsp;<br>Memory</b></td><td><b>Data<br>&nbsp;&nbsp;&nbsp;Memory&nbsp;&nbsp;&nbsp;</b></td><td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Hardware<br>
147
&nbsp; Multiplier&nbsp; </span><br>
148
      </td>
149
</tr>
150
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 1 kB</i></b></td></tr>
151
<tr align="center"><td>msp430x110  </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No<br>
152
      </td>
153
</tr>
154
<tr align="center"><td>msp430x1101 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
155
</tr>
156
<tr align="center"><td>msp430x2001 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
157
</tr>
158
<tr align="center"><td>msp430x2002 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
159
</tr>
160
<tr align="center"><td>msp430x2003 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
161
</tr>
162
<tr align="center"><td>msp430x2101 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
163
</tr>
164
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 2 kB</i></b></td></tr>
165
<tr align="center"><td>msp430x1111 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
166
</tr>
167
<tr align="center"><td>msp430x2011 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
168
</tr>
169
<tr align="center"><td>msp430x2012 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
170
</tr>
171
<tr align="center"><td>msp430x2013 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
172
</tr>
173
<tr align="center"><td>msp430x2111 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
174
</tr>
175
<tr align="center"><td>msp430x2112 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
176
</tr>
177
<tr align="center"><td>msp430x311  </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
178
</tr>
179
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 4 kB</i></b></td></tr>
180
<tr align="center"><td>msp430x112  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
181
</tr>
182
<tr align="center"><td>msp430x1121 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
183
</tr>
184
<tr align="center"><td>msp430x1122 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
185
</tr>
186
<tr align="center"><td>msp430x122  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
187
</tr>
188
<tr align="center"><td>msp430x1222 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
189
</tr>
190
<tr align="center"><td>msp430x2122 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
191
</tr>
192
<tr align="center"><td>msp430x2121 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
193
</tr>
194
<tr align="center"><td>msp430x312  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
195
</tr>
196
<tr align="center"><td>msp430x412  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
197
</tr>
198
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 8 kB</i></b></td></tr>
199
<tr align="center"><td>msp430x123  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
200
</tr>
201
<tr align="center"><td>msp430x133  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
202
</tr>
203
<tr align="center"><td>msp430x313  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
204
</tr>
205
<tr align="center"><td>msp430x323  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
206
</tr>
207
<tr align="center"><td>msp430x413  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
208
</tr>
209
<tr align="center"><td>msp430x423  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
210
      </td>
211
</tr>
212
<tr align="center"><td>msp430xE423 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
213
      </td>
214
</tr>
215
<tr align="center"><td>msp430xE4232</td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
216
      </td>
217
</tr>
218
<tr align="center"><td>msp430xW423 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
219
</tr>
220
<tr align="center"><td>msp430x1132 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
221
</tr>
222
<tr align="center"><td>msp430x1232 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
223
</tr>
224
<tr align="center"><td>msp430x1331 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
225
</tr>
226
<tr align="center"><td>msp430x2131 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
227
</tr>
228
<tr align="center"><td>msp430x2132 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
229
</tr>
230
<tr align="center"><td>msp430x2232 </td><td> 8 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
231
</tr>
232
<tr align="center"><td>msp430x2234 </td><td> 8 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
233
</tr>
234
<tr align="center"><td>msp430x233  </td><td> 8 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
235
      </td>
236
</tr>
237
<tr align="center"><td>msp430x2330 </td><td> 8 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
238
      </td>
239
</tr>
240 72 olivier.gi
    <tr align="center">
241
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 12 kB</i></b></td>
242
    </tr>
243
    <tr>
244
      <td style="vertical-align: top; text-align: center;">msp430xE4242<br>
245
      </td>
246
      <td style="vertical-align: top; text-align: center;">12 kB</td>
247
      <td style="vertical-align: top; text-align: center;">  512 B</td>
248
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
249
      </td>
250
    </tr>
251
    <tr>
252
      <td style="vertical-align: top; text-align: center;">msp430x314<br>
253
      </td>
254
      <td style="vertical-align: top; text-align: center;">12 kB</td>
255
      <td style="vertical-align: top; text-align: center;">  512 B<br>
256
      </td>
257
      <td style="vertical-align: top; text-align: center;">No<br>
258
      </td>
259
    </tr>
260 69 olivier.gi
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 16 kB</i></b></td></tr>
261
<tr align="center"><td>msp430x4250 </td><td>16 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
262
</tr>
263
<tr align="center"><td>msp430xG4250</td><td>16 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
264
</tr>
265
<tr align="center"><td>msp430x135  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
266
</tr>
267
<tr align="center"><td>msp430x1351 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
268
</tr>
269
<tr align="center"><td>msp430x155  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
270
</tr>
271
<tr align="center"><td>msp430x2252 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
272
</tr>
273
<tr align="center"><td>msp430x2254 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
274
</tr>
275
<tr align="center"><td>msp430x315  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
276
</tr>
277
<tr align="center"><td>msp430x325  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
278
</tr>
279
<tr align="center"><td>msp430x415  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
280
</tr>
281
<tr align="center"><td>msp430x425  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
282
      </td>
283
</tr>
284
<tr align="center"><td>msp430xE425 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
285
      </td>
286
</tr>
287
<tr align="center"><td>msp430xW425 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
288
</tr>
289
<tr align="center"><td>msp430xE4252</td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
290
      </td>
291
</tr>
292
<tr align="center"><td>msp430x435  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
293
</tr>
294
<tr align="center"><td>msp430x4351 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
295
</tr>
296
<tr align="center"><td>msp430x235  </td><td>16 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
297
      </td>
298
</tr>
299
<tr align="center"><td>msp430x2350 </td><td>16 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
300
      </td>
301
</tr>
302 72 olivier.gi
    <tr align="center">
303
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 24 kB</i></b></td>
304
    </tr>
305
    <tr>
306
      <td style="vertical-align: top; text-align: center;">msp430x4260<br>
307
      </td>
308
      <td style="vertical-align: top; text-align: center;">24 kB<br>
309
      </td>
310
      <td style="vertical-align: top; text-align: center;">256 B<br>
311
      </td>
312
      <td style="vertical-align: top; text-align: center;">No<br>
313
      </td>
314
    </tr>
315
    <tr>
316
      <td style="vertical-align: top; text-align: center;">msp430xG4260<br>
317
      </td>
318
      <td style="vertical-align: top; text-align: center;">24 kB<br>
319
      </td>
320
      <td style="vertical-align: top; text-align: center;">256 B<br>
321
      </td>
322
      <td style="vertical-align: top; text-align: center;">No<br>
323
      </td>
324
    </tr>
325
    <tr>
326
      <td style="vertical-align: top; text-align: center;">msp430x156<br>
327
      </td>
328
      <td style="vertical-align: top; text-align: center;">24 kB<br>
329
      </td>
330
      <td style="vertical-align: top; text-align: center;">512 B<br>
331
      </td>
332
      <td style="vertical-align: top; text-align: center;">No<br>
333
      </td>
334
    </tr>
335
    <tr>
336
      <td style="vertical-align: top; text-align: center;">msp430x4361<br>
337
      </td>
338
      <td style="vertical-align: top; text-align: center;">24 kB<br>
339
      </td>
340
      <td style="vertical-align: top; text-align: center;">1024 B<br>
341
      </td>
342
      <td style="vertical-align: top; text-align: center;">No<br>
343
      </td>
344
    </tr>
345
    <tr>
346
      <td style="vertical-align: top; text-align: center;">msp430x436<br>
347
      </td>
348
      <td style="vertical-align: top; text-align: center;">24 kB<br>
349
      </td>
350
      <td style="vertical-align: top; text-align: center;">1024 B<br>
351
      </td>
352
      <td style="vertical-align: top; text-align: center;">No<br>
353
      </td>
354
    </tr>
355
    <tr>
356
      <td style="vertical-align: top; text-align: center;">msp430x336<br>
357
      </td>
358
      <td style="vertical-align: top; text-align: center;">24 kB<br>
359
      </td>
360
      <td style="vertical-align: top; text-align: center;">1024 B<br>
361
      </td>
362
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
363
      </td>
364
    </tr>
365 69 olivier.gi
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 32 kB</i></b></td></tr>
366
<tr align="center"><td>msp430x4270 </td><td>32 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
367
</tr>
368
<tr align="center"><td>msp430xG4270</td><td>32 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
369
</tr>
370
<tr align="center"><td>msp430x147  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
371
      </td>
372
</tr>
373
<tr align="center"><td>msp430x1471 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
374
      </td>
375
</tr>
376
<tr align="center"><td>msp430x157  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
377
</tr>
378
<tr align="center"><td>msp430x167  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
379
      </td>
380
</tr>
381
<tr align="center"><td>msp430x2272 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
382
</tr>
383
<tr align="center"><td>msp430x2274 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
384
</tr>
385
<tr align="center"><td>msp430x337  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
386
      </td>
387
</tr>
388
<tr align="center"><td>msp430x417  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
389
</tr>
390
<tr align="center"><td>msp430x427  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
391
      </td>
392
</tr>
393
<tr align="center"><td>msp430xE427 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
394
      </td>
395
</tr>
396
<tr align="center"><td>msp430xE4272</td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
397
      </td>
398
</tr>
399
<tr align="center"><td>msp430xW427 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
400
</tr>
401
<tr align="center"><td>msp430x437  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
402
</tr>
403
<tr align="center"><td>msp430xG437 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
404
</tr>
405
<tr align="center"><td>msp430x4371 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
406
</tr>
407
<tr align="center"><td>msp430x447  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
408
      </td>
409
</tr>
410
<tr align="center"><td>msp430x2370 </td><td>32 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
411
      </td>
412
</tr>
413
<tr align="center"><td>msp430x247  </td><td>32 kB</td><td> 4096 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
414
      </td>
415
</tr>
416
<tr align="center"><td>msp430x2471 </td><td>32 kB</td><td> 4096 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
417
      </td>
418 72 olivier.gi
</tr><tr>
419
      <td style="vertical-align: top; text-align: center;">msp430x1610<br>
420
      </td>
421
      <td style="vertical-align: top; text-align: center;">32 kB</td>
422
      <td style="vertical-align: top; text-align: center;">5120 B<br>
423
      </td>
424
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span><br>
425
      </td>
426
    </tr>
427
    <tr align="center">
428
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 41 kB</i></b></td>
429
    </tr>
430
    <tr>
431
      <td style="vertical-align: top; text-align: center;">msp430x5438<br>
432
      </td>
433
      <td style="vertical-align: top; text-align: center;">41 kB<br>
434
      </td>
435
      <td style="vertical-align: top; text-align: center;">16384 B<br>
436
      </td>
437
      <td style="vertical-align: top; text-align: center;">No
438
      </td>
439
    </tr>
440
    <tr>
441
      <td style="vertical-align: top; text-align: center;">msp430x5437<br>
442
      </td>
443
      <td style="vertical-align: top; text-align: center;">41 kB<br>
444
      </td>
445
      <td style="vertical-align: top; text-align: center;">16384 B<br>
446
      </td>
447
      <td style="vertical-align: top; text-align: center;">No
448
      </td>
449
    </tr>
450
    <tr>
451
      <td style="vertical-align: top; text-align: center;">msp430x5436<br>
452
      </td>
453
      <td style="vertical-align: top; text-align: center;">41 kB<br>
454
      </td>
455
      <td style="vertical-align: top; text-align: center;">16384 B<br>
456
      </td>
457
      <td style="vertical-align: top; text-align: center;">No
458
      </td>
459
    </tr>
460
    <tr>
461
      <td style="vertical-align: top; text-align: center;">msp430x5435<br>
462
      </td>
463
      <td style="vertical-align: top; text-align: center;">41 kB<br>
464
      </td>
465
      <td style="vertical-align: top; text-align: center;">16384 B<br>
466
      </td>
467
      <td style="vertical-align: top; text-align: center;">No
468
      </td>
469
    </tr>
470
    <tr>
471
      <td style="vertical-align: top; text-align: center;">msp430x5419<br>
472
      </td>
473
      <td style="vertical-align: top; text-align: center;">41 kB<br>
474
      </td>
475
      <td style="vertical-align: top; text-align: center;">16384 B<br>
476
      </td>
477
      <td style="vertical-align: top; text-align: center;">No
478
      </td>
479
    </tr>
480
    <tr>
481
      <td style="vertical-align: top; text-align: center;">msp430x5418<br>
482
      </td>
483
      <td style="vertical-align: top; text-align: center;">41 kB<br>
484
      </td>
485
      <td style="vertical-align: top; text-align: center;">16384 B<br>
486
      </td>
487
      <td style="vertical-align: top; text-align: center;">No
488
      </td>
489
    </tr>
490
    <tr align="center">
491
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 48 kB</i></b></td>
492
    </tr>
493
    <tr>
494
      <td style="vertical-align: top; text-align: center;">msp430x1611<br>
495
      </td>
496
      <td style="vertical-align: top; text-align: center;">48 kB<br>
497
      </td>
498
      <td style="vertical-align: top; text-align: center;">10240 B<br>
499
      </td>
500
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
501
      </td>
502
    </tr>
503
    <tr>
504
      <td style="vertical-align: top; text-align: center;">msp430x248<br>
505
      </td>
506
      <td style="vertical-align: top; text-align: center;">48 kB<br>
507
      </td>
508
      <td style="vertical-align: top; text-align: center;">4096 B<br>
509
      </td>
510
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
511
      </td>
512
    </tr>
513
    <tr>
514
      <td style="vertical-align: top; text-align: center;">msp430x2481<br>
515
      </td>
516
      <td style="vertical-align: top; text-align: center;">48 kB<br>
517
      </td>
518
      <td style="vertical-align: top; text-align: center;">4096 B
519
      </td>
520
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
521
      </td>
522
    </tr>
523
    <tr>
524
      <td style="vertical-align: top; text-align: center;">msp430x4783<br>
525
      </td>
526
      <td style="vertical-align: top; text-align: center;">48 kB<br>
527
      </td>
528
      <td style="vertical-align: top; text-align: center;">2048 B<br>
529
      </td>
530
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
531
      </td>
532
    </tr>
533
    <tr>
534
      <td style="vertical-align: top; text-align: center;">msp430xG438<br>
535
      </td>
536
      <td style="vertical-align: top; text-align: center;">48 kB<br>
537
      </td>
538
      <td style="vertical-align: top; text-align: center;">2048 B
539
      </td>
540
      <td style="vertical-align: top; text-align: center;">No
541
      </td>
542
    </tr>
543
    <tr>
544
      <td style="vertical-align: top; text-align: center;">msp430x4784<br>
545
      </td>
546
      <td style="vertical-align: top; text-align: center;">48 kB<br>
547
      </td>
548
      <td style="vertical-align: top; text-align: center;">2048 B
549
      </td>
550
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
551
      </td>
552
    </tr>
553
    <tr>
554
      <td style="vertical-align: top; text-align: center;">msp430x148<br>
555
      </td>
556
      <td style="vertical-align: top; text-align: center;">48 kB<br>
557
      </td>
558
      <td style="vertical-align: top; text-align: center;">2048 B
559
      </td>
560
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
561
      </td>
562
    </tr>
563
    <tr>
564
      <td style="vertical-align: top; text-align: center;">msp430x168<br>
565
      </td>
566
      <td style="vertical-align: top; text-align: center;">48 kB<br>
567
      </td>
568
      <td style="vertical-align: top; text-align: center;">2048 B
569
      </td>
570
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
571
      </td>
572
    </tr>
573
    <tr>
574
      <td style="vertical-align: top; text-align: center;">msp430x1481<br>
575
      </td>
576
      <td style="vertical-align: top; text-align: center;">48 kB<br>
577
      </td>
578
      <td style="vertical-align: top; text-align: center;">2048 B
579
      </td>
580
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
581
      </td>
582
    </tr>
583
    <tr>
584
      <td style="vertical-align: top; text-align: center;">msp430x448<br>
585
      </td>
586
      <td style="vertical-align: top; text-align: center;">48 kB<br>
587
      </td>
588
      <td style="vertical-align: top; text-align: center;">2048 B
589
      </td>
590
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
591
      </td>
592
    </tr>
593
    <tr align="center">
594
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 51 kB</i></b></td>
595
    </tr>
596
    <tr>
597
      <td style="vertical-align: top; text-align: center;">msp430xG4617<br>
598
      </td>
599
      <td style="vertical-align: top; text-align: center;">51 kB<br>
600
      </td>
601
      <td style="vertical-align: top; text-align: center;">8192 B<br>
602
      </td>
603
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
604
      </td>
605
    </tr>
606
    <tr>
607
      <td style="vertical-align: top; text-align: center;">msp430x2418<br>
608
      </td>
609
      <td style="vertical-align: top; text-align: center;">51 kB<br>
610
      </td>
611
      <td style="vertical-align: top; text-align: center;">8192 B<br>
612
      </td>
613
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
614
      </td>
615
    </tr>
616
    <tr>
617
      <td style="vertical-align: top; text-align: center;">msp430x2618<br>
618
      </td>
619
      <td style="vertical-align: top; text-align: center;">51 kB<br>
620
      </td>
621
      <td style="vertical-align: top; text-align: center;">8192 B<br>
622
      </td>
623
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
624
      </td>
625
    </tr>
626
    <tr>
627
      <td style="vertical-align: top; text-align: center;">msp430x2417<br>
628
      </td>
629
      <td style="vertical-align: top; text-align: center;">51 kB<br>
630
      </td>
631
      <td style="vertical-align: top; text-align: center;">8192 B<br>
632
      </td>
633
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
634
      </td>
635
    </tr>
636
    <tr>
637
      <td style="vertical-align: top; text-align: center;">msp430xG4618<br>
638
      </td>
639
      <td style="vertical-align: top; text-align: center;">51 kB<br>
640
      </td>
641
      <td style="vertical-align: top; text-align: center;">8192 B<br>
642
      </td>
643
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
644
      </td>
645
    </tr>
646
 
647
    <tr>
648
      <td style="vertical-align: top; text-align: center;">msp430x2617<br>
649
      </td>
650
      <td style="vertical-align: top; text-align: center;">51 kB<br>
651
      </td>
652
      <td style="vertical-align: top; text-align: center;">8192 B<br>
653
      </td>
654
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
655
      </td>
656
    </tr>
657
    <tr align="center">
658
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 54 kB</i></b></td>
659
    </tr>
660
    <tr>
661
      <td style="vertical-align: top; text-align: center;">msp430x1612<br>
662
      </td>
663
      <td style="vertical-align: top; text-align: center;">54 kB<br>
664
      </td>
665
      <td style="vertical-align: top; text-align: center;">5120 B<br>
666
      </td>
667
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
668
      </td>
669
    </tr>
670
    <tr align="center">
671
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 55 kB</i></b></td>
672
    </tr>
673
    <tr>
674
      <td style="vertical-align: top; text-align: center;">msp430x2619<br>
675
      </td>
676
      <td style="vertical-align: top; text-align: center;">55 kB<br>
677
      </td>
678
      <td style="vertical-align: top; text-align: center;">4096 B<br>
679
      </td>
680
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
681
      </td>
682
    </tr>
683
    <tr>
684
      <td style="vertical-align: top; text-align: center;">msp430xG4619<br>
685
      </td>
686
      <td style="vertical-align: top; text-align: center;">55 kB<br>
687
      </td>
688
      <td style="vertical-align: top; text-align: center;">4096 B<br>
689
      </td>
690
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
691
      </td>
692
    </tr>
693
    <tr>
694
      <td style="vertical-align: top; text-align: center;">msp430xG4616<br>
695
      </td>
696
      <td style="vertical-align: top; text-align: center;">55 kB<br>
697
      </td>
698
      <td style="vertical-align: top; text-align: center;">4096 B<br>
699
      </td>
700
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
701
      </td>
702
    </tr>
703
    <tr>
704
      <td style="vertical-align: top; text-align: center;">msp430x2416<br>
705
      </td>
706
      <td style="vertical-align: top; text-align: center;">55 kB<br>
707
      </td>
708
      <td style="vertical-align: top; text-align: center;">4096 B<br>
709
      </td>
710
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
711
      </td>
712
    </tr>
713
    <tr>
714
      <td style="vertical-align: top; text-align: center;">msp430x2419<br>
715
      </td>
716
      <td style="vertical-align: top; text-align: center;">55 kB<br>
717
      </td>
718
      <td style="vertical-align: top; text-align: center;">4096 B<br>
719
      </td>
720
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
721
      </td>
722
    </tr>
723
    <tr>
724
      <td style="vertical-align: top; text-align: center;">msp430x2616<br>
725
      </td>
726
      <td style="vertical-align: top; text-align: center;">55 kB<br>
727
      </td>
728
      <td style="vertical-align: top; text-align: center;">4096 B<br>
729
      </td>
730
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
731
      </td>
732
    </tr>
733
    <tr>
734
      <td style="vertical-align: top; text-align: center;">msp430x2410<br>
735
      </td>
736
      <td style="vertical-align: top; text-align: center;">55 kB<br>
737
      </td>
738
      <td style="vertical-align: top; text-align: center;">4096 B<br>
739
      </td>
740
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
741
      </td>
742
    </tr>
743
    <tr align="center">
744
      <td colspan="4" rowspan="1" style="vertical-align: top;"><b><i>Program Memory Size: 59 kB</i></b></td>
745
    </tr>
746
    <tr>
747
      <td style="vertical-align: top; text-align: center;">msp430x4794<br>
748
      </td>
749
      <td style="vertical-align: top; text-align: center;">59 kB<br>
750
      </td>
751
      <td style="vertical-align: top; text-align: center;">2560 B<br>
752
      </td>
753
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
754
      </td>
755
    </tr>
756
    <tr>
757
      <td style="vertical-align: top; text-align: center;">msp430x4793<br>
758
      </td>
759
      <td style="vertical-align: top; text-align: center;">59 kB<br>
760
      </td>
761
      <td style="vertical-align: top; text-align: center;">2560 B<br>
762
      </td>
763
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
764
      </td>
765
    </tr>
766
    <tr>
767
      <td style="vertical-align: top; text-align: center;">msp430x2491<br>
768
      </td>
769
      <td style="vertical-align: top; text-align: center;">59 kB<br>
770
      </td>
771
      <td style="vertical-align: top; text-align: center;">2048 B<br>
772
      </td>
773
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
774
      </td>
775
    </tr>
776
    <tr>
777
      <td style="vertical-align: top; text-align: center;">msp430x1491<br>
778
      </td>
779
      <td style="vertical-align: top; text-align: center;">59 kB<br>
780
      </td>
781
      <td style="vertical-align: top; text-align: center;">2048 B<br>
782
      </td>
783
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
784
      </td>
785
    </tr>
786
    <tr>
787
      <td style="vertical-align: top; text-align: center;">msp430x149<br>
788
      </td>
789
      <td style="vertical-align: top; text-align: center;">59 kB<br>
790
      </td>
791
      <td style="vertical-align: top; text-align: center;">2048 B<br>
792
      </td>
793
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
794
      </td>
795
    </tr>
796
    <tr>
797
      <td style="vertical-align: top; text-align: center;">msp430xG439<br>
798
      </td>
799
      <td style="vertical-align: top; text-align: center;">59 kB<br>
800
      </td>
801
      <td style="vertical-align: top; text-align: center;">2048 B<br>
802
      </td>
803
      <td style="vertical-align: top; text-align: center;">No<br>
804
      </td>
805
    </tr>
806
    <tr>
807
      <td style="vertical-align: top; text-align: center;">msp430x249<br>
808
      </td>
809
      <td style="vertical-align: top; text-align: center;">59 kB<br>
810
      </td>
811
      <td style="vertical-align: top; text-align: center;">2048 B<br>
812
      </td>
813
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
814
      </td>
815
    </tr>
816
    <tr>
817
      <td style="vertical-align: top; text-align: center;">msp430x449<br>
818
      </td>
819
      <td style="vertical-align: top; text-align: center;">59 kB<br>
820
      </td>
821
      <td style="vertical-align: top; text-align: center;">2048 B<br>
822
      </td>
823
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
824
      </td>
825
    </tr>
826
    <tr>
827
      <td style="vertical-align: top; text-align: center;">msp430x169<br>
828
      </td>
829
      <td style="vertical-align: top; text-align: center;">59 kB<br>
830
      </td>
831
      <td style="vertical-align: top; text-align: center;">2048 B<br>
832
      </td>
833
      <td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Yes</span>
834
      </td>
835
    </tr>
836
 
837 69 olivier.gi
</tbody></table><br>
838 116 olivier.gi
<span style="text-decoration: underline;">Note:</span> the program memory size should imperatively match the openMSP430 configuration.<br>
839 50 olivier.gi
 
840 69 olivier.gi
<br>
841 116 olivier.gi
<a name="5.3 Custom linker script"></a>
842
<h2>5.3 Custom linker script</h2>
843
The use of the <b>-mmcu</b> switch is of course <b>NOT</b> mandatory. It is simply a convenient way to use the pre-existing linker scripts provided with the MSPGCC4 toolchain.<br>
844
<br>
845
However, if the peripheral address space is larger than the standard 512B of the original MSP430 (see the <a href="http://opencores.org/project,openmsp430,core#2.1.3.2 Advanced System Configuration)">Advanced System Configuration</a> section), a customized linker script <b>MUST</b> be provided.<br>
846
<br>
847
To create a custom linker script, the simplest way is to start from an existing one:
848
<ul>
849
    <li>the MSPGCC(4) toolchain provides a wide range of examples for all supported MSP430 models (see "<b><i>msp430/lib/ldscripts/</i></b>" sub-directory, in the MSPGCC(4) installation directory).</li>
850
    <li>the openMSP430 project also provide a simple linker script example: <a href="http://opencores.org/websvn,filedetails?repname=openmsp430&path=/openmsp430/trunk/core/sim/rtl_sim/src/ldscript_example.x">ldscript_example.x</a></li>
851
</ul>
852
<br>
853
From there, the script can be modified to match <b>YOUR</b> openMSP430 configuration:
854
<ul>
855
   <li>In the <b><i>text (rx)</i></b> section definition, update the <b><i>ORIGIN</i></b> and <b><i>LENGTH</b></i> fields to match the <b>PROGRAM MEMORY</b> configuration.</li>
856
   <li>In the <b><i>data (rwx)</i></b> section definition, update the <b><i>ORIGIN</i></b> field to match the <b>PERIPHERAL SPACE</b> configuration and the <b><i>LENGTH</b></i> field to match the <b>DATA MEMORY</b> configuration.</li>
857
   <li>At last, update the stack pointer initialization value (look for the "<b><i>PROVIDE (__stack =</i></b>" section) and make sure that it falls in the data memory space (the stack size should also matches your application requirements, i.e. not to small... and not to big :-P ).</li>
858
</ul>
859
<br><br>
860 69 olivier.gi
 
861
 
862
</body></html>

powered by: WebSVN 2.1.0

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