Browse Source

httpd: retire this server

this never panned out and there are enough mistakes in
the code that probably nobody used this.

Use the tcl server and implement a standalone http
app instead works fine.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
tags/v0.5.0-rc1
Øyvind Harboe 13 years ago
parent
commit
fdae51287c
56 changed files with 3 additions and 10051 deletions
  1. +0
    -2
      README
  2. +0
    -5
      configure.in
  3. +0
    -14
      doc/manual/server.txt
  4. +0
    -4
      src/Makefile.am
  5. +0
    -6
      src/openocd.c
  6. +1
    -23
      src/server/Makefile.am
  7. +0
    -506
      src/server/httpd.c
  8. +0
    -28
      src/server/httpd.h
  9. BIN
      src/server/httpd/Stylizer.class
  10. +0
    -114
      src/server/httpd/Stylizer.java
  11. +0
    -454
      src/server/httpd/browsemem.tcl
  12. +0
    -5
      src/server/httpd/build.sh
  13. +0
    -366
      src/server/httpd/downloadmem.tcl
  14. +0
    -462
      src/server/httpd/editconfigs.tcl
  15. +0
    -436
      src/server/httpd/editfile.tcl
  16. +0
    -387
      src/server/httpd/erase.tcl
  17. +0
    -459
      src/server/httpd/flash.tcl
  18. +0
    -382
      src/server/httpd/flashinfo.tcl
  19. +0
    -336
      src/server/httpd/guiupload.tcl
  20. +0
    -128
      src/server/httpd/html2tcl.sh
  21. +0
    -100
      src/server/httpd/httpd.tcl
  22. +0
    -376
      src/server/httpd/index.tcl
  23. +0
    -343
      src/server/httpd/log.tcl
  24. +0
    -973
      src/server/httpd/menu.xml
  25. +0
    -298
      src/server/httpd/menu.xsl
  26. BIN
      src/server/httpd/menu_cuts/center_bottom.png
  27. BIN
      src/server/httpd/menu_cuts/center_top.png
  28. BIN
      src/server/httpd/menu_cuts/h_tab1.png
  29. BIN
      src/server/httpd/menu_cuts/h_tab1_selected.png
  30. BIN
      src/server/httpd/menu_cuts/h_tab2.png
  31. BIN
      src/server/httpd/menu_cuts/h_tab2_selected.png
  32. BIN
      src/server/httpd/menu_cuts/h_tab_free.png
  33. BIN
      src/server/httpd/menu_cuts/logo_bottom.png
  34. BIN
      src/server/httpd/menu_cuts/logo_top.png
  35. BIN
      src/server/httpd/menu_cuts/right_bottom.png
  36. BIN
      src/server/httpd/menu_cuts/right_top.png
  37. BIN
      src/server/httpd/menu_cuts/right_top_small.png
  38. BIN
      src/server/httpd/menu_cuts/top_right.png
  39. BIN
      src/server/httpd/menu_cuts/v_1.png
  40. BIN
      src/server/httpd/menu_cuts/v_2_tile.png
  41. BIN
      src/server/httpd/menu_cuts/v_3.png
  42. BIN
      src/server/httpd/menu_cuts/v_tab.png
  43. BIN
      src/server/httpd/menu_cuts/v_tab_selected.png
  44. +0
    -132
      src/server/httpd/menuweb.css
  45. +0
    -355
      src/server/httpd/openocd.tcl
  46. +0
    -429
      src/server/httpd/preconfig.tcl
  47. +0
    -392
      src/server/httpd/production.tcl
  48. +0
    -24
      src/server/httpd/readme.txt
  49. +0
    -322
      src/server/httpd/reload.tcl
  50. +0
    -382
      src/server/httpd/run.tcl
  51. +0
    -431
      src/server/httpd/support.tcl
  52. +0
    -560
      src/server/httpd/targets.tcl
  53. +0
    -364
      src/server/httpd/terminal.tcl
  54. +0
    -418
      src/server/httpd/upgrade.tcl
  55. +0
    -33
      src/server/httpd_stubs.c
  56. +2
    -2
      src/server/server.h

+ 0
- 2
README View File

@@ -255,8 +255,6 @@ options may be available there:


--enable-ioutil Enable ioutil functions - useful for standalone --enable-ioutil Enable ioutil functions - useful for standalone
OpenOCD implementations OpenOCD implementations
--enable-httpd Enable builtin httpd server - useful for standalone
OpenOCD implementations


--disable-doxygen-html Disable building Doxygen manual as HTML. --disable-doxygen-html Disable building Doxygen manual as HTML.
--enable-doxygen-pdf Enable building Doxygen manual as PDF. --enable-doxygen-pdf Enable building Doxygen manual as PDF.


+ 0
- 5
configure.in View File

@@ -420,10 +420,6 @@ AC_ARG_ENABLE(ioutil,
AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]), AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
[build_ioutil=$enableval], [build_ioutil=no]) [build_ioutil=$enableval], [build_ioutil=no])


AC_ARG_ENABLE(httpd,
AS_HELP_STRING([--enable-httpd], [Enable builtin httpd server - useful for standalone OpenOCD implementations]),
[build_httpd=$enableval], [build_httpd=no])

case "${host_cpu}" in case "${host_cpu}" in
arm*) arm*)
AC_ARG_ENABLE(ep93xx, AC_ARG_ENABLE(ep93xx,
@@ -1039,7 +1035,6 @@ AM_CONDITIONAL(ECOSBOARD, test $build_ecosboard = yes)
AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes) AM_CONDITIONAL(ZY1000, test $build_zy1000 = yes)
AM_CONDITIONAL(ZY1000_MASTER, test $build_zy1000_master = yes) AM_CONDITIONAL(ZY1000_MASTER, test $build_zy1000_master = yes)
AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes) AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes) AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
AM_CONDITIONAL(BITBANG, test $build_bitbang = yes) AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes) AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)


+ 0
- 14
doc/manual/server.txt View File

@@ -309,17 +309,3 @@ This section needs to be expanded.


*/ */


/** @page serverhttp OpenOCD HTTP Server API


Smoketest:

configure --enable-httpd --enable-dummy --enable-ioutil

openocd -s /usr/local/share/openocd -f httpd/httpd.tcl -f interface/dummy.cfg -f target/lpc2148.cfg

Navigate to: http://localhost:8888/



*/

+ 0
- 4
src/Makefile.am View File

@@ -101,10 +101,6 @@ libopenocd_la_LIBADD = \
$(top_builddir)/src/helper/libhelper.la \ $(top_builddir)/src/helper/libhelper.la \
$(FTDI2232LIB) $(MINGWLDADD) $(LIBUSB) $(FTDI2232LIB) $(MINGWLDADD) $(LIBUSB)


if HTTPD
libopenocd_la_LIBADD += -lmicrohttpd
endif

STARTUP_TCL_SRCS = \ STARTUP_TCL_SRCS = \
$(srcdir)/helper/startup.tcl \ $(srcdir)/helper/startup.tcl \
$(srcdir)/jtag/startup.tcl \ $(srcdir)/jtag/startup.tcl \


+ 0
- 6
src/openocd.c View File

@@ -42,7 +42,6 @@


#include <server/server.h> #include <server/server.h>
#include <server/gdb_server.h> #include <server/gdb_server.h>
#include <server/httpd.h>


#ifdef HAVE_STRINGS_H #ifdef HAVE_STRINGS_H
#include <strings.h> #include <strings.h>
@@ -337,9 +336,6 @@ int openocd_main(int argc, char *argv[])
if (ret != ERROR_OK) if (ret != ERROR_OK)
return EXIT_FAILURE; return EXIT_FAILURE;


if (httpd_start(cmd_ctx) != ERROR_OK)
return EXIT_FAILURE;

ret = server_init(cmd_ctx); ret = server_init(cmd_ctx);
if (ERROR_OK != ret) if (ERROR_OK != ret)
return EXIT_FAILURE; return EXIT_FAILURE;
@@ -357,8 +353,6 @@ int openocd_main(int argc, char *argv[])


server_quit(); server_quit();


httpd_stop();

unregister_all_commands(cmd_ctx, NULL); unregister_all_commands(cmd_ctx, NULL);


/* free commandline interface */ /* free commandline interface */


+ 1
- 23
src/server/Makefile.am View File

@@ -8,15 +8,9 @@ noinst_LTLIBRARIES = libserver.la
noinst_HEADERS = server.h telnet_server.h gdb_server.h noinst_HEADERS = server.h telnet_server.h gdb_server.h
libserver_la_SOURCES = server.c telnet_server.c gdb_server.c libserver_la_SOURCES = server.c telnet_server.c gdb_server.c


if HTTPD
libserver_la_SOURCES += httpd.c
else
libserver_la_SOURCES += httpd_stubs.c
if !ECOSBOARD if !ECOSBOARD
libserver_la_SOURCES += server_stubs.c libserver_la_SOURCES += server_stubs.c
endif endif
endif
noinst_HEADERS += httpd.h


libserver_la_CFLAGS = libserver_la_CFLAGS =
if IS_MINGW if IS_MINGW
@@ -28,23 +22,7 @@ endif
noinst_HEADERS += tcl_server.h noinst_HEADERS += tcl_server.h
libserver_la_SOURCES += tcl_server.c libserver_la_SOURCES += tcl_server.c


if HTTPD
nobase_dist_pkgdata_DATA = \
$(wildcard \
$(srcdir)/httpd/*.tcl \
$(srcdir)/httpd/*.css \
$(srcdir)/httpd/menu_cuts/*.png \
)
endif

EXTRA_DIST = \ EXTRA_DIST = \
startup.tcl \
httpd/readme.txt \
httpd/menu.xml \
httpd/menu.xsl \
httpd/build.sh \
httpd/html2tcl.sh \
httpd/Stylizer.java \
httpd/Stylizer.class
startup.tcl


MAINTAINERCLEANFILES = $(srcdir)/Makefile.in MAINTAINERCLEANFILES = $(srcdir)/Makefile.in

+ 0
- 506
src/server/httpd.c View File

@@ -1,506 +0,0 @@
/***************************************************************************
* Copyright (C) 2007,2008,2009 Øyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/

/* some bits were copied from ahttpd which is under eCos license and
* copyright to FSF
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "telnet_server.h"
#include <target/target.h>

#include <microhttpd.h>
#include <pthread.h>
#include <signal.h>

#define PAGE_NOT_FOUND "<html><head><title > File not found</title></head><body > File not found</body></html>"

static pthread_mutex_t mutex;

void openocd_sleep_prelude(void)
{
pthread_mutex_unlock(&mutex);
}

void openocd_sleep_postlude(void)
{
pthread_mutex_lock(&mutex);
}



int loadFile(const char *name, void **data, size_t *len);

static const char *appendf(const char *prev, const char *format, ...)
{
va_list ap;
va_start(ap, format);
char *string = alloc_vprintf(format, ap);
va_end(ap);
char *string2 = NULL;

if (string != NULL)
{
string2 = alloc_printf("%s%s", (prev == NULL) ? "" : prev, string);
}

if (prev != NULL)
{
free((void *)prev);
}

if (string == NULL)
free(string);

return string2;
}

static const char *httpd_exec_cgi_tcl_error(Jim_Interp *interp)
{
int len, i;

const char *t = NULL;
t = appendf(t, "<html><body>\n");

t = appendf(t, "Runtime error, file \"%s\", line %d:<br>",
interp->errorFileName, interp->errorLine);
t = appendf(t, " %s < br>", Jim_GetString(interp->result, NULL));
Jim_ListLength(interp, interp->stackTrace, &len);
for (i = 0; i < len; i += 3)
{
Jim_Obj *objPtr;
const char *proc, *file, *line;

Jim_ListIndex(interp, interp->stackTrace, i, &objPtr, JIM_NONE);
proc = Jim_GetString(objPtr, NULL);
Jim_ListIndex(interp, interp->stackTrace, i + 1, &objPtr, JIM_NONE);
file = Jim_GetString(objPtr, NULL);
Jim_ListIndex(interp, interp->stackTrace, i + 2, &objPtr, JIM_NONE);
line = Jim_GetString(objPtr, NULL);
t = appendf(t, "In procedure '%s' called at file \"%s\", line %s < br>",
proc, file, line);
}
t = appendf(t, "</html></body>\n");

return t;
}

static int httpd_Jim_Command_writeform(Jim_Interp *interp, int argc,
Jim_Obj * const *argv)
{
if (argc != 3)
{
Jim_WrongNumArgs(interp, 1, argv, "method ?CMD_ARGV ...?");
return JIM_ERR;
}
char *name = (char*) Jim_GetString(argv[1], NULL);
char *file = (char*) Jim_GetString(argv[2], NULL);

// Find length
const char *data;
int actual;
int retcode;
const char *script = alloc_printf(
"set dummy_val $httppostdata(%s); set dummy_val",
name);

retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);
free((void *) script);
if (retcode != JIM_OK)
return retcode;

data = Jim_GetString(Jim_GetResult(interp), &actual);

FILE *f = fopen(file, "wb");
if (NULL == f)
{
Jim_SetResultString(interp, "Could not create file", -1);
return JIM_ERR;
}

int result = fwrite(data, 1, actual, f);
fclose(f);

if (result != actual)
{
Jim_SetResultString(interp, "Could not write to file", -1);
return JIM_ERR;
}
return JIM_OK;
}


int
httpd_Jim_Command_formfetch(Jim_Interp *interp,
int argc,
Jim_Obj *const *argv)
{
if (argc != 2)
{
Jim_WrongNumArgs(interp, 1, argv, "method ?CMD_ARGV ...?");
return JIM_ERR;
}

char *name = (char*)Jim_GetString(argv[1], NULL);
const char *script = alloc_printf(
"set dummy_val $httppostdata(%s); set dummy_val",
name);
int retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);

free((void *) script);
if (retcode != JIM_OK)
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
else
Jim_SetResult(interp, Jim_GetResult(interp));

return JIM_OK;
}

struct httpd_request
{
int post;
Jim_Interp *interp;
struct MHD_PostProcessor *postprocessor;

//Jim_Obj *dict;

int complete; /* did we receive the entire post ? */

};

static void request_completed(void *cls, struct MHD_Connection *connection,
void **con_cls, enum MHD_RequestTerminationCode toe)
{
struct httpd_request *r = (struct httpd_request*) *con_cls;

if (NULL == r)
return;

if (r->postprocessor)
{
openocd_sleep_postlude();
MHD_destroy_post_processor(r->postprocessor);
openocd_sleep_prelude();
}

free(r);
*con_cls = NULL;
}

/* append to said key in dictionary */
static void append_key(Jim_Interp *interp,
struct httpd_request *r, const char *key,
const char *data, size_t off, size_t size)
{
Jim_Obj *keyObj = Jim_NewStringObj(interp, key, -1);
Jim_IncrRefCount(keyObj);
Jim_Obj *value = NULL;

Jim_Obj *dict = Jim_GetVariableStr(interp, "httppostdata", 0);

if (dict != NULL)
{
if (Jim_DictKey(interp, dict, keyObj, &value, 0) != JIM_OK)
{
value = NULL;
}
else
{
Jim_IncrRefCount(value);
}
}

if (value == NULL)
{
value = Jim_NewStringObj(interp, "", -1);
Jim_IncrRefCount(value);

}

/* create a new object we append to and insert into this location */
Jim_Obj *newObj = Jim_NewStringObj(interp, "", -1);
Jim_IncrRefCount(newObj);
Jim_AppendObj(interp, newObj, value);
Jim_AppendString(interp, newObj, data, size);
/* uhh... use name here of dictionary */
dict = Jim_NewStringObj(interp, "httppostdata", -1);
Jim_IncrRefCount(dict);
Jim_SetDictKeysVector(interp, dict, &keyObj, 1, newObj);
Jim_DecrRefCount(interp, dict);
Jim_DecrRefCount(interp, value);
Jim_DecrRefCount(interp, newObj);
Jim_DecrRefCount(interp, keyObj);
}

/* append data to each key */
static int iterate_post(void *con_cls, enum MHD_ValueKind kind,
const char *key, const char *filename, const char *content_type,
const char *transfer_encoding, const char *data, uint64_t off,
size_t size)
{
struct httpd_request *r = (struct httpd_request*) con_cls;

append_key(r->interp, r, key, data, off, size);

return MHD_YES;
}

static int record_arg(void *cls, enum MHD_ValueKind kind, const char *key,
const char *value)
{
struct httpd_request *r = (struct httpd_request*) cls;
append_key(r->interp, r, key, value, 0, strlen(value));
return MHD_YES;
}


static int handle_request(Jim_Interp *interp,
struct MHD_Connection * connection, const char * url)
{
struct MHD_Response * response;

int ret;
const char *suffix;
suffix = strrchr(url, '.');
if ((suffix != NULL) && (strcmp(suffix, ".tcl") == 0))
{
printf("Run tcl %s\n", url);

int retcode;

const char *script = alloc_printf(
"global httpdata; source {%s}; set httpdata", url);
retcode = Jim_Eval_Named(interp, script, __FILE__, __LINE__);
free((void *) script);

if (retcode != JIM_OK)
{
printf("Tcl failed\n");
const char *t = httpd_exec_cgi_tcl_error(interp);
if (t == NULL)
return MHD_NO;

response = MHD_create_response_from_data(strlen(t), (void *) t,
MHD_YES, MHD_NO);
ret = MHD_queue_response(connection,
MHD_HTTP_INTERNAL_SERVER_ERROR, response);
MHD_destroy_response(response);
return ret;
}
else
{
LOG_DEBUG("Tcl OK");
/* FIX!!! how to handle mime types??? */
const char *result;
int reslen;
result = Jim_GetString(Jim_GetResult(interp), &reslen);

response = MHD_create_response_from_data(reslen, (void *) result,
MHD_NO, MHD_YES);
ret = MHD_queue_response(connection,
MHD_HTTP_INTERNAL_SERVER_ERROR, response);
MHD_destroy_response(response);
return ret;
}
}
else
{
void *data;
size_t len;

int retval = loadFile(url, &data, &len);
if (retval != ERROR_OK)
{
printf("Did not find %s\n", url);

response = MHD_create_response_from_data(strlen(PAGE_NOT_FOUND),
(void *) PAGE_NOT_FOUND, MHD_NO, MHD_NO);
ret = MHD_queue_response(connection, MHD_HTTP_NOT_FOUND, response);
MHD_destroy_response(response);
return ret;
}

LOG_DEBUG("Serving %s length=%zu", url, len);
/* serve file directly */
response = MHD_create_response_from_data(len, data, MHD_YES, MHD_NO);
/* Should we expose mimetype via tcl here or just let the browser
guess?
MHD_add_response_header(response, "Content-Type", "image/png");
*/

ret = MHD_queue_response(connection, MHD_HTTP_OK, response);
MHD_destroy_response(response);

//free(data);
return ret;
}
}

static int ahc_echo_inner(void * cls, struct MHD_Connection * connection,
const char * url, const char * method, const char * version,
const char * upload_data, size_t * upload_data_size, void ** ptr)
{
Jim_Interp *interp = (Jim_Interp *)cls;
int post = 0;

if (0 == strcmp(method, "POST"))
{
post = 1;
}
else if (0 == strcmp(method, "GET"))
{
}
else
{
return MHD_NO; /* unexpected method */
}

struct httpd_request *r;
if (*ptr == NULL)
{
/* The first time only the headers are valid,
do not respond in the first round... */

*ptr = malloc(sizeof(struct httpd_request));
if (*ptr == NULL)
return MHD_NO;
memset(*ptr, 0, sizeof(struct httpd_request));

r = (struct httpd_request *) *ptr;
r->interp = interp;
r->post = post;
Jim_SetVariableStr(interp, "httppostdata", Jim_NewDictObj(interp, NULL, 0));

/* fill in url query strings in dictionary */
MHD_get_connection_values(connection, MHD_GET_ARGUMENT_KIND,
record_arg, r);

if (r->post)
{
r->postprocessor = MHD_create_post_processor(connection, 2048
* 1024, &iterate_post, r);
}

return MHD_YES;
}

r = (struct httpd_request *) *ptr;

if (r->post)
{
/* consume post data */
if (*upload_data_size)
{
MHD_post_process(r->postprocessor, upload_data, *upload_data_size);
*upload_data_size = 0;
return MHD_YES;
}
else
{
}
} else
{
}

/* hand over to request who will be using it. */
// r->dict = NULL;


/* FIX!!!! we need more advanced handling of url's to avoid them
* being subverted to evil purposes
*/

const char *httpd_dir = PKGDATADIR "/httpd";

if (*url=='/')
{
url++; /* skip '/' */
}
if (!*url)
url="index.tcl";

const char *file_name = alloc_printf("%s/%s", httpd_dir, url);
int result = handle_request(interp, connection, file_name);
free((void *)file_name);
return result;
}


static int ahc_echo(void * cls, struct MHD_Connection * connection,
const char * url, const char * method, const char * version,
const char * upload_data, size_t * upload_data_size, void ** ptr)
{
int result;

openocd_sleep_postlude();

result = ahc_echo_inner(cls, connection, url, method, version, upload_data, upload_data_size, ptr);

openocd_sleep_prelude();

return result;
}

static struct MHD_Daemon * d;

static const struct command_registration httpd_command_handlers[] = {
{
.name = "formfetch",
.jim_handler = httpd_Jim_Command_formfetch,
.mode = COMMAND_EXEC,
.usage = "parameter_name",
.help = "Reads a posted form value.",
},
{
.name = "writeform",
.jim_handler = httpd_Jim_Command_writeform,
.mode = COMMAND_EXEC,
.usage = "parameter_name filename",
.help = "Writes a form value to a file.",
},
COMMAND_REGISTRATION_DONE
};

int httpd_start(struct command_context *cmd_ctx)
{
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutex_init(&mutex, &attr);

int port = 8888;
LOG_USER("Launching httpd server on port %d", port);
d = MHD_start_daemon(MHD_USE_SELECT_INTERNALLY, port, NULL, NULL,
&ahc_echo, cmd_ctx->interp,
MHD_OPTION_NOTIFY_COMPLETED, request_completed, NULL, /* Closure... what's that??? */
MHD_OPTION_END);
if (d == NULL)
return ERROR_FAIL;

return register_commands(cmd_ctx, NULL, httpd_command_handlers);
}

void httpd_stop(void)
{
MHD_stop_daemon(d);
pthread_mutex_destroy(&mutex);
}


+ 0
- 28
src/server/httpd.h View File

@@ -1,28 +0,0 @@
/***************************************************************************
* Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/

#ifndef OPENOCD_SERVER_HTTPD_H
#define OPENOCD_SERVER_HTTPD_H

struct command_context;

int httpd_start(struct command_context *cmd_ctx);
void httpd_stop(void);

#endif // OPENOCD_SERVER_HTTPD_H

BIN
src/server/httpd/Stylizer.class View File


+ 0
- 114
src/server/httpd/Stylizer.java View File

@@ -1,114 +0,0 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.xpath.XPathAPI;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/** used to generate .tcl files from */
public class Stylizer
{
// Global value so it can be ref'd by the tree-adapter
static Document document;
public static void main(String argv[])
{
if (argv.length != 3)
{
System.err.println("Usage: java Stylizer stylesheet xmlfile outputdir");
System.exit(1);
}
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try
{
System.err.println("Starting conversion...");
File stylesheet = new File(argv[0]);
File datafile = new File(argv[1]);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
NodeList list = XPathAPI.selectNodeList(document, "website/language/page");

for (int i=0; i<list.getLength(); i++)
{
Node node=list.item(i);
// Use a Transformer for output
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
Node fileName = XPathAPI.selectSingleNode(node, "outfile/text()");
System.err.println("Converting " + fileName.getNodeValue());
DOMSource source = new DOMSource(document);
OutputStream output=new FileOutputStream(new File(argv[2], fileName.getNodeValue()));
try
{
StreamResult result = new StreamResult(output);
transformer.setParameter("pagetogenerate", fileName.getNodeValue());
transformer.transform(source, result);
}
finally
{
output.close();
}
}
} catch (TransformerConfigurationException tce)
{
// Error generated by the parser
System.out.println("\n** Transformer Factory error");
System.out.println(" " + tce.getMessage());
// Use the contained exception, if any
Throwable x = tce;
if (tce.getException() != null)
x = tce.getException();
x.printStackTrace();
} catch (TransformerException te)
{
// Error generated by the parser
System.out.println("\n** Transformation error");
System.out.println(" " + te.getMessage());
// Use the contained exception, if any
Throwable x = te;
if (te.getException() != null)
x = te.getException();
x.printStackTrace();
} catch (SAXException sxe)
{
// Error generated by this application
// (or a parser-initialization error)
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
x.printStackTrace();
} catch (ParserConfigurationException pce)
{
// Parser with specified options can't be built
pce.printStackTrace();
} catch (IOException ioe)
{
// I/O error
ioe.printStackTrace();
}
} // main
}

+ 0
- 454
src/server/httpd/browsemem.tcl View File

@@ -1,454 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {


















<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="browsemem.tcl" style="font-weight: bold;">Browse / Edit</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="downloadmem.tcl" style="">Download</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl" style="font-weight: bold;">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Browse / Edit Memory</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">


}

set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_type [formfetch form_type]
set form_action [formfetch form_action]
set form_value [formfetch form_value]
if {[string compare $form_length ""]==0} {
set form_length 0
}
if {$form_length<=0} {
set form_length 0x80
}
if {$form_length>0x1000} {
set form_length 0x1000
}
if {[string compare $form_type ""]==0} {
set form_type mdw
}
if {[string compare $form_type "mdw"]==0} {
set wordsize 4
set modify_cmd mww
}
if {[string compare $form_type "mdh"]==0} {
set wordsize 2
set modify_cmd mwh
}
if {[string compare $form_type "mdb"]==0} {
set wordsize 1
set modify_cmd mwb
}
if {[string compare $form_address ""]!=0} {
if {[string compare $form_action "Previous"]==0} {
# Kludge! Work around problems parsing hex in Jim Tcl expressions
incr form_address ; set form_address [expr $form_address-1]
if {$form_address-$form_length>0} {
set form_address "0x[tohex [expr $form_address-$form_length]]"
} else {
set form_address "0x0"
}
}
if {[string compare $form_action "Next"]==0} {
# Kludge! Work around problems parsing hex in Jim Tcl expressions
incr form_address ; set form_address [expr $form_address-1]
set form_address "0x[tohex [expr $form_address+$form_length]]"
}
if {[string compare $form_action "Modify"]==0} {
append console [capture_catch "$modify_cmd $form_address $form_value"]
}
if {[string compare $form_action "Fill"]==0} {
append console [capture_catch "$modify_cmd $form_address $form_value $form_length"]
}
}
append buffer {
<form action="browsemem.tcl" method="post">
<table>
<tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="}
append buffer $form_address
append buffer {"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}
append buffer "0x[tohex $form_length]"
append buffer {"></td></tr>
<tr><td class="formtext">Value</td><td><input type="text" name="form_value" value="}
append buffer $form_value
append buffer {"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Modify"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Fill"></td></tr>
<tr><td class="formtext">Type</td><td style="padding-top:1px;">
<select name="form_type">
<option
}
if {[string compare $form_type "mdb"]==0} { append buffer {selected="selected"} }
append buffer { value ="mdb">8 bit
</option>
<option
}
if {[string compare $form_type "mdh"]==0} { append buffer {selected="selected"} }
append buffer { value ="mdh">16 bit
</option>
<option
}
if {[string compare $form_type "mdw"]==0} { append buffer {selected="selected"} }
append buffer {value ="mdw">32 bit
</option>
</select>
</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<table><tr>
<td><input type="submit" name="form_action" value="Refresh"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Previous" ></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Next" ></td>
</tr></table>
<br>
</form>
<p>
<div class="fontbigger">Memory:</div><p>
<code style="white-space: nowrap; font-size:11px;font:courier new;">
}

if {[string compare $form_address ""]!=0} {
append console [encode [capture_catch halt]]
append buffer [encode [capture_catch "$form_type $form_address [expr $form_length]"]]
}
append buffer {
</code>



</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="browsemem.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Browse and edit target memory.<br>
Length is in bytes, maximum 4096 bytes.</p>
<p>An error message is shown when trying to browse or edit memory which cases a CPU fault.</p>
<p>CPU will be halted if required.</p>
<p><b>Modify</b> - Will modify only one byte, half-word or word starting at Address.</p>
<p><b>Fill</b> - Will fill the specified region with the specified value.</p>
<p><b>Refresh</b> - Display the content of the specified memory area.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>















}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 5
src/server/httpd/build.sh View File

@@ -1,5 +0,0 @@
set e
java -classpath ../../../../zy1000/build/xalan.jar\;. Stylizer menu.xsl menu.xml .
find . -regex ".*\.tcl" -type f -exec sh html2tcl.sh {} {} \;
echo "Copy .tcl files to /usr/local/lib/openocd/httpd/"
cp *.tcl /usr/local/lib/openocd/httpd/

+ 0
- 366
src/server/httpd/downloadmem.tcl View File

@@ -1,366 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {





















<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="browsemem.tcl" style="">Browse / Edit</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="downloadmem.tcl" style="font-weight: bold;">Download</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl" style="font-weight: bold;">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Download Memory Range</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_action [formfetch form_action]
append buffer {
<form action="downloadmem.tcl" method="post">
<table>
<tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="}
append buffer $form_address
append buffer {"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}
append buffer $form_length
append buffer {"></td></tr>
</td></tr>
</table>

<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<input type="submit" value="Download" name="form_action">
</form>
}

if {[string compare $form_action "Download"]==0} {
append console [encode [capture_catch "reset init"]]
append console [encode [capture_catch "dump_image /tmp/dump.bin $form_address $form_length"]]
append buffer {
<form action="../dump.bin" target="_blank">
<input type="submit" name="form_action" value="Save downloaded memory">
</form>
}
}
append buffer {


</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="downloadmem.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Download memory from target. <br>
<b>Note</b> that download memory can take
a long time(potentially minutes for megabytes at low JTAG clk speeds).
<p/>
Once the memory is downloaded a link is available on the page to download
the file to your PC.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>












}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 462
src/server/httpd/editconfigs.tcl View File

@@ -1,462 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {



<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="index.tcl" style="">Target Status</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="preconfig.tcl" style="">Select Target Config</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="editconfigs.tcl" style="font-weight: bold;">Edit Configurations</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="reload.tcl" style="">Reload Config Scripts</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl" style="font-weight: bold;">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Edit Target Configurations</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
<form action="editconfigs.tcl" method="post">
}

set form_edittext [formfetch form_edittext]
set form_action [formfetch form_action]
set form_filename [formfetch form_filename]
set form_selected [formfetch form_selected]
if {[string compare $form_action "Load"]==0} {
set form_filename $form_selected
}
if {[string compare $form_action "Delete"]==0} {
capture_catch "rm /config/settings/$form_selected"
}
if {[string compare $form_action "Save"]==0} {
save_var $form_filename [from_textarea $form_edittext]
append buffer "Wrote file $form_filename<br>"
}
set form_edittext ""
# load original or script saved on disk.
if {[string compare $form_action "Show default"]==0} {
set form_edittext [load_file "/rom/$form_selected"]
set form_filename $form_selected
} else {
set form_edittext [load_config $form_filename]
}
set form_edittext_subst [to_textarea $form_edittext]
proc prepend { val list } {
set res ""
foreach value $list {
set t $val
append t $value
lappend res $t
}
return $res
}
set files [prepend target/ [ls /rom/target]]
set files [lunion $files [prepend event/ [ls /config/settings/event]]]
set files [lunion $files [prepend target/ [ls /config/settings/target]]]
set files [lsort $files]
append buffer {
<table style="padding:0px;border-collapse:collapse;"><tr>
<td style="padding-top:1px;"><select name="form_selected">
}

set foundTarget 0
foreach i $files {
append buffer {
<option
}

if {[string compare $form_filename $i]==0} {
set foundTarget 1
append buffer {selected="selected"}
}
append buffer {
value="}
append buffer $i
append buffer {">}
append buffer $i
append buffer {</option>
}

}
if {$foundTarget==0} {
append buffer {
<option selected="selected" value="">Select target config</option>
}

}
append buffer {
</select></td>
<td class="buttonspacesmall">&nbsp</td>
<td><input type="submit" value="Load" name="form_action"></td>
<td class="buttonspacesmall">&nbsp</td>
<td><input type="submit" value="Show default" name="form_action"></td>
<td class="buttonspacesmall">&nbsp</td>
<td><input type="submit" value="Delete" name="form_action"></td>
</tr></table>
<textarea style="overflow:auto;" rows="21" cols="65" name="form_edittext" wrap="off">}
append buffer $form_edittext_subst
append buffer {</textarea>
<table style="padding:0px;border-collapse:collapse;"><tr>
}

append buffer {<td class="formtext">File</td><td><input type="text" name="form_filename" } "\n"
append buffer "value=\"$form_filename\" ></td>\n"
append buffer {<td class="buttonspacesmall">&nbsp</td><td><input type="submit" value="Save" name="form_action"></td><br>} "\n"
append buffer {</tr></table>} "\n"
append buffer {
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="editconfigs.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Here you can edit predefined target configurations, restore predefined configurations to
default state and create new target configurations.<p/>
<p>Typically when creating a new target configuration, you would take an existing
configuration that resembles the most your needs and modify it for your
purposes and save it under a different name.</p>
<p><b>Load</b> - Loads a configuration file into the editor.</p>
<p><b>Show default</b> - Loads the firmware included version of the
configuration file (if any), into the editor.<br>
<b>Note</b> that the editor content is not saved.</p>
<p><b>Delete</b> - Deletes a custom created configuration file.<br>
<b>Note</b> that firmware included configuration files can not be deleted.</p>
<p><b>Save</b> - Save the edited file under the a new or the same name.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="menu_cuts/logo_bottom.png"/>
</td>
</tr>
</table>
</body>
</html>

































}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 436
src/server/httpd/editfile.tcl View File

@@ -1,436 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {






























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="zy1000.tcl" style="">Set IP Address</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="upgrade.tcl" style="">ZY1000 Firmware</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="editfile.tcl" style="font-weight: bold;">Edit File</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="support.tcl" style="">Support Request</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="log.tcl#tail" style="">View Tail of Log</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/openocd.tcl">OpenOCD</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/zy1000.tcl" style="font-weight: bold;">Setup ZY1000</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Edit File</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}


#Read a text file, edit it and write it back. Useful for interactive debugging
#of tcl scripts

set data ""
append buffer {<form action="editfile.tcl" method="post">} "\n"

set err "";

set form_edittext [formfetch form_edittext];
set form_action [formfetch form_action];
set form_filename [formfetch form_filename];

puts Action $form_action

if {[string compare $form_action "Load"]==0} {

set form_edittext ""
catch {
set fp [aio.open $form_filename r];
set form_edittext [$fp read];
$fp close;
} err
}
if {[string compare $form_action "Delete"]==0} {
capture "rm $form_filename"
}

set form_edittext_subst [to_textarea $form_edittext]


if {[string compare $form_action "Save"]==0} {
if {[catch {
set fp [aio.open $form_filename w];
$fp puts [from_textarea $form_edittext]
$fp close
append buffer "Wrote file $form_filename<br>"
} err]} {
append buffer "Could not write $form_filename<br>"
}
}




append buffer {<table><tr><td class="formtext">File</td><td style="padding-top:1px;"><input type="text" name="form_filename" } "\n"
append buffer "value=\"$form_filename\" ></td>\n"
append buffer {<td class="buttonspacesmall">&nbsp</td><td><input type="submit" value="Load" name="form_action" ></td><td class="buttonspacesmall">&nbsp</td><td><input type="submit" value="Save" name="form_action"></td><td class="buttonspacesmall">&nbsp</td><td><input type="submit" value="Delete" name="form_action"></td>} "\n"
append buffer {</tr></table>} "\n"
append buffer {<br>}

append buffer {<textarea style="overflow:auto;" rows="18" cols="65" name="form_edittext" wrap="off">}
append buffer $form_edittext_subst
append buffer {</textarea><br>}

append buffer {</html> } "\n"


append buffer {
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="/ram/cgi/editfile.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Edit any file on the ZY1000 by typing in the
filename and pressing Load.
</p>
<table style="line-height:17px;"><tr>
<td><a href="/ram" target="_blank">Browse files on /ram</a><br>
<a href="/config" target="_blank">Browse files on /config</a><br>
<a href="/rom" target="_blank">Browse files on /rom</a></td>
</tr></table>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="menu_cuts/logo_bottom.png"/>
</td>
</tr>
</table>
</body>
</html>










}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 387
src/server/httpd/erase.tcl View File

@@ -1,387 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {














<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flashinfo.tcl" style="">Info</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="erase.tcl" style="font-weight: bold;">Erase</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flash.tcl" style="">Program / Verify</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="production.tcl" style="">Production</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl" style="font-weight: bold;">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Erase Flash</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">


}

set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_action [formfetch form_action]
if {[string compare $form_length ""]==0} {
set form_length 0x10000
}
if {[string compare $form_address ""]==0} {
if {[catch {[first_flash_base]} result]==0} {
set form_address "0x[tohex $result]"
}
}
if {[string compare $form_address ""]!=0} {
if {[string compare $form_action "Erase"]==0} {
append buffer "<code style=\"white-space: nowrap;\">"
append console [encode [capture_catch {
reset init
flash erase_address $form_address $form_length}]]
append buffer </code>
}
}
append buffer {
<form action="erase.tcl" method="post">
<table>
<tr><td class="formtext" style="padding-right:10px;">Address</td><td><input type="text" name="form_address" value="}
append buffer $form_address
append buffer {"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="}
append buffer $form_length
append buffer {"></td></tr>
</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<input type="submit" name="form_action" value="Erase"><br>
</form>

</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="erase.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Note that flash programming will erase flash if required.<p/>
<p>Reset and init CPU, then erase address range.</p>
<p>The length field is specified in number of bytes.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>



















}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 459
src/server/httpd/flash.tcl View File

@@ -1,459 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {







<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flashinfo.tcl" style="">Info</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="erase.tcl" style="">Erase</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flash.tcl" style="font-weight: bold;">Program / Verify</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="production.tcl" style="">Production</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl" style="font-weight: bold;">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Program / Verify Flash</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_offset [formfetch form_offset]
set form_action [formfetch form_action]
set form_type [formfetch form_type]
set post ""
catch {set post $post_data} err
if {[string compare $form_offset ""]==0} {
set form_offset 0
}
if {[string compare $form_type ""]==0} {
set form_type ""
}
append buffer {<code style="white-space: nowrap;">}

set data ""
append buffer {<form enctype="multipart/form-data" action="flash.tcl" method="post">}
set action_reset [expr {[string length $form_action]!=0}]
set action_flash [expr {[string compare $form_action "Flash"]==0 || [string compare $form_action "Flash and verify"]==0}]
set action_verify [expr {[string compare $form_action "Verify"]==0 || [string compare $form_action "Flash and verify"]==0}]
if {$action_reset} {
append console [encode [capture_catch "reset init"]]
}
append buffer {
</code>}

append buffer {<table>}
append buffer {<tr><td class="formtext">File</td><td><input type="file" name="form_filecontent"></td></tr>}
append buffer "<tr><td class=\"formtext\" >Offset</td><td><input type=\"text\" name=\"form_offset\" value=\"$form_offset\"></td></tr>"
append buffer {
<tr><td class="formtext" style="padding-top:1px;">Type</td><td>
<select name="form_type">
<option
}
if {[string compare $form_type ""]==0} { append buffer {selected="selected"} }
append buffer {
value ="">auto</option>
<option
}
if {[string compare $form_type "elf"]==0} { append buffer {selected="selected"} }
append buffer {
value ="elf">elf</option>
<option
}
if {[string compare $form_type "bin"]==0} { append buffer {selected="selected"} }
append buffer {
value ="bin">binary</option>
<option
}
if {[string compare $form_type "ihex"]==0} { append buffer {selected="selected"} }
append buffer {
value ="ihex">ihex</option>
<!-- broken <option value ="s19">s19</option> -->
</select>
</td>
</tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<table><tr>
<td><input type="submit" name="form_action" value="Flash" ></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Flash and verify" ></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Verify" ></td>
</tr></table>
<p>
}

if {$action_flash||$action_verify} {
catch {writeform form_filecontent $upload_filename} result
append console [encode $result]
}
append buffer "<br>"
if {$action_flash} {
append console [encode [capture_catch "halt"]]
append buffer "<b>"
if {[catch {capture_catch {eval "flash write_image erase $upload_filename $form_offset $form_type"}} result]} {
append buffer "Flash write failed<br>"
append console [encode $result]
} else {
append buffer [encode $result]
append buffer "Flash write succeed<br>"
}
append buffer "</b>"
}
if {$action_verify} {
append console [encode [capture_catch "halt"]]
append buffer "<b>"
if {[catch {capture_catch {eval "verify_image $upload_filename $form_offset $form_type"}} result]} {
append buffer "Verify failed<br>"
append console [encode $result]
} else {
append buffer [encode $result]
append buffer "Verify succeed<br>"
}
append buffer "</b>"
}
append buffer {
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="flash.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Program and/or verify the flash on your target.</p>
<p><b>Flash</b> - Halt CPU, automatically erase flash if required and program flash with image.</p>
<p><b>Flash and verify</b> - Programs the flash and verifies the programmed flash content is correct.</p>
<p><b>Verify</b> - Halt CPU and verify image in flash or RAM.</p>
<p><b>Offset</b> - This value is added to the address of the image.<br>
Binary images start at address 0 by default, whereas elf and ihex have addresses encoded into the image.<br>
Typically 0 for elf/ihex and the address to write the image to for binary files.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>


























}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 382
src/server/httpd/flashinfo.tcl View File

@@ -1,382 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {






<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flashinfo.tcl" style="font-weight: bold;">Info</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="erase.tcl" style="">Erase</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flash.tcl" style="">Program / Verify</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="production.tcl" style="">Production</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl" style="font-weight: bold;">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Flash Information</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">

<div style="font-size:14px;">Configured flash banks:</div>
<p>
<code style="white-space: nowrap;">
}

set flash_return [ocd_flash_banks]
if {[llength $flash_return]!=0} {
append buffer [encode [flash banks]]
set form_action [formfetch form_action]
if {[string compare $form_action "Reset CPU and probe flash"]==0} {
append console [encode [capture_catch "reset init"]]
append buffer [encode [capture_catch "flash probe 0"]]
append buffer [encode [capture_catch "flash info 0"]]
}
} else {
append buffer "No flash bank configured."
}
append buffer {
<p>
<form action="flashinfo.tcl" method="post">
<input type="submit" name="form_action" value="Reset CPU and probe flash">
</form>
}

foreach a [ocd_flash_banks] {
append buffer "Flash bank at [format "0x%08x size 0x%08x" $a(base) $a(size)]: "
append buffer {
<form action="downloadmem.tcl" method="post">
<input type="hidden" name="form_address" value="}
append buffer [format "0x%08x" $a(base)]
append buffer {">
<input type="hidden" name="form_length" value="}
append buffer [format "0x%08x" $a(size)]
append buffer {">
<input type="submit" value="Download" name="form_action">
<br>
</form>
}

}
append buffer {
</code>

</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="flashinfo.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Here you will find information about the flash chips that you have
in your configuration.<p/>
<p><b>Reset CPU and probe flash</b> - This will reset the CPU and show
you more detailed information about your flash. This includes information about
the different sectors in the flash, and the flash driver used.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>



























}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 336
src/server/httpd/guiupload.tcl View File

@@ -1,336 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {

























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="openocd.tcl" style="">Run Command</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="guiupload.tcl" style="font-weight: bold;">Upload File</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl" style="font-weight: bold;">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Upload File</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_filename [formfetch form_filename];
set form_action [formfetch form_action];
#set form_filecontent [formfetch form_filecontent];
append buffer {<form enctype="multipart/form-data" action="guiupload.tcl" method="post">}
append buffer <br>
if {[string compare $form_action "Upload"]==0} {
if {[catch {writeform form_filecontent $form_filename} result]==0} {
append buffer [encode $result]
} else {
append buffer Wrote $form_filename
}
}
append buffer {<table style="padding:0px;border-collapse:collapse;"><tr><td class="formtext">Filename on OpenOCD machine</td><td><input type="text" name="form_filename"></td></tr>}
append buffer {<td class="formtext">File to upload</td><td><input type="file" name="form_filecontent"></td></tr></table>}
append buffer {<table><tr><td style="height:15px;width:535px;">&nbsp</td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;">&nbsp</td></tr></table>}
append buffer {<input type="submit" name="form_action" value="Upload" ><br> }
append buffer {</form>}
append buffer {
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="guiupload.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray"/>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>








}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 128
src/server/httpd/html2tcl.sh View File

@@ -1,128 +0,0 @@
#!/bin/bash
# restart using a Tcl shell \
exec sh -c 'for tclshell in tclsh tclsh83 cygtclsh80 ; do \
( echo | $tclshell ) 2> /dev/null && exec $tclshell "`( cygpath -w \"$0\" ) 2> /dev/null || echo $0`" "$@" ; \
done ; \
echo "file2c.tcl: cannot find Tcl shell" ; exit 1' "$0" "$@"

#===============================================================================
#
# file2c.tcl
#
# Convert a file into a header that can be #included from C.
#
#===============================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
##
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
##
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
##
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## at http://sources.redhat.com/ecos/ecos-license/
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
#===============================================================================
######DESCRIPTIONBEGIN####
#
# Author(s): jlarmour,bartv
# Contact(s):
# Date: 2001-07-20
# Purpose:
# Description:
# Usage: file2c.tcl <file to encode> <output C header file>
#
#####DESCRIPTIONEND####
#===============================================================================

if { $argc != 2 } {
puts "Usage: html2tcl.tcl <infile> <outfile>"
exit 1
}
set infile [lindex $argv 0]
set outfile [lindex $argv 1]
set infilefd [open $infile "r"]
set data [read $infilefd]
close $infilefd




if [string match *\.tcl $infile]==0 {
puts "Not .tcl file, skipping $infile"
exit 0
}

set outfilefd [ open $outfile "w" ]
if [regexp -start 0 {^\s*<html.*} $data]==0 {
puts "copy $infile"
puts -nonewline $outfilefd $data
close $outfilefd
exit 0
}

puts "converting $infile"

set result ""
append result "# converted to .tcl by html2tcl.tcl\n"
append result "set buffer \"\"\n"

set pos 0
set done 0
while {$done==0} {
set start [string first <tcl> $data $pos]
if $start==-1 {
# We're done...
set done 1
set start [string length $data]
set end $start
} else {
set end [string first </tcl> $data $start]
if $end==-1 {
# uh-oh, not closed
puts "<tcl> not closed!"
exit 1
}
}
#puts "done $done start $start end $end"
# Dump HTML into resulting file.
append result "append buffer {"
append result [string range $data $pos [expr $start-1]]
#puts [string range $data $pos $start]
append result "}\n"
# Dump TCL into resulting file.
append result "[string range $data [expr $start+5] [expr $end-1]]\n"
set pos [expr $end+6]
}

append result "start_chunked \"html\"\n"
append result {write_chunked $buffer} "\n"
append result "end_chunked\n"

puts $outfilefd $result
close $outfilefd

+ 0
- 100
src/server/httpd/httpd.tcl View File

@@ -1,100 +0,0 @@
# some dummy proc's to get things going for test purposes



proc ip {} {
return 10.0.0.55
}

proc start_chunked {a} {
global httpdata
global httpmime
set httpmime $a
set httpdata ""
}

proc write_chunked {a} {
global httpdata
append httpdata $a
}

proc end_chunked {} {
}



#proc formfetch {a} {
# global httppostdata
#catch {
# echo "$a=$httppostdata($a)"
#return $httppostdata($a)
#}
#
#return ""
#}




proc tohex {a} {
set r ""
while 1 {

set rem [expr $a%16]
set a [expr $a/16]
set r [string index "0123456789abcdef" $rem]$r
if ($a==0) then break
}
return $r
}

# encode text
proc encode {a} {
return [string map {\n <br/> { } {&nbsp;} \t {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} > &gt; < &lt; / &#47;} $a]
}

#stubs that can be overriden to save between sessions
proc load_var {a} {
global glob_var
catch {
return $glob_var($a)
}
return ""
}
#stubs that can be overriden to save between sessions
proc save_var {a b} {
catch {
set glob_var($a) $b
return ""
} err
set glob_var($a) ""
return ""
}



proc to_textarea {a} {
return [string map {& &#38; > &gt; < &lt; / &#47;} $a]
}

proc from_textarea {a} {
return [string map {&gt; > &lt; < &#38; & &#47; /} $a]
}
proc lunion {a b} {
foreach e $a {
set x($e) {}
}
foreach e $b {
if {![info exists x($e)]} {
lappend a $e
}
}
return $a
}

proc first_flash_base {} {
set t [lindex 0 [ocd_flash_banks]]
return $t(base)
}

+ 0
- 376
src/server/httpd/index.tcl View File

@@ -1,376 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {

<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="index.tcl" style="font-weight: bold;">Target Status</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl" style="font-weight: bold;">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>OpenOCD debugger</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">

<table>
<tr><td style="height:10px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:5px;width:535px;">&nbsp</td></tr>
</table>

<H1>Target Status</H1>

<table>
<tr>
<td class="fontbigger">
}

set form_address [formfetch form_address]
set form_action [formfetch form_action]
if {[string compare $form_action "Halt"]==0} {
append console [encode [capture_catch "halt"]]
}
if {[string compare $form_action "Resume"]==0} {
append console [encode [capture_catch "resume"]]
}
if {[string compare $form_action "Reset and run"]==0} {
append console [encode [capture_catch "reset run"]]
}
if {[string compare $form_action "Power on"]==0} {
append console [encode [capture_catch "power on"]]
}
if {[string compare $form_action "Power off"]==0} {
append console [encode [capture_catch "power off"]]
}
append buffer {
}
append console [encode [capture_catch poll]]
append buffer {
</td>
</tr>
</table>

<form action="index.tcl" method="post">
<table><tr>
<td><input type="submit" name="form_action" value="Reset and run"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Halt"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Resume"></td>
<td style="width:50px;"></td><td><input type="submit" name="form_action" value="Power on"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Power off"></td>
</tr></table>

<br>
<br>
<p>
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="index.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Target status shows that status of the connected target. </p>
<p><b>Current target</b> - selected target configuration. <br>
<p><b>Startup</b> - whether or not the target script ran to completion. Note
that even if the target is disconnected, powered down or unresponsive, the
startup script will still run to completion. Startup - OK does not mean
that the target is fully operational, simply that the configuration script
did not contain syntax errors for instance.
See log for details. <br>
<p><b>Target power</b> - Detects power on target. <br>
If the JTAG cable is not connected, or the target has no power, then no target power will be detected.</p>
<p>Type "help power" in telnet for command to control power relay.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
































}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 343
src/server/httpd/log.tcl View File

@@ -1,343 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {


























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="openocd.tcl" style="">Run Command</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="guiupload.tcl" style="">Upload File to ZY1000</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="log.tcl#tail" style="">View Tail of Log</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl" style="font-weight: bold;">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>View Tail of Log</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

append buffer "<code style=\"white-space: nowrap;\">"
append buffer [encode [log]]
append buffer {<p><p><p><a name="tail"/>}
append buffer {<a href="log.tcl}
append buffer "?rnd=[rand]"
append buffer {#tail">Refresh</a>}
append buffer {<p>}
append buffer "</code>";
append buffer {
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="log.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray"/>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="menu_cuts/logo_bottom.png"/>
</td>
</tr>
</table>
</body>
</html>








}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 973
src/server/httpd/menu.xml View File

@@ -1,973 +0,0 @@
<?xml version = "1.0" encoding="iso-8859-1" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="plaintext.xsl"?>
<website>

<language lang="Norsk">

<page lang="eng">
<outfile>index.tcl</outfile>
<menutext>Config Target</menutext>
<menulink>index.tcl</menulink>
<pageheading>OpenOCD debugger</pageheading>
<level2parent>index.tcl</level2parent>
<level2menu href="index.tcl" title="Target Status" titlestyle="color:#4e6627;">
</level2menu>
<!--
<level2menu href="terminal.tcl" title="UART forwarding" titlestyle="color:#4e6627;">
</level2menu>
-->

<pagetext>
<markup_code><![CDATA[


<table>
<tr><td style="height:10px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:5px;width:535px;">&nbsp</td></tr>
</table>

<H1>Target Status</H1>

<table>
<tr>
<td class="fontbigger">
<tcl>
set form_address [formfetch form_address]
set form_action [formfetch form_action]

if {[string compare $form_action "Halt"]==0} {
append console [encode [capture_catch "halt"]]
}
if {[string compare $form_action "Resume"]==0} {
append console [encode [capture_catch "resume"]]
}

if {[string compare $form_action "Reset and run"]==0} {
append console [encode [capture_catch "reset run"]]
}

if {[string compare $form_action "Power on"]==0} {
append console [encode [capture_catch "power on"]]
}
if {[string compare $form_action "Power off"]==0} {
append console [encode [capture_catch "power off"]]
}
</tcl>

<tcl>append console [encode [capture_catch poll]]</tcl>
</td>
</tr>
</table>

<form action="index.tcl" method="post">
<table><tr>
<td><input type="submit" name="form_action" value="Reset and run"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Halt"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Resume"></td>
<td style="width:50px;"></td><td><input type="submit" name="form_action" value="Power on"></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Power off"></td>
</tr></table>

<br>
<br>

<p>
</form>
]]></markup_code>
<right_column>
<markup_code><![CDATA[
<p>Target status shows that status of the connected target. </p>
<p><b>Current target</b> - selected target configuration. <br>
<p><b>Startup</b> - whether or not the target script ran to completion. Note
that even if the target is disconnected, powered down or unresponsive, the
startup script will still run to completion. Startup - OK does not mean
that the target is fully operational, simply that the configuration script
did not contain syntax errors for instance.
See log for details. <br>
<p><b>Target power</b> - Detects power on target. <br>
If the JTAG cable is not connected, or the target has no power, then no target power will be detected.</p>
<p>Type "help power" in telnet for command to control power relay.</p>
]]></markup_code>
</right_column>

</pagetext>
</page>




<page lang="eng">
<outfile>targets.tcl</outfile>
<level2parent>documentation.tcl</level2parent>
<pageheading>Target config quick start guide</pageheading>
<pagetext>
<markup_code><![CDATA[

A target needs an openocd.cfg file. This config file sets up
the CPU, flash and reset init script. Either OpenOCD ships with an
openocd.cfg file for your target or you need to take an existing
config file and modify it for your needs.
<p>
The reset init script is crucial. It will set up e.g. MMU, chip
select registers, etc. after a reset. The init.cfg (reset init script)
is embedded into the openocd.cfg file in the sampls OpenOCD provides.
<p>
Writing an openocd.cfg from scratch is a non-trivial exercise, but
fortunally it only has to be done once for a target and afterwards it
rarely if ever needs to be changed.


]]></markup_code>
<right_column>

Quick start guide on how to configure a target.
</right_column>
</pagetext>


</page>




<page lang="eng">
<outfile>flashinfo.tcl</outfile>
<menutext>Flash</menutext>
<menulink>flashinfo.tcl</menulink>
<pageheading>Flash Information</pageheading>
<level2parent>flashinfo.tcl</level2parent>
<level2menu href="flashinfo.tcl" title="Info" titlestyle="color:#4e6627;">
</level2menu>
<level2menu href="erase.tcl" title="Erase" titlestyle="color:#4e6627;">
</level2menu>
<level2menu href="flash.tcl" title="Program / Verify" titlestyle="color:#4e6627;">
</level2menu>
<level2menu href="production.tcl" title="Production" titlestyle="color:#4e6627;">
</level2menu>

<pagetext>
<markup_code><![CDATA[

<div style="font-size:14px;">Configured flash banks:</div>
<p>
<code style="white-space: nowrap;">
<tcl>
set flash_return [ocd_flash_banks]
if {[llength $flash_return]!=0} {
append buffer [encode [flash banks]]

set form_action [formfetch form_action]
if {[string compare $form_action "Reset CPU and probe flash"]==0} {
append console [encode [capture_catch "reset init"]]
append buffer [encode [capture_catch "flash probe 0"]]
append buffer [encode [capture_catch "flash info 0"]]
}
} else {
append buffer "No flash bank configured."
}
</tcl>
<p>
<form action="flashinfo.tcl" method="post">
<input type="submit" name="form_action" value="Reset CPU and probe flash">
</form>
<tcl>
foreach a [ocd_flash_banks] {
append buffer "Flash bank at [format "0x%08x size 0x%08x" $a(base) $a(size)]: "
</tcl>
<form action="downloadmem.tcl" method="post">
<input type="hidden" name="form_address" value="<tcl>append buffer [format "0x%08x" $a(base)]</tcl>">
<input type="hidden" name="form_length" value="<tcl>append buffer [format "0x%08x" $a(size)]</tcl>">

<input type="submit" value="Download" name="form_action">
<br>
</form>
<tcl>
}
</tcl>
</code>


]]></markup_code>
<right_column>
<![CDATA[
<p>Here you will find information about the flash chips that you have
in your configuration.<p/>
<p><b>Reset CPU and probe flash</b> - This will reset the CPU and show
you more detailed information about your flash. This includes information about
the different sectors in the flash, and the flash driver used.</p>
]]>
</right_column>

</pagetext>
</page>

<page lang="eng">
<outfile>flash.tcl</outfile>
<level2parent>flashinfo.tcl</level2parent>
<pageheading>Program / Verify Flash</pageheading>
<pagetext>
<markup_code><![CDATA[

<tcl>

set form_offset [formfetch form_offset]
set form_action [formfetch form_action]
set form_type [formfetch form_type]


set post ""
catch {set post $post_data} err

if {[string compare $form_offset ""]==0} {
set form_offset 0
}
if {[string compare $form_type ""]==0} {
set form_type ""
}

</tcl><code style="white-space: nowrap;"><tcl>

set data ""
append buffer {<form enctype="multipart/form-data" action="flash.tcl" method="post">}

set action_reset [expr {[string length $form_action]!=0}]
set action_flash [expr {[string compare $form_action "Flash"]==0 || [string compare $form_action "Flash and verify"]==0}]
set action_verify [expr {[string compare $form_action "Verify"]==0 || [string compare $form_action "Flash and verify"]==0}]

if {$action_reset} {
append console [encode [capture_catch "reset init"]]
}
</tcl>
</code><tcl>

append buffer {<table>}
append buffer {<tr><td class="formtext">File</td><td><input type="file" name="form_filecontent"></td></tr>}
append buffer "<tr><td class=\"formtext\" >Offset</td><td><input type=\"text\" name=\"form_offset\" value=\"$form_offset\"></td></tr>"

</tcl>
<tr><td class="formtext" style="padding-top:1px;">Type</td><td>
<select name="form_type">
<option
<tcl>if {[string compare $form_type ""]==0} { append buffer {selected="selected"} } </tcl>
value ="">auto</option>
<option
<tcl>if {[string compare $form_type "elf"]==0} { append buffer {selected="selected"} } </tcl>
value ="elf">elf</option>
<option
<tcl>if {[string compare $form_type "bin"]==0} { append buffer {selected="selected"} } </tcl>
value ="bin">binary</option>
<option
<tcl>if {[string compare $form_type "ihex"]==0} { append buffer {selected="selected"} } </tcl>
value ="ihex">ihex</option>
<!-- broken <option value ="s19">s19</option> -->
</select>
</td>

</tr>


</table>

<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<table><tr>
<td><input type="submit" name="form_action" value="Flash" ></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Flash and verify" ></td>
<td class="buttonspacesmall"></td><td><input type="submit" name="form_action" value="Verify" ></td>
</tr></table>

<p>
<tcl>

if {$action_flash||$action_verify} {
catch {writeform form_filecontent $upload_filename} result
append console [encode $result]
}
append buffer "<br>"
if {$action_flash} {
append console [encode [capture_catch "halt"]]
append buffer "<b>"
if {[catch {capture_catch {eval "flash write_image erase $upload_filename $form_offset $form_type"}} result]} {
append buffer "Flash write failed<br>"
append console [encode $result]
} else {
append buffer [encode $result]
append buffer "Flash write succeed<br>"
}
append buffer "</b>"
}
if {$action_verify} {
append console [encode [capture_catch "halt"]]
append buffer "<b>"
if {[catch {capture_catch {eval "verify_image $upload_filename $form_offset $form_type"}} result]} {
append buffer "Verify failed<br>"
append console [encode $result]
} else {
append buffer [encode $result]
append buffer "Verify succeed<br>"
}
append buffer "</b>"
}
</tcl>

</form>

]]></markup_code>

<right_column>
<![CDATA[
<p>Program and/or verify the flash on your target.</p>
<p><b>Flash</b> - Halt CPU, automatically erase flash if required and program flash with image.</p>
<p><b>Flash and verify</b> - Programs the flash and verifies the programmed flash content is correct.</p>
<p><b>Verify</b> - Halt CPU and verify image in flash or RAM.</p>
<p><b>Offset</b> - This value is added to the address of the image.<br>
Binary images start at address 0 by default, whereas elf and ihex have addresses encoded into the image.<br>
Typically 0 for elf/ihex and the address to write the image to for binary files.</p>
]]>
</right_column>


</pagetext>

</page>




<page lang="eng">
<outfile>production.tcl</outfile>
<level2parent>flashinfo.tcl</level2parent>
<pageheading>Production</pageheading>
<pagetext>
<markup_code><![CDATA[
<tcl>
set form_action [formfetch form_action]
set form_serialnumber [formfetch form_serialnumber]
append buffer [production_info]
</tcl>

<form enctype="multipart/form-data" action="production.tcl" method="post">
<code style="white-space: nowrap;">
<tcl>
if {[string compare $form_action "Upload firmware"]==0} {
set wrotedata [catch {writeform form_filecontent $upload_filename} result]
append buffer [encode $result]
if {$wrotedata==0} {
append buffer "<br>Running production procedure<p>"
append buffer "<br>Reset and init: <br>"

append console [encode [capture_catch {catch "production $upload_filename $form_serialnumber"}]]
}
}
if {[string compare $form_action "Test"]==0} {
append buffer "<br>Running production test. Output from first 10 seconds printed below. <p>"

append console [encode [capture_catch {catch production_test}]]
}
if {[string compare $form_action "Power on"]==0} {
append console [encode [capture_catch "power on"]]
}
if {[string compare $form_action "Power off"]==0} {
append console [encode [capture_catch "power off"]]
}
</tcl>
</code>
<tcl>
append buffer {<p class="formtext">Firmware file(raw binary) <input type="file" name="form_filecontent"><p>}
append buffer {<p class="formtext">Serial number <input type="text" name="form_serialnumber"><p>}
</tcl>

<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<table><tr>
<td><input type="submit" name="form_action" value="Upload firmware" ></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Test"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Power on"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Power off">
</tr></table>
</form>

]]></markup_code>

<right_column>
<![CDATA[
The target script can implement the "production", "production_info" and "production_test" tcl proc's. These procedures
are used on this page. There are default implementations that do nothing.

<p><b>Upload firmware</b> - Power cycle target, reset target and program raw binary file to flash bank 0, offset 0 and verify flash programming. Leave target powered on.</p>
<p><b>Test</b> - Power up target, run 10 second target test. Output is provided via the DCC output channel. </p>
<p><b>Power on</b> - Power on target.</p>
<p><b>Power off</b> - Power off target.</p>
<p><b>Serial number</b> - A target script can use this string in the production procedure. Type "help production" for more info.</p>
]]>
</right_column>


</pagetext>

</page>



<page lang="eng">
<outfile>erase.tcl</outfile>
<menulink>erase.tcl</menulink>
<pageheading>Erase Flash</pageheading>
<level2parent>flashinfo.tcl</level2parent>
<pagetext>
<markup_code><![CDATA[



<tcl>

set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_action [formfetch form_action]

if {[string compare $form_length ""]==0} {
set form_length 0x10000
}
if {[string compare $form_address ""]==0} {
if {[catch {[first_flash_base]} result]==0} {
set form_address "0x[tohex $result]"
}
}


if {[string compare $form_address ""]!=0} {
if {[string compare $form_action "Erase"]==0} {
append buffer "<code style=\"white-space: nowrap;\">"
append console [encode [capture_catch {
reset init
flash erase_address $form_address $form_length}]]
append buffer </code>
}
}


</tcl>

<form action="erase.tcl" method="post">
<table>
<tr><td class="formtext" style="padding-right:10px;">Address</td><td><input type="text" name="form_address" value="<tcl>append buffer $form_address</tcl>"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="<tcl>append buffer $form_length</tcl>"></td></tr>
</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<input type="submit" name="form_action" value="Erase"><br>


</form>



]]></markup_code>
<right_column>
<![CDATA[
<p>Note that flash programming will erase flash if required.<p/>
<p>Reset and init CPU, then erase address range.</p>
<p>The length field is specified in number of bytes.</p>
]]>
</right_column>

</pagetext>
</page>


<page lang="eng">
<outfile>run.tcl</outfile>
<menulink>run.tcl</menulink>
<pageheading>Run program</pageheading>
<level2parent>flashinfo.tcl</level2parent>
<pagetext>
<markup_code><![CDATA[



<tcl>

set form_address [formfetch form_address]
set form_action [formfetch form_action]

if {[string compare $form_action "Run from address"]==0} {
append console [encode [capture_catch "halt"]]
append console [encode [capture_catch "wait_halt"]]
append console [encode [capture_catch "resume $form_address"]]
}

if {[string compare $form_action "Halt"]==0} {
append console [encode [capture_catch "halt"]]
append console [encode [capture_catch "wait_halt"]]
}

if {[string compare $form_action "Reset and run"]==0} {
append console [encode [capture_catch "reset run"]]
}

if {[string compare $form_action "Reset and init"]==0} {
append console [encode [capture_catch "reset init"]]
}

append console [encode [capture_catch poll]]

</tcl>

<form action="run.tcl" method="post">
<table>
<tr><td class="formtext" style="padding-right:10px;">Address</td><td><input type="text" name="form_address" value="<tcl>append buffer $form_address</tcl>"></td></tr>
</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<input type="submit" name="form_action" value="Reset and run"> <input type="submit" name="form_action" value="Run from address"> <input type="submit" name="form_action" value="Halt"><input type="submit" name="form_action" value="Reset and init"><br>
</form>



]]></markup_code>
<right_column>
<![CDATA[
<p>Reset and run - reset CPU and let it run.</p>
<p>Halt - halt CPU.</p>
<p>Run from address - halt CPU and resume from address. Default is resume from current address.</p>
<p>Reset and init - reset CPU and run init script.</p>
]]>
</right_column>

</pagetext>
</page>


<page lang="eng">
<outfile>browsemem.tcl</outfile>
<menutext>Memory</menutext>
<menulink>browsemem.tcl</menulink>
<pageheading>Browse / Edit Memory</pageheading>
<level2parent>browsemem.tcl</level2parent>
<level2menu href="browsemem.tcl" title="Browse / Edit" titlestyle="color:#4e6627;">
<![CDATA[
Browse and edit memory.
]]>
</level2menu>
<level2menu href="downloadmem.tcl" title="Download" titlestyle="color:#4e6627;">
<![CDATA[
Copy memory range to developer machine
]]>
</level2menu>

<pagetext>
<markup_code><![CDATA[



<tcl>

set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_type [formfetch form_type]
set form_action [formfetch form_action]
set form_value [formfetch form_value]

if {[string compare $form_length ""]==0} {
set form_length 0
}
if {$form_length<=0} {
set form_length 0x80
}
if {$form_length>0x1000} {
set form_length 0x1000
}

if {[string compare $form_type ""]==0} {
set form_type mdw
}

if {[string compare $form_type "mdw"]==0} {
set wordsize 4
set modify_cmd mww
}
if {[string compare $form_type "mdh"]==0} {
set wordsize 2
set modify_cmd mwh
}
if {[string compare $form_type "mdb"]==0} {
set wordsize 1
set modify_cmd mwb
}




if {[string compare $form_address ""]!=0} {
if {[string compare $form_action "Previous"]==0} {
# Kludge! Work around problems parsing hex in Jim Tcl expressions
incr form_address ; set form_address [expr $form_address-1]
if {$form_address-$form_length>0} {
set form_address "0x[tohex [expr $form_address-$form_length]]"
} else {
set form_address "0x0"
}
}
if {[string compare $form_action "Next"]==0} {
# Kludge! Work around problems parsing hex in Jim Tcl expressions
incr form_address ; set form_address [expr $form_address-1]
set form_address "0x[tohex [expr $form_address+$form_length]]"
}
if {[string compare $form_action "Modify"]==0} {
append console [capture_catch "$modify_cmd $form_address $form_value"]
}
if {[string compare $form_action "Fill"]==0} {
append console [capture_catch "$modify_cmd $form_address $form_value $form_length"]
}
}


</tcl>

<form action="browsemem.tcl" method="post">
<table>
<tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="<tcl>append buffer $form_address</tcl>"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="<tcl>append buffer "0x[tohex $form_length]"</tcl>"></td></tr>
<tr><td class="formtext">Value</td><td><input type="text" name="form_value" value="<tcl>append buffer $form_value</tcl>"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Modify"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Fill"></td></tr>
<tr><td class="formtext">Type</td><td style="padding-top:1px;">
<select name="form_type">
<option
<tcl>if {[string compare $form_type "mdb"]==0} { append buffer {selected="selected"} } </tcl> value ="mdb">8 bit
</option>
<option
<tcl>if {[string compare $form_type "mdh"]==0} { append buffer {selected="selected"} } </tcl> value ="mdh">16 bit
</option>
<option
<tcl>if {[string compare $form_type "mdw"]==0} { append buffer {selected="selected"} } </tcl>value ="mdw">32 bit
</option>
</select>

</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<table><tr>
<td><input type="submit" name="form_action" value="Refresh"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Previous" ></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Next" ></td>
</tr></table>
<br>

</form>
<p>
<div class="fontbigger">Memory:</div><p>
<code style="white-space: nowrap; font-size:11px;font:courier new;">
<tcl>
if {[string compare $form_address ""]!=0} {
append console [encode [capture_catch halt]]
append buffer [encode [capture_catch "$form_type $form_address [expr $form_length]"]]
}
</tcl>
</code>





]]></markup_code>
<right_column>
<![CDATA[
<p>Browse and edit target memory.<br>
Length is in bytes, maximum 4096 bytes.</p>
<p>An error message is shown when trying to browse or edit memory which cases a CPU fault.</p>
<p>CPU will be halted if required.</p>
<p><b>Modify</b> - Will modify only one byte, half-word or word starting at Address.</p>
<p><b>Fill</b> - Will fill the specified region with the specified value.</p>
<p><b>Refresh</b> - Display the content of the specified memory area.</p>
]]>
</right_column>

</pagetext>
</page>




<page lang="eng">
<outfile>downloadmem.tcl</outfile>
<level2parent>browsemem.tcl</level2parent>
<pageheading>Download Memory Range</pageheading>
<pagetext>
<markup_code><![CDATA[
<tcl>
set form_address [formfetch form_address]
set form_length [formfetch form_length]
set form_action [formfetch form_action]
</tcl>
<form action="downloadmem.tcl" method="post">
<table>
<tr><td class="formtext">Address</td><td><input type="text" name="form_address" value="<tcl>append buffer $form_address</tcl>"></td></tr>
<tr><td class="formtext">Length</td><td><input type="text" name="form_length" value="<tcl>append buffer $form_length</tcl>"></td></tr>
</td></tr>
</table>

<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>

<input type="submit" value="Download" name="form_action">


</form>
<tcl>
if {[string compare $form_action "Download"]==0} {
append console [encode [capture_catch "reset init"]]
append console [encode [capture_catch "dump_image /tmp/dump.bin $form_address $form_length"]]
</tcl>
<form action="../dump.bin" target="_blank">
<input type="submit" name="form_action" value="Save downloaded memory">
</form>
<tcl>
}

</tcl>



]]></markup_code>
<right_column>
<![CDATA[
Download memory from target. <br>
<b>Note</b> that download memory can take
a long time(potentially minutes for megabytes at low JTAG clk speeds).
<p/>
Once the memory is downloaded a link is available on the page to download
the file to your PC.
]]>
</right_column>
</pagetext>

</page>



<page lang="eng">
<outfile>openocd.tcl</outfile>
<menutext>OpenOCD</menutext>
<menulink>openocd.tcl</menulink>
<pageheading>Run Command</pageheading>
<level2parent>openocd.tcl</level2parent>
<level2menu href="openocd.tcl" title="Run Command" titlestyle="color:#4e6627;">
</level2menu>
<level2menu href="guiupload.tcl" title="Upload File" titlestyle="color:#4e6627;">
<![CDATA[
Upload file
]]>
</level2menu>

<pagetext>
<markup_code><![CDATA[

<tcl>
set form_command [formfetch form_command]

set form_edittext ""
if {[string length $form_command]>0} {
set form_edittext [capture_catch {eval $form_command}]
}

append buffer {<form action="openocd.tcl" method="post">} "\n"
append buffer {Command<br>}
append buffer {<textarea style="overflow:auto;" rows="5" cols="65" name="form_command" wrap="off">}
append buffer [to_textarea $form_command]
append buffer {</textarea><br>}
append buffer {<input type="submit" value="Run" name="form_action" ><br>}
append buffer {<textarea style="overflow:auto;" rows="21" cols="65" name="form_edittext" readonly=1 wrap="off">}
append buffer [to_textarea $form_edittext]
append buffer {</textarea><br>}

append buffer {</form>} "\n"

</tcl>

]]></markup_code>

<right_column>
<![CDATA[
<p>Run tcl statement(s). Add "ocd_" prefix to OpenOCD commands otherwise
there will be no output, e.g. "reset init" use "ocd_reset init".
<p/>
<p><a href="/ram/log">Click here to download log</a>.</p>
<p>To download log you can also use commands like "wget http://<tcl>append buffer [ip]</tcl>/ram/log", or
point your web browser to said address.</p>
<p>
You can also execute tcl commands using curl from your developer PC:
</p>
<code>
curl --form form_command=ocd_version <tcl>append buffer [ip]</tcl>runtcl.tcl
</code>

]]>
</right_column>
</pagetext>
</page>



<page lang="eng">
<outfile>guiupload.tcl</outfile>
<level2parent>openocd.tcl</level2parent>
<pageheading>Upload File</pageheading>
<pagetext>
<markup_code><![CDATA[

<tcl>
set form_filename [formfetch form_filename];
set form_action [formfetch form_action];
#set form_filecontent [formfetch form_filecontent];

append buffer {<form enctype="multipart/form-data" action="guiupload.tcl" method="post">}
append buffer <br>
if {[string compare $form_action "Upload"]==0} {
if {[catch {writeform form_filecontent $form_filename} result]==0} {
append buffer [encode $result]
} else {
append buffer Wrote $form_filename
}
}

append buffer {<table style="padding:0px;border-collapse:collapse;"><tr><td class="formtext">Filename on OpenOCD machine</td><td><input type="text" name="form_filename"></td></tr>}
append buffer {<td class="formtext">File to upload</td><td><input type="file" name="form_filecontent"></td></tr></table>}
append buffer {<table><tr><td style="height:15px;width:535px;">&nbsp</td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;">&nbsp</td></tr></table>}
append buffer {<input type="submit" name="form_action" value="Upload" ><br> }
append buffer {</form>}

</tcl>

]]></markup_code>
</pagetext>

</page>



<page lang="eng">
<outfile>targets.tcl</outfile>
<level2parent>documentation.tcl</level2parent>
<pageheading>Target config quick start guide</pageheading>
<pagetext>
<markup_code><![CDATA[

A target needs an openocd.cfg file. This config file sets up
the CPU, flash and reset init script. Either OpenOCD ships with an
openocd.cfg file for your target or you need to take an existing
config file and modify it for your needs.
<p>
The reset init script is crucial. It will set up e.g. MMU, chip
select registers, etc. after a reset. The init.cfg (reset init script)
is embedded into the openocd.cfg file in the sampls OpenOCD provides.
<p>
Writing an openocd.cfg from scratch is a non-trivial exercise, but
fortunally it only has to be done once for a target and afterwards it
rarely if ever needs to be changed.


]]></markup_code>
<right_column>

Quick start guide on how to configure a target.
</right_column>
</pagetext>


</page>





<page lang="eng">
<menulink>index.tcl</menulink>
<level2parent>index.tcl</level2parent>
<outfile>terminal.tcl</outfile>
<pageheading>UART forwarding</pageheading>
<pagetext>
<markup_code><![CDATA[
<tcl>
set form_baudrate [formfetch form_baudrate]
if {[string length $form_baudrate]==0} {
set form_baudrate [ocd_uart]
set form_baudrate [string range $form_baudrate 0 [expr [string length $form_baudrate]-2]]
}
set form_action [formfetch form_action]
</tcl>
<form action="terminal.tcl" method="post">
Target baudrate:
<select name="form_baudrate">
<tcl>
foreach i {9600 19200 38400 57600 115200} {
</tcl>
<option <tcl>if {[string compare $form_baudrate $i]==0} { append buffer {selected="selected"} } </tcl>
value ="<tcl>append buffer $i</tcl>"><tcl>append buffer $i</tcl></option>
<tcl>
}
</tcl>
</select>

<p>
<input type="submit" name="form_action" value="Set baudrate" >
</form>
<tcl>
if {[string compare $form_action "Set baudrate"]==0} {
append console [encode [ocd_uart $form_baudrate]]
}
</tcl>

<h2>Simple UART</h2>
This terminal window is purely for illustrative purposes. Use telnet or a terminal program
to talk to the target over TCP/IP for anything but trivial case of reading/writing a few
lines of texts in simple tests.
<p>
]]></markup_code>
<right_column>
<![CDATA[
Serial port data to target is forwarded(both directions) in the simple terminal window
to the left. Alternatively you can <b>telnet <tcl>append buffer [ip]</tcl> 5555</b>
or connect via TCP/IP from e.g. HyperTerminal.
<p>
Type "help uart" in telnet for information on how to set uart speed for target. Normally
the uart speed is set from the target configuration script by adding an "uart N", where
N is the baudrate.
]]>
</right_column>
</pagetext>

</page>



</language>

</website>

+ 0
- 298
src/server/httpd/menu.xsl View File

@@ -1,298 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#160;">]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40" version="1.0">
<xsl:output method="html" version="4.0" indent="yes" encoding="UTF-8"

media-type="text/plain; charset=UTF-8"/>

<xsl:param name="pagetogenerate" select="UNDEFINED"/>
<xsl:template match="page[outfile!=$pagetogenerate]">
</xsl:template>

<xsl:template match="page[outfile=$pagetogenerate]">
<xsl:variable name="Xlevel2parent" select="level2parent"/>
<xsl:variable name="Xlevel3parent" select="level3parent"/>

<html>
<head>
<title>OpenOCD debugger</title>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8"/>
<link href="menuweb.css" rel="stylesheet" type="text/css"/>

</head>


<tcl>
set console ""
set upload_filename /ram/upload
</tcl>

<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div class="textlight" style="position:relative;left:15px;top:4px;">
<tcl>append buffer [capture version]</tcl>
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<!-- level 2 menu bar on left -->
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td></td>
</tr>
<xsl:for-each select="parent::language/page[outfile = $Xlevel2parent]/level2menu">
<tr>
<td>
<xsl:choose>
<xsl:when test="contains(@href, $pagetogenerate)">
<xsl:attribute name="style">width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style">width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@href"/>
</xsl:attribute>
<xsl:choose>
<xsl:when test="(@href = $pagetogenerate)">
<xsl:attribute name="style">font-weight: bold;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(@href = $Xlevel3parent)">
<xsl:attribute name="style">font-weight: bold;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style"></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="@title"/>
</a>
</div>
</td>
</tr>
</xsl:for-each>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')">

</td>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')">

</td>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')">

</td>
</tr>
</table>
</td>
<!-- top level menu -->
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<xsl:for-each select="parent::language/page">
<xsl:if test="menutext">
<td>
<xsl:choose>
<xsl:when test="(outfile = $pagetogenerate) or (outfile = $Xlevel2parent)">
<xsl:attribute name="style">width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style">width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a>
<xsl:attribute name="href"><xsl:value-of select="menulink"/></xsl:attribute>
<xsl:if test="(outfile = $pagetogenerate)">
<xsl:attribute name="style">font-weight: bold;</xsl:attribute>
</xsl:if>
<xsl:if test="(outfile = $Xlevel2parent)">
<xsl:attribute name="style">font-weight: bold;</xsl:attribute>
</xsl:if>
<xsl:value-of select="menutext"/>
</a>
</div>
</td>
</xsl:if>
</xsl:for-each>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="6" style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td colspan="6" style="background-color:#ffffff;text-indent:30px;height:40px;">
<H1><xsl:value-of select="pageheading"/></H1>
</td>
</tr>
<tr style="height:100%;">
<td colspan="6" style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;">
<xsl:value-of disable-output-escaping="yes" select="pagetext/markup_code"/>
</td>
</tr>
<tcl>
<!-- This is the output from any OpenOCD commands -->
set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}

if {[string length $console]!=0} {
</tcl>
<tr style="height:100%;">
<td colspan="6" style="height:100%;background-color:red;">
<table class="textgray" style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%">
<td style="width:25px;">&nbsp;</td>
<tcl>
if {$show_details==1} {
append buffer <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer <xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
} else {
append buffer <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>
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;"}
append buffer <xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
}
</tcl>
<a class="openocd">
<xsl:attribute name="href"><xsl:value-of select="$pagetogenerate"/>?toggle_details=1</xsl:attribute>
<tcl>
if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
</tcl>
</a>
<tcl>
if {$show_details==1} {
append buffer $console
}
</tcl>
<xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>/td<xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
<tcl>
if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
</tcl>
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
<tcl>
}
</tcl>
<tr>
<td colspan="6" style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;">
</td>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div class="textgray" style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td>
</td>
</tr>
<tr>
<td colspan="3" style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');"></td>
</tr>
<tr>
<td colspan="3" style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;">
<a href="http://openocd.berlios.de/doc/openocd.pdf" target="_blank">OpenOCD Manual</a><br/>
</td>
</tr>
<tr><td colspan="3" style="background-color:#d8d7d7;height:15px;"></td></tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"></td>
<td style="background-color:#999999;width:225px; height:1px;"></td>
<td style="background-color:#d8d7d7;width:10px;height:1px"></td>
</table>
</td>
</tr>
<tr><td colspan="3" style="background-color:#d8d7d7;height:15px;"></td></tr>
<tr style="height:100%;">
<td class="textgray" colspan="3" style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;">
<xsl:choose>
<xsl:when test="(pagetext/right_column)">
<xsl:value-of disable-output-escaping="yes" select="pagetext/right_column"/>
</xsl:when>
<xsl:otherwise>

</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<tr>
<td colspan="3" style="height:30px;background-image:url('menu_cuts/right_bottom.png');">
&nbsp;
</td>
</tr>
</table>

</td>
</tr>

</table>
</body>
</html>

</xsl:template>
</xsl:stylesheet>

BIN
src/server/httpd/menu_cuts/center_bottom.png View File

Before After
Width: 535  |  Height: 30  |  Size: 309 B

BIN
src/server/httpd/menu_cuts/center_top.png View File

Before After
Width: 535  |  Height: 30  |  Size: 307 B

BIN
src/server/httpd/menu_cuts/h_tab1.png View File

Before After
Width: 100  |  Height: 29  |  Size: 364 B

BIN
src/server/httpd/menu_cuts/h_tab1_selected.png View File

Before After
Width: 100  |  Height: 29  |  Size: 310 B

BIN
src/server/httpd/menu_cuts/h_tab2.png View File

Before After
Width: 100  |  Height: 29  |  Size: 349 B

BIN
src/server/httpd/menu_cuts/h_tab2_selected.png View File

Before After
Width: 100  |  Height: 29  |  Size: 330 B

BIN
src/server/httpd/menu_cuts/h_tab_free.png View File

Before After
Width: 105  |  Height: 29  |  Size: 454 B

BIN
src/server/httpd/menu_cuts/logo_bottom.png View File

Before After
Width: 140  |  Height: 35  |  Size: 960 B

BIN
src/server/httpd/menu_cuts/logo_top.png View File

Before After
Width: 478  |  Height: 84  |  Size: 3.0 KiB

BIN
src/server/httpd/menu_cuts/right_bottom.png View File

Before After
Width: 245  |  Height: 30  |  Size: 351 B

BIN
src/server/httpd/menu_cuts/right_top.png View File

Before After
Width: 245  |  Height: 30  |  Size: 281 B

BIN
src/server/httpd/menu_cuts/right_top_small.png View File

Before After
Width: 245  |  Height: 10  |  Size: 265 B

BIN
src/server/httpd/menu_cuts/top_right.png View File

Before After
Width: 278  |  Height: 26  |  Size: 352 B

BIN
src/server/httpd/menu_cuts/v_1.png View File

Before After
Width: 140  |  Height: 35  |  Size: 305 B

BIN
src/server/httpd/menu_cuts/v_2_tile.png View File

Before After
Width: 140  |  Height: 5  |  Size: 169 B

BIN
src/server/httpd/menu_cuts/v_3.png View File

Before After
Width: 140  |  Height: 140  |  Size: 2.2 KiB

BIN
src/server/httpd/menu_cuts/v_tab.png View File

Before After
Width: 140  |  Height: 35  |  Size: 390 B

BIN
src/server/httpd/menu_cuts/v_tab_selected.png View File

Before After
Width: 140  |  Height: 35  |  Size: 357 B

+ 0
- 132
src/server/httpd/menuweb.css View File

@@ -1,132 +0,0 @@
a:link
{
font-size: 12px;
color : #024d67;
font-weight:bold;
text-decoration : none;
}

a:visited
{
font-size: 12px;
color : #024d67;
font-weight:bold;
text-decoration : none;
}

a:active
{
font-size: 12px;
color : #024d67;
font-weight:bold;
text-decoration : none;
}

a:hover
{
font-size: 12px;
color : #555555;
font-weight:bold;
text-decoration : none;
}

a.openocd:link
{
font-size: 12px;
color : #555555;
font-weight:bold;
text-decoration : none;
}

a.openocd:visited
{
font-size: 12px;
color : #555555;
font-weight:bold;
text-decoration : none;
}

a.openocd:active
{
font-size: 12px;
color : #555555;
font-weight:bold;
text-decoration : none;
}

a.openocd:hover
{
font-size: 12px;
color : #024d67;
font-weight:bold;
text-decoration : none;
}

body
{
background-color : green;
background-color : #176e8c;
font-family : Arial;
font-size: 12px;
line-height: 15px;
color : #024d67;

}

h1
{
padding: 0px;
font-size: 18px;
font-weight:bold;
text-decoration : none;
margin-bottom: 8px;
}

td
{
padding: 0px;
font-size: 12px;
vertical-align:top;

}

.textlight
{
color: #cccccc;
padding: 0px;
font-size: 12px;
vertical-align:top;

}

.fontbigger
{
font-size:14px;
}

.textgray
{
color: #555555;
}

.formtext
{
padding-top: 4px;
font-size: 14px;
padding-right:10px;
}

input
{
font-size: 14px;
}

.buttonspacelarge
{
width:20px;
}

.buttonspacesmall
{
width:8px;
}

+ 0
- 355
src/server/httpd/openocd.tcl View File

@@ -1,355 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {
























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="openocd.tcl" style="font-weight: bold;">Run Command</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="guiupload.tcl" style="">Upload File</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl" style="font-weight: bold;">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Run Command</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">

}

set form_command [formfetch form_command]

set form_edittext ""
if {[string length $form_command]>0} {
set form_edittext [capture_catch {eval $form_command}]
}
append buffer {<form action="openocd.tcl" method="post">} "\n"
append buffer {Command<br>}
append buffer {<textarea style="overflow:auto;" rows="5" cols="65" name="form_command" wrap="off">}
append buffer [to_textarea $form_command]
append buffer {</textarea><br>}
append buffer {<input type="submit" value="Run" name="form_action" ><br>}
append buffer {<textarea style="overflow:auto;" rows="21" cols="65" name="form_edittext" readonly=1 wrap="off">}
append buffer [to_textarea $form_edittext]
append buffer {</textarea><br>}
append buffer {</form>} "\n"
append buffer {

</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="openocd.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Run tcl statement(s). Add "ocd_" prefix to OpenOCD commands otherwise
there will be no output, e.g. "reset init" use "ocd_reset init".
<p/>
<p><a href="/ram/log">Click here to download log</a>.</p>
<p>To download log you can also use commands like "wget http://}
append buffer [ip]
append buffer {/ram/log", or
point your web browser to said address.</p>
<p>
You can also execute tcl commands using curl from your developer PC:
</p>
<code>
curl --form form_command=ocd_version }
append buffer [ip]
append buffer {runtcl.tcl
</code>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>









}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 429
src/server/httpd/preconfig.tcl View File

@@ -1,429 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {

<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="index.tcl" style="">Target Status</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="preconfig.tcl" style="font-weight: bold;">Select Target Config</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="editconfigs.tcl" style="">Edit Configurations</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="reload.tcl" style="">Reload Config Scripts</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl" style="font-weight: bold;">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Select Preconfigured Target</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_target [formfetch form_target]
set form_action [formfetch form_action]
append buffer {<form enctype="multipart/form-data" action="preconfig.tcl" method="post">}
if {[string compare $form_action "Select and reload"]==0} {
capture_catch "trunc /config/settings/openocd.cfg"
capture_catch "append_file /config/settings/openocd.cfg script target/$form_target"
reboot
}
set form_target [load_target]
set files [ls /rom/target]
set files [lunion $files [ls /config/settings/target]]
set files [lsort $files]
if {[string compare $form_action "Select and reload"]!=0} {
append buffer {
<table><tr>
<td style="padding-top:1px;">
<select name="form_target">
}

set foundTarget 0
foreach i $files {
if {[string match *.cfg $i]} {
append buffer {
<option
}

if {[string compare $form_target $i]==0} {
set foundTarget 1
append buffer {selected="selected"}
}
append buffer {
value="}
append buffer $i
append buffer {">}
append buffer $i
append buffer {</option>
}

}
}
if {$foundTarget==0} {
append buffer {
<option selected="selected" value="">Preconfigured target not active</option>
}

}
append buffer {
</select>
</td>
<td class="buttonspacesmall">&nbsp</td>
<td>
<input type="submit" name="form_action" value="Select and reload">
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="editconfigs.tcl?form_action=Load&form_selected=}
append buffer "target/$form_target"
append buffer {">Edit target configuration</a>
</td>
</tr></table>
}

} else {
append buffer "Reloading setting(ca. 30 seconds)..."
}
append buffer {
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="preconfig.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>ZY1000 comes with complete configurations for various targets.</p>
<p>These predefined configurations include reset init scripts and flash configuration.</p>
<p><b>Select and reload</b> - Select configuration and reboot ZY1000 unit.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="menu_cuts/logo_bottom.png"/>
</td>
</tr>
</table>
</body>
</html>



































}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 392
src/server/httpd/production.tcl View File

@@ -1,392 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {











<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flashinfo.tcl" style="">Info</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="erase.tcl" style="">Erase</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flash.tcl" style="">Program / Verify</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="production.tcl" style="font-weight: bold;">Production</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl" style="font-weight: bold;">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Production</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_action [formfetch form_action]
set form_serialnumber [formfetch form_serialnumber]
append buffer [production_info]
append buffer {
<form enctype="multipart/form-data" action="production.tcl" method="post">
<code style="white-space: nowrap;">
}
if {[string compare $form_action "Upload firmware"]==0} {
set wrotedata [catch {writeform form_filecontent $upload_filename} result]
append buffer [encode $result]
if {$wrotedata==0} {
append buffer "<br>Running production procedure<p>"
append buffer "<br>Reset and init: <br>"
append console [encode [capture_catch {catch "production $upload_filename $form_serialnumber"}]]
}
}
if {[string compare $form_action "Test"]==0} {
append buffer "<br>Running production test. Output from first 10 seconds printed below. <p>"
append console [encode [capture_catch {catch production_test}]]
}
if {[string compare $form_action "Power on"]==0} {
append console [encode [capture_catch "power on"]]
}
if {[string compare $form_action "Power off"]==0} {
append console [encode [capture_catch "power off"]]
}
append buffer {
</code>
}

append buffer {<p class="formtext">Firmware file(raw binary) <input type="file" name="form_filecontent"><p>}
append buffer {<p class="formtext">Serial number <input type="text" name="form_serialnumber"><p>}
append buffer {
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<table><tr>
<td><input type="submit" name="form_action" value="Upload firmware" ></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Test"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Power on"></td>
<td class="buttonspacesmall">&nbsp</td><td><input type="submit" name="form_action" value="Power off">
</tr></table>
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="production.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
The target script can implement the "production", "production_info" and "production_test" tcl proc's. These procedures
are used on this page. There are default implementations that do nothing.
<p><b>Upload firmware</b> - Power cycle target, reset target and program raw binary file to flash bank 0, offset 0 and verify flash programming. Leave target powered on.</p>
<p><b>Test</b> - Power up target, run 10 second target test. Output is provided via the DCC output channel. </p>
<p><b>Power on</b> - Power on target.</p>
<p><b>Power off</b> - Power off target.</p>
<p><b>Serial number</b> - A target script can use this string in the production procedure. Type "help production" for more info.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>






















}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 24
src/server/httpd/readme.txt View File

@@ -1,24 +0,0 @@
work in progress... stay tuned....


1. To build .tcl pages. This will convert menu.xml and menu.xsl into
lots of .html pages w/embedded tcl, which are then inverted into
tcl with embedded html.

sh build.sh

xalan.jar can be gotten from apache.org.


2. libmicrohttpd is a bit tricky to build under Cygwin:

https://gnunet.org/mantis/view.php?id=1440

3. To test:

../openocd/configure --enable-httpd --enable-dummy --enable-ioutil
make
make install
openocd -f httpd/httpd.tcl -c "interface dummy" -f target/at91eb40a.cfg

4. Point browser to: http://localhost:8888

+ 0
- 322
src/server/httpd/reload.tcl View File

@@ -1,322 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {






<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="index.tcl" style="">Target Status</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl" style="font-weight: bold;">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Reload Config Scripts</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_action [formfetch form_action]
if {[string compare $form_action "Reload"]==0} {
append buffer "Reloading Config Scripts...<p>"
reboot
}
append buffer {
<form enctype="multipart/form-data" action="reload.tcl" method="post">
<input type="submit" name="form_action" value="Reload">
</form>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="reload.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Restart ZY1000 to reload selected target config script.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>




























}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 382
src/server/httpd/run.tcl View File

@@ -1,382 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {
















<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flashinfo.tcl" style="">Info</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="erase.tcl" style="">Erase</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="flash.tcl" style="">Program / Verify</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="production.tcl" style="">Production</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl" style="font-weight: bold;">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Run program</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">


}


set form_address [formfetch form_address]
set form_action [formfetch form_action]

if {[string compare $form_action "Run from address"]==0} {
append console [encode [capture_catch "halt"]]
append console [encode [capture_catch "wait_halt"]]
append console [encode [capture_catch "resume $form_address"]]
}

if {[string compare $form_action "Halt"]==0} {
append console [encode [capture_catch "halt"]]
append console [encode [capture_catch "wait_halt"]]
}
if {[string compare $form_action "Reset and run"]==0} {
append console [encode [capture_catch "reset run"]]
}
if {[string compare $form_action "Reset and init"]==0} {
append console [encode [capture_catch "reset init"]]
}

append console [encode [capture_catch poll]]


append buffer {

<form action="run.tcl" method="post">
<table>
<tr><td class="formtext" style="padding-right:10px;">Address</td><td><input type="text" name="form_address" value="}
append buffer $form_address
append buffer {"></td></tr>
</td></tr>
</table>
<table>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
<tr><td style="height:15px;width:535px;">&nbsp</td></tr>
</table>
<input type="submit" name="form_action" value="Reset and run"> <input type="submit" name="form_action" value="Run from address"> <input type="submit" name="form_action" value="Halt"><input type="submit" name="form_action" value="Reset and init"><br>
</form>

</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="run.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
<p>Reset and run - reset CPU and let it run.</p>
<p>Halt - halt CPU.</p>
<p>Run from address - halt CPU and resume from address. Default is resume from current address.</p>
<p>Reset and init - reset CPU and run init script.</p>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

















}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 431
src/server/httpd/support.tcl View File

@@ -1,431 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {




































<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="/ram/cgi/zylweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="/rom/menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('/rom/menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture zy1000_version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('/rom/menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="zy1000.tcl" style="">Set IP Address</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('/rom/menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="upgrade.tcl" style="">ZY1000 Firmware</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('/rom/menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="editfile.tcl" style="">Edit File</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('/rom/menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="support.tcl" style="font-weight: bold;">Support Request</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('/rom/menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="log.tcl#tail" style="">View Tail of Log</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('/rom/menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('/rom/menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('/rom/menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/openocd.tcl">OpenOCD</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/zy1000.tcl" style="font-weight: bold;">Setup ZY1000</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('/rom/menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Submit Support Request</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
Before contacting Zylin, please submit a support request with relevant information.
}

set form_config [load_config "target/[load_target]"]
set support_id [string range [rand] 0 7]
set form_log ""
append form_log "Version: [capture "zy1000_version zy1000"]"
append form_log "OpenOCD version: [capture "zy1000_version openocd"]"
append form_log "Version date: [capture "zy1000_version date"]"
append form_log [log]
append buffer {

<form action="supportrequest.tcl" method="POST" target="_blank">
<input TYPE="hidden" NAME="id" VALUE="}
append buffer $support_id
append buffer {">
<input TYPE="hidden" NAME="success" VALUE="http://www.zylin.com/zy1000_support.html">
<input size="50" name="subject" type="hidden" value="ZY1000 support request">
<table cellspacing="5">
<tr><td>Support ID</td><td>}
append buffer $support_id
append buffer {</td></tr>
<tr><td>Contact person</td><td><input size="50" name="name" type="text"></td></tr>
<tr><td>Phone</td><td><input size="50" name="phone" type="text"></td></tr>
<tr><td>email</td><td><input size="50" name="email" type="text"></td></tr>
<tr><td>MAC address</td><td><input size="50" name="serial" type="text" value="}
append buffer [mac]
append buffer {"></td></tr>
</td></tr>
</table>
<p>
Summary:
<p>
<input name="summary" size="50">
<p>
Description:
<p>
<textarea style="overflow:auto;font-size:11px;" name="description" cols="50" rows="4" type="textarea" wrap="off"></textarea>
<p>
Log:<p>
<textarea style="overflow:auto;font-size:11px;" name="log" cols="50" rows="5" type="textarea" wrap="off">}
append buffer $form_log
append buffer {</textarea>
<p>
Config:<p>
<textarea style="overflow:auto;font-size:11px;" name="config" cols="50" rows="5" type="textarea" wrap="off">}
append buffer $form_config
append buffer {</textarea>
<p>
</form>
<p>
<input value="Creates support request" type="submit"/></td></tr>

</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
append buffer {td style="background-image:url('/rom/menu_cuts/h_tab_free.png');width:110px;height:29px;background-repeat: no-repeat;background-position:top left;"}
append buffer >
}
append buffer {
<a class="openocd" href="/ram/cgi/support.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('/rom/menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('/rom/menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('/rom/menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Before contacting Zylin with questions, please fill in and submit this form
and allow us time to review the information and answer by email if possible.
<p/>
Note that you can see precisely what information is submitted to Zylin in the
form: the log and your config files.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('/rom/menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="/rom/menu_cuts/logo_bottom.png"/>
</td>
<td style="padding-top:10px;padding-left:10px;margin-top:10px;" class="textlight">
Zylin AS, Auglendsdalen 78, N-4017 Stavanger, Norway - www.zylin.com
</td>
</tr>
</table>
</body>
</html>





}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 560
src/server/httpd/targets.tcl View File

@@ -1,560 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {



<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Target config quick start guide</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
A target needs an openocd.cfg file. This config file sets up
the CPU, flash and reset init script. Either OpenOCD ships with an
openocd.cfg file for your target or you need to take an existing
config file and modify it for your needs.
<p>
The reset init script is crucial. It will set up e.g. MMU, chip
select registers, etc. after a reset. The init.cfg (reset init script)
is embedded into the openocd.cfg file in the sampls OpenOCD provides.
<p>
Writing an openocd.cfg from scratch is a non-trivial exercise, but
fortunally it only has to be done once for a target and afterwards it
rarely if ever needs to be changed.
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="targets.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Quick start guide on how to configure a target.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Target config quick start guide</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
A target needs an openocd.cfg file. This config file sets up
the CPU, flash and reset init script. Either OpenOCD ships with an
openocd.cfg file for your target or you need to take an existing
config file and modify it for your needs.
<p>
The reset init script is crucial. It will set up e.g. MMU, chip
select registers, etc. after a reset. The init.cfg (reset init script)
is embedded into the openocd.cfg file in the sampls OpenOCD provides.
<p>
Writing an openocd.cfg from scratch is a non-trivial exercise, but
fortunally it only has to be done once for a target and afterwards it
rarely if ever needs to be changed.
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="targets.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Quick start guide on how to configure a target.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>






}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 364
src/server/httpd/terminal.tcl View File

@@ -1,364 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {































<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>OpenOCD debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
OpenOCD
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="index.tcl" style="">Target Status</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="index.tcl" style="font-weight: bold;">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="openocd.tcl">OpenOCD</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>UART forwarding</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_baudrate [formfetch form_baudrate]
if {[string length $form_baudrate]==0} {
set form_baudrate [ocd_uart]
set form_baudrate [string range $form_baudrate 0 [expr [string length $form_baudrate]-2]]
}
set form_action [formfetch form_action]
append buffer {
<form action="terminal.tcl" method="post">
Target baudrate:
<select name="form_baudrate">
}

foreach i {9600 19200 38400 57600 115200} {
append buffer {
<option }
if {[string compare $form_baudrate $i]==0} { append buffer {selected="selected"} }
append buffer {
value ="}
append buffer $i
append buffer {">}
append buffer $i
append buffer {</option>
}

}
append buffer {
</select>

<p>
<input type="submit" name="form_action" value="Set baudrate" >
</form>
}

if {[string compare $form_action "Set baudrate"]==0} {
append console [encode [ocd_uart $form_baudrate]]
}
append buffer {
<h2>Simple UART</h2>
This terminal window is purely for illustrative purposes. Use telnet or a terminal program
to talk to the target over TCP/IP for anything but trivial case of reading/writing a few
lines of texts in simple tests.
<p>
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="terminal.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://openocd.berlios.de/doc/openocd.pdf">OpenOCD Manual</a>
<br/>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Serial port data to target is forwarded(both directions) in the simple terminal window
to the left. Alternatively you can <b>telnet }
append buffer [ip]
append buffer { 5555</b>
or connect via TCP/IP from e.g. HyperTerminal.
<p>
Type "help uart" in telnet for information on how to set uart speed for target. Normally
the uart speed is set from the target configuration script by adding an "uart N", where
N is the baudrate.
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>


}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 418
src/server/httpd/upgrade.tcl View File

@@ -1,418 +0,0 @@
# converted to .tcl by html2tcl.tcl
set buffer ""
append buffer {





























<html xmlns="http://www.w3.org/TR/REC-html40">
<head>
<title>Zylin ZY1000 JTAG debugger</title>
<meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
<link type="text/css" rel="stylesheet" href="menuweb.css"/>
</head>
}

set console ""
set upload_filename /ram/upload
append buffer {
<body style="margin:0px;">
<div style="width:974px;height:85px;">
<div style="float:left;position:relative;left:32px;width:478px;">
<a href="/">
<img src="menu_cuts/logo_top.png" style="border:0px;"/>
</a>
</div>
<div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
<div style="position:relative;left:15px;top:4px;" class="textlight">
}
append buffer [capture version]
append buffer {
</div>
</div>
</div>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:33px;">
<div style="width:20px;height:510px;">
&nbsp;
</div>
</td>
<td style="vertical-align:top;height:100%;width:140px;padding:0px;">
<table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
<tr style="height:59px;">
<td/>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="zy1000.tcl" style="">Set IP Address</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="upgrade.tcl" style="font-weight: bold;">ZY1000 Firmware</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="editfile.tcl" style="">Edit File</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="support.tcl" style="">Support Request</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
<div style="position:relative;left:10px;top:10px;font-weight:bold;">
<a href="log.tcl#tail" style="">View Tail of Log</a>
</div>
</td>
</tr>
<tr>
<td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
</tr>
<tr>
<td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
</tr>
<tr>
<td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
</tr>
</table>
</td>
<td style="vertical-align:top;padding:0px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td>
<table style="padding:0px;border-collapse:collapse;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/index.tcl">Config Target</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/flashinfo.tcl">Flash</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/browsemem.tcl">Memory</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/openocd.tcl">OpenOCD</a>
</div>
</td>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
<a href="/ram/cgi/zy1000.tcl" style="font-weight: bold;">Setup ZY1000</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
<tr>
<td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
<H1>Upgrade ZY1000 Firmware</H1>
</td>
</tr>
<tr style="height:100%;">
<td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
}

set form_action [formfetch form_action];
set form_filecontent [formfetch form_filecontent];
append buffer {<form enctype="multipart/form-data" action="upgrade.tcl" method="post">}
if {[string compare $form_action "Upload"]==0} {
if [string match ZylinPhiFirmware* $form_filecontent]==1 {
set form_filename /config/firmware.phi
puts "Writing firmware to $form_filename"
set fp [aio.open $form_filename w];
$fp puts -nonewline $form_filecontent
$fp close
puts "Done writing firmware to $form_filename"
append buffer "<br><div style='font-size:14px;'>Upgraded Zylin JTAG, rebooting (wait ca. 30 seconds)...</div><br>"
reboot
} else {
append buffer "<br>Not a valid Zylin JTAG firmware file.<br>"
}
} elseif {[string compare $form_action "Restore factory settings"]==0} {
proc rmdir { dir } {
set entries {}
catch {set entries [ls $dir]} err
foreach { entry } $entries {
rmdir $dir/$entry
rm $dir/$entry
}
}
rmdir /config/settings
reboot
append buffer "Restoring factory settings (wait ca. 30 seconds)...<br>"
} else {
append buffer {<div style="font-size:14px;">Upgrade Zylin JTAG firmware + reboot. </div><p>}
append buffer {<input type="file" name="form_filecontent"> <br>}
append buffer {<table><tr><td style="height:15px;width:535px;">&nbsp</td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;">&nbsp</td></tr></table>}
append buffer {<input type="submit" name="form_action" value="Upload" ><br> }
append buffer {<input type="submit" name="form_action" value="Restore factory settings" ><br> }
append buffer {</form> }
}
append buffer {
</td>
</tr>
}

set toggle_details [formfetch toggle_details]
if {[string length $toggle_details]==0} {
set toggle_details 0
}
set show_details [load_var show_details]
if {[string length $show_details]==0} {
set show_details 0
}
if {$toggle_details==1} {
set show_details [expr 1-$show_details]
save_var show_details $show_details
}
if {[string length $console]!=0} {
append buffer {
<tr style="height:100%;">
<td style="height:100%;background-color:red;" colspan="6">
<table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
<td style="width:25px;">&nbsp;</td>
}

if {$show_details==1} {
append buffer <
append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
append buffer >
} else {
append buffer <
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;"}
append buffer >
}
append buffer {
<a class="openocd" href="/ram/cgi/upgrade.tcl?toggle_details=1">
}

if {$show_details==1} {
append buffer "Hide details"
append buffer <br/>
} else {
append buffer {<div style="position:relative;top:7px;text-align:center;">}
append buffer "Show details"
append buffer {</div>}
}
append buffer {
</a>
}

if {$show_details==1} {
append buffer $console
}
append buffer {</td>}

if {$show_details!=1} {
append buffer {<td>&nbsp;</td>}
}
append buffer {
<td style="width:25px;">&nbsp;</td>
</table>
</td>
</tr>
}

}
append buffer {
<tr>
<td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
<div style="width:500px;background-color:#ffffff;height:100%;">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
<td style="width:6px;"/>
<td style="width:245px;height:100%">
<table style="padding:0px;border-collapse:collapse;height:100%;">
<tr>
<td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
<div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
Documentation
</div>
</td>
<td width="40px">
&nbsp;
</td>
<td/>
</tr>
<tr>
<td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
</tr>
<tr>
<td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
<a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
<br/>
<a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr>
<td colspan="3">
<table style="padding:0px;border-collapse:collapse;">
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
<td style="background-color:#999999;width:225px; height:1px;"/>
<td style="background-color:#d8d7d7;width:10px;height:1px"/>
</table>
</td>
</tr>
<tr>
<td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
</tr>
<tr style="height:100%;">
<td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
Upload new firmware file to ZY1000, verify that it is a valid ZY1000 firmware
file, and upgrade flash.
<p/>
Restore factory settings restores all factory settings except the TCP/IP settings.
<p/>
The current version of the firmware is visible at the top of the web page.
<p/>
ZY1000 firmware can also be upgraded using serial port YModem upload.
<p/>
Check for new firmware at <a target="_blank" href="http://www.zylin.com/zy1000.html">http://www.zylin.com/zy1000.html<a>
</td>
</tr>
<tr>
<td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td/>
<td>
<img border="0" src="menu_cuts/logo_bottom.png"/>
</td>
</tr>
</table>
</body>
</html>











}

start_chunked "html"
write_chunked $buffer
end_chunked


+ 0
- 33
src/server/httpd_stubs.c View File

@@ -1,33 +0,0 @@
/***************************************************************************
* Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "httpd.h"
#include <helper/log.h>

int httpd_start(struct command_context *cmd_ctx)
{
LOG_DEBUG("libocdserver was built without HTTPD support");
return ERROR_OK;
}
void httpd_stop(void)
{
}

+ 2
- 2
src/server/server.h View File

@@ -89,11 +89,11 @@ int connection_write(struct connection *connection, const void *data, int len);
int connection_read(struct connection *connection, void *data, int len); int connection_read(struct connection *connection, void *data, int len);


/** /**
* Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
* Used by server_loop(), defined in server_stubs.c or ecosboard.c
*/ */
void openocd_sleep_prelude(void); void openocd_sleep_prelude(void);
/** /**
* Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
* Used by server_loop(), defined in server_stubs.c or ecosboard.c
*/ */
void openocd_sleep_postlude(void); void openocd_sleep_postlude(void);




Loading…
Cancel
Save