Add comments and tiny improvements to STM32 flash loader algorithm
[openocd/openocdswd.git] / src / server / httpd / downloadmem.tcl
blobe6127aeafdf1b96db8c0abcbee6144c01c7d43be
1 # converted to .tcl by html2tcl.tcl
2 set buffer ""
3 append buffer {
39 <html xmlns="http://www.w3.org/TR/REC-html40">
40 <head>
41 <title>OpenOCD debugger</title>
42 <meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
43 <link type="text/css" rel="stylesheet" href="menuweb.css"/>
44 </head>
47 set console ""
48 set upload_filename /ram/upload
50 append buffer {
51 <body style="margin:0px;">
52 <div style="width:974px;height:85px;">
53 <div style="float:left;position:relative;left:32px;width:478px;">
54 <a href="/">
55 OpenOCD
56 </a>
57 </div>
58 <div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
59 <div style="position:relative;left:15px;top:4px;" class="textlight">
61 append buffer [capture version]
62 append buffer {
63 </div>
64 </div>
65 </div>
66 <table style="padding:0px;border-collapse:collapse;">
67 <tr>
68 <td style="width:33px;">
69 <div style="width:20px;height:510px;">
70 &nbsp;
71 </div>
72 </td>
73 <td style="vertical-align:top;height:100%;width:140px;padding:0px;">
74 <table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
75 <tr style="height:59px;">
76 <td/>
77 </tr>
78 <tr>
79 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
80 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
81 <a href="browsemem.tcl" style="">Browse / Edit</a>
82 </div>
83 </td>
84 </tr>
85 <tr>
86 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
87 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
88 <a href="downloadmem.tcl" style="font-weight: bold;">Download</a>
89 </div>
90 </td>
91 </tr>
92 <tr>
93 <td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
94 </tr>
95 <tr>
96 <td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
97 </tr>
98 <tr>
99 <td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
100 </tr>
101 </table>
102 </td>
103 <td style="vertical-align:top;padding:0px;height:100%">
104 <table style="padding:0px;border-collapse:collapse;height:100%;">
105 <tr>
106 <td>
107 <table style="padding:0px;border-collapse:collapse;">
108 <tr>
109 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
110 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
111 <a href="index.tcl">Config Target</a>
112 </div>
113 </td>
114 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
115 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
116 <a href="flashinfo.tcl">Flash</a>
117 </div>
118 </td>
119 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
120 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
121 <a href="browsemem.tcl" style="font-weight: bold;">Memory</a>
122 </div>
123 </td>
124 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
125 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
126 <a href="openocd.tcl">OpenOCD</a>
127 </div>
128 </td>
129 </tr>
130 </table>
131 </td>
132 </tr>
133 <tr>
134 <td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
135 <div style="width:500px;background-color:#ffffff;height:100%;">
136 &nbsp;
137 </div>
138 </td>
139 </tr>
140 <tr>
141 <td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
142 <H1>Download Memory Range</H1>
143 </td>
144 </tr>
145 <tr style="height:100%;">
146 <td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
149 set form_address [formfetch form_address]
150 set form_length [formfetch form_length]
151 set form_action [formfetch form_action]
153 append buffer {
154 <form action="downloadmem.tcl" method="post">
155 <table>
156 <tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="}
157 append buffer $form_address
158 append buffer {"></td></tr>
159 <tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}
160 append buffer $form_length
161 append buffer {"></td></tr>
162 </td></tr>
163 </table>
165 <table>
166 <tr><td style="height:15px;width:535px;">&nbsp</td></tr>
167 <tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
168 <tr><td style="height:15px;width:535px;">&nbsp</td></tr>
169 </table>
171 <input type="submit" value="Download" name="form_action">
174 </form>
177 if {[string compare $form_action "Download"]==0} {
178 append console [encode [capture_catch "reset init"]]
179 append console [encode [capture_catch "dump_image /tmp/dump.bin $form_address $form_length"]]
181 append buffer {
182 <form action="../dump.bin" target="_blank">
183 <input type="submit" name="form_action" value="Save downloaded memory">
184 </form>
190 append buffer {
194 </td>
195 </tr>
199 set toggle_details [formfetch toggle_details]
200 if {[string length $toggle_details]==0} {
201 set toggle_details 0
203 set show_details [load_var show_details]
204 if {[string length $show_details]==0} {
205 set show_details 0
207 if {$toggle_details==1} {
208 set show_details [expr 1-$show_details]
209 save_var show_details $show_details
212 if {[string length $console]!=0} {
214 append buffer {
215 <tr style="height:100%;">
216 <td style="height:100%;background-color:red;" colspan="6">
217 <table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
218 <td style="width:25px;">&nbsp;</td>
221 if {$show_details==1} {
222 append buffer <
223 append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
224 append buffer >
225 } else {
226 append buffer <
227 append buffer {td style="background-image:url('menu_cuts/h_tab_free.png');width:110px;height:29px;background-repeat: no-repeat;background-position:top left;"}
228 append buffer >
231 append buffer {
232 <a class="openocd" href="downloadmem.tcl?toggle_details=1">
235 if {$show_details==1} {
236 append buffer "Hide details"
237 append buffer <br/>
238 } else {
239 append buffer {<div style="position:relative;top:7px;text-align:center;">}
240 append buffer "Show details"
241 append buffer {</div>}
244 append buffer {
245 </a>
248 if {$show_details==1} {
249 append buffer $console
252 append buffer {</td>}
254 if {$show_details!=1} {
255 append buffer {<td>&nbsp;</td>}
258 append buffer {
259 <td style="width:25px;">&nbsp;</td>
260 </table>
261 </td>
262 </tr>
267 append buffer {
268 <tr>
269 <td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
270 <div style="width:500px;background-color:#ffffff;height:100%;">
271 &nbsp;
272 </div>
273 </td>
274 </tr>
275 </table>
276 </td>
277 <td style="width:6px;"/>
278 <td style="width:245px;height:100%">
279 <table style="padding:0px;border-collapse:collapse;height:100%;">
280 <tr>
281 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
282 <div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
283 Documentation
284 </div>
285 </td>
286 <td width="40px">
287 &nbsp;
288 </td>
289 <td/>
290 </tr>
291 <tr>
292 <td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
293 </tr>
294 <tr>
295 <td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
296 <a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
297 <br/>
298 </td>
299 </tr>
300 <tr>
301 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
302 </tr>
303 <tr>
304 <td colspan="3">
305 <table style="padding:0px;border-collapse:collapse;">
306 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
307 <td style="background-color:#999999;width:225px; height:1px;"/>
308 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
309 </table>
310 </td>
311 </tr>
312 <tr>
313 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
314 </tr>
315 <tr style="height:100%;">
316 <td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
318 Download memory from target. <br>
319 <b>Note</b> that download memory can take
320 a long time(potentially minutes for megabytes at low JTAG clk speeds).
321 <p/>
322 Once the memory is downloaded a link is available on the page to download
323 the file to your PC.
325 </td>
326 </tr>
327 <tr>
328 <td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
329 &nbsp;
330 </td>
331 </tr>
332 </table>
333 </td>
334 </tr>
335 </table>
336 </body>
337 </html>
363 start_chunked "html"
364 write_chunked $buffer
365 end_chunked