cef8408af837f548582e397b3fdb84ef62439a78
[openocd.git] / src / server / httpd / browsemem.tcl
1 # converted to .tcl by html2tcl.tcl
2 set buffer ""
3 append buffer {
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <html xmlns="http://www.w3.org/TR/REC-html40">
35 <head>
36 <title>OpenOCD debugger</title>
37 <meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
38 <link type="text/css" rel="stylesheet" href="menuweb.css"/>
39 </head>
40 }
41
42 set console ""
43 set upload_filename /ram/upload
44
45 append buffer {
46 <body style="margin:0px;">
47 <div style="width:974px;height:85px;">
48 <div style="float:left;position:relative;left:32px;width:478px;">
49 <a href="/">
50 OpenOCD
51 </a>
52 </div>
53 <div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
54 <div style="position:relative;left:15px;top:4px;" class="textlight">
55 }
56 append buffer [capture version]
57 append buffer {
58 </div>
59 </div>
60 </div>
61 <table style="padding:0px;border-collapse:collapse;">
62 <tr>
63 <td style="width:33px;">
64 <div style="width:20px;height:510px;">
65 &nbsp;
66 </div>
67 </td>
68 <td style="vertical-align:top;height:100%;width:140px;padding:0px;">
69 <table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
70 <tr style="height:59px;">
71 <td/>
72 </tr>
73 <tr>
74 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
75 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
76 <a href="browsemem.tcl" style="font-weight: bold;">Browse / Edit</a>
77 </div>
78 </td>
79 </tr>
80 <tr>
81 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
82 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
83 <a href="downloadmem.tcl" style="">Download</a>
84 </div>
85 </td>
86 </tr>
87 <tr>
88 <td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
89 </tr>
90 <tr>
91 <td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
92 </tr>
93 <tr>
94 <td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
95 </tr>
96 </table>
97 </td>
98 <td style="vertical-align:top;padding:0px;height:100%">
99 <table style="padding:0px;border-collapse:collapse;height:100%;">
100 <tr>
101 <td>
102 <table style="padding:0px;border-collapse:collapse;">
103 <tr>
104 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
105 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
106 <a href="index.tcl">Config Target</a>
107 </div>
108 </td>
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="flashinfo.tcl">Flash</a>
112 </div>
113 </td>
114 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
115 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
116 <a href="browsemem.tcl" style="font-weight: bold;">Memory</a>
117 </div>
118 </td>
119 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
120 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
121 <a href="openocd.tcl">OpenOCD</a>
122 </div>
123 </td>
124 </tr>
125 </table>
126 </td>
127 </tr>
128 <tr>
129 <td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
130 <div style="width:500px;background-color:#ffffff;height:100%;">
131 &nbsp;
132 </div>
133 </td>
134 </tr>
135 <tr>
136 <td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
137 <H1>Browse / Edit Memory</H1>
138 </td>
139 </tr>
140 <tr style="height:100%;">
141 <td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
142
143
144
145 }
146
147
148 set form_address [formfetch form_address]
149 set form_length [formfetch form_length]
150 set form_type [formfetch form_type]
151 set form_action [formfetch form_action]
152 set form_value [formfetch form_value]
153
154 if {[string compare $form_length ""]==0} {
155 set form_length 0
156 }
157 if {$form_length<=0} {
158 set form_length 0x80
159 }
160 if {$form_length>0x1000} {
161 set form_length 0x1000
162 }
163
164 if {[string compare $form_type ""]==0} {
165 set form_type mdw
166 }
167
168 if {[string compare $form_type "mdw"]==0} {
169 set wordsize 4
170 set modify_cmd mww
171 }
172 if {[string compare $form_type "mdh"]==0} {
173 set wordsize 2
174 set modify_cmd mwh
175 }
176 if {[string compare $form_type "mdb"]==0} {
177 set wordsize 1
178 set modify_cmd mwb
179 }
180
181
182
183
184 if {[string compare $form_address ""]!=0} {
185 if {[string compare $form_action "Previous"]==0} {
186 # Kludge! Work around problems parsing hex in Jim Tcl expressions
187 incr form_address ; set form_address [expr $form_address-1]
188 if {$form_address-$form_length>0} {
189 set form_address "0x[tohex [expr $form_address-$form_length]]"
190 } else {
191 set form_address "0x0"
192 }
193 }
194 if {[string compare $form_action "Next"]==0} {
195 # Kludge! Work around problems parsing hex in Jim Tcl expressions
196 incr form_address ; set form_address [expr $form_address-1]
197 set form_address "0x[tohex [expr $form_address+$form_length]]"
198 }
199 if {[string compare $form_action "Modify"]==0} {
200 append console [capture_catch "$modify_cmd $form_address $form_value"]
201 }
202 if {[string compare $form_action "Fill"]==0} {
203 append console [capture_catch "$modify_cmd $form_address $form_value $form_length"]
204 }
205 }
206
207
208
209 append buffer {
210
211 <form action="browsemem.tcl" method="post">
212 <table>
213 <tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="}
214 append buffer $form_address
215 append buffer {"></td></tr>
216 <tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}
217 append buffer "0x[tohex $form_length]"
218 append buffer {"></td></tr>
219 <tr><td class="formtext">Value</td><td><input type="text" name="form_value" value="}
220 append buffer $form_value
221 append buffer {"></td>
222 <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Modify"></td>
223 <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Fill"></td></tr>
224 <tr><td class="formtext">Type</td><td style="padding-top:1px;">
225 <select name="form_type">
226 <option
227 }
228 if {[string compare $form_type "mdb"]==0} { append buffer {selected="selected"} }
229 append buffer { value ="mdb">8 bit
230 </option>
231 <option
232 }
233 if {[string compare $form_type "mdh"]==0} { append buffer {selected="selected"} }
234 append buffer { value ="mdh">16 bit
235 </option>
236 <option
237 }
238 if {[string compare $form_type "mdw"]==0} { append buffer {selected="selected"} }
239 append buffer {value ="mdw">32 bit
240 </option>
241 </select>
242
243 </td></tr>
244 </table>
245 <table>
246 <tr><td style="height:15px;width:535px;">&nbsp</td></tr>
247 <tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
248 <tr><td style="height:15px;width:535px;">&nbsp</td></tr>
249 </table>
250
251 <table><tr>
252 <td><input type="submit" name="form_action" value="Refresh"></td>
253 <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Previous" ></td>
254 <td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Next" ></td>
255 </tr></table>
256 <br>
257
258 </form>
259 <p>
260 <div class="fontbigger">Memory:</div><p>
261 <code style="white-space: nowrap; font-size:11px;font:courier new;">
262 }
263
264 if {[string compare $form_address ""]!=0} {
265 append console [encode [capture_catch halt]]
266 append buffer [encode [capture_catch "$form_type $form_address [expr $form_length]"]]
267 }
268
269 append buffer {
270 </code>
271
272
273
274
275
276 </td>
277 </tr>
278 }
279
280
281 set toggle_details [formfetch toggle_details]
282 if {[string length $toggle_details]==0} {
283 set toggle_details 0
284 }
285 set show_details [load_var show_details]
286 if {[string length $show_details]==0} {
287 set show_details 0
288 }
289 if {$toggle_details==1} {
290 set show_details [expr 1-$show_details]
291 save_var show_details $show_details
292 }
293
294 if {[string length $console]!=0} {
295
296 append buffer {
297 <tr style="height:100%;">
298 <td style="height:100%;background-color:red;" colspan="6">
299 <table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
300 <td style="width:25px;">&nbsp;</td>
301 }
302
303 if {$show_details==1} {
304 append buffer <
305 append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
306 append buffer >
307 } else {
308 append buffer <
309 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;"}
310 append buffer >
311 }
312
313 append buffer {
314 <a class="openocd" href="browsemem.tcl?toggle_details=1">
315 }
316
317 if {$show_details==1} {
318 append buffer "Hide details"
319 append buffer <br/>
320 } else {
321 append buffer {<div style="position:relative;top:7px;text-align:center;">}
322 append buffer "Show details"
323 append buffer {</div>}
324 }
325
326 append buffer {
327 </a>
328 }
329
330 if {$show_details==1} {
331 append buffer $console
332 }
333
334 append buffer {</td>}
335
336 if {$show_details!=1} {
337 append buffer {<td>&nbsp;</td>}
338 }
339
340 append buffer {
341 <td style="width:25px;">&nbsp;</td>
342 </table>
343 </td>
344 </tr>
345 }
346
347 }
348
349 append buffer {
350 <tr>
351 <td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
352 <div style="width:500px;background-color:#ffffff;height:100%;">
353 &nbsp;
354 </div>
355 </td>
356 </tr>
357 </table>
358 </td>
359 <td style="width:6px;"/>
360 <td style="width:245px;height:100%">
361 <table style="padding:0px;border-collapse:collapse;height:100%;">
362 <tr>
363 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
364 <div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
365 Documentation
366 </div>
367 </td>
368 <td width="40px">
369 &nbsp;
370 </td>
371 <td/>
372 </tr>
373 <tr>
374 <td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
375 </tr>
376 <tr>
377 <td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
378 <a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
379 <br/>
380 </td>
381 </tr>
382 <tr>
383 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
384 </tr>
385 <tr>
386 <td colspan="3">
387 <table style="padding:0px;border-collapse:collapse;">
388 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
389 <td style="background-color:#999999;width:225px; height:1px;"/>
390 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
391 </table>
392 </td>
393 </tr>
394 <tr>
395 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
396 </tr>
397 <tr style="height:100%;">
398 <td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
399
400 <p>Browse and edit target memory.<br>
401 Length is in bytes, maximum 4096 bytes.</p>
402 <p>An error message is shown when trying to browse or edit memory which cases a CPU fault.</p>
403 <p>CPU will be halted if required.</p>
404 <p><b>Modify</b> - Will modify only one byte, half-word or word starting at Address.</p>
405 <p><b>Fill</b> - Will fill the specified region with the specified value.</p>
406 <p><b>Refresh</b> - Display the content of the specified memory area.</p>
407
408 </td>
409 </tr>
410 <tr>
411 <td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
412 &nbsp;
413 </td>
414 </tr>
415 </table>
416 </td>
417 </tr>
418 </table>
419 </body>
420 </html>
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449 }
450
451 start_chunked "html"
452 write_chunked $buffer
453 end_chunked
454

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)