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>__archive__
2
README
|
@ -255,8 +255,6 @@ options may be available there:
|
|||
|
||||
--enable-ioutil Enable ioutil functions - useful for standalone
|
||||
OpenOCD implementations
|
||||
--enable-httpd Enable builtin httpd server - useful for standalone
|
||||
OpenOCD implementations
|
||||
|
||||
--disable-doxygen-html Disable building Doxygen manual as HTML.
|
||||
--enable-doxygen-pdf Enable building Doxygen manual as PDF.
|
||||
|
|
|
@ -420,10 +420,6 @@ AC_ARG_ENABLE(ioutil,
|
|||
AS_HELP_STRING([--enable-ioutil], [Enable ioutil functions - useful for standalone OpenOCD implementations]),
|
||||
[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
|
||||
arm*)
|
||||
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_MASTER, test $build_zy1000_master = yes)
|
||||
AM_CONDITIONAL(IOUTIL, test $build_ioutil = yes)
|
||||
AM_CONDITIONAL(HTTPD, test $build_httpd = yes)
|
||||
AM_CONDITIONAL(AT91RM9200, test $build_at91rm9200 = yes)
|
||||
AM_CONDITIONAL(BITBANG, test $build_bitbang = yes)
|
||||
AM_CONDITIONAL(FT2232_LIBFTDI, test $build_ft2232_libftdi = yes)
|
||||
|
|
|
@ -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/
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
|
|
@ -101,10 +101,6 @@ libopenocd_la_LIBADD = \
|
|||
$(top_builddir)/src/helper/libhelper.la \
|
||||
$(FTDI2232LIB) $(MINGWLDADD) $(LIBUSB)
|
||||
|
||||
if HTTPD
|
||||
libopenocd_la_LIBADD += -lmicrohttpd
|
||||
endif
|
||||
|
||||
STARTUP_TCL_SRCS = \
|
||||
$(srcdir)/helper/startup.tcl \
|
||||
$(srcdir)/jtag/startup.tcl \
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
#include <server/server.h>
|
||||
#include <server/gdb_server.h>
|
||||
#include <server/httpd.h>
|
||||
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
|
@ -337,9 +336,6 @@ int openocd_main(int argc, char *argv[])
|
|||
if (ret != ERROR_OK)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
if (httpd_start(cmd_ctx) != ERROR_OK)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
ret = server_init(cmd_ctx);
|
||||
if (ERROR_OK != ret)
|
||||
return EXIT_FAILURE;
|
||||
|
@ -357,8 +353,6 @@ int openocd_main(int argc, char *argv[])
|
|||
|
||||
server_quit();
|
||||
|
||||
httpd_stop();
|
||||
|
||||
unregister_all_commands(cmd_ctx, NULL);
|
||||
|
||||
/* free commandline interface */
|
||||
|
|
|
@ -8,15 +8,9 @@ noinst_LTLIBRARIES = libserver.la
|
|||
noinst_HEADERS = server.h telnet_server.h gdb_server.h
|
||||
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
|
||||
libserver_la_SOURCES += server_stubs.c
|
||||
endif
|
||||
endif
|
||||
noinst_HEADERS += httpd.h
|
||||
|
||||
libserver_la_CFLAGS =
|
||||
if IS_MINGW
|
||||
|
@ -28,23 +22,7 @@ endif
|
|||
noinst_HEADERS += tcl_server.h
|
||||
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 = \
|
||||
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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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"> </td><td><input type="submit" name="form_action" value="Modify"></td>
|
||||
<td class="buttonspacesmall"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </td></tr>
|
||||
</table>
|
||||
|
||||
<table><tr>
|
||||
<td><input type="submit" name="form_action" value="Refresh"></td>
|
||||
<td class="buttonspacesmall"> </td><td><input type="submit" name="form_action" value="Previous" ></td>
|
||||
<td class="buttonspacesmall"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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/
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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"> </td>
|
||||
<td><input type="submit" value="Load" name="form_action"></td>
|
||||
<td class="buttonspacesmall"> </td>
|
||||
<td><input type="submit" value="Show default" name="form_action"></td>
|
||||
<td class="buttonspacesmall"> </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"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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"> </td><td><input type="submit" value="Load" name="form_action" ></td><td class="buttonspacesmall"> </td><td><input type="submit" value="Save" name="form_action"></td><td class="buttonspacesmall"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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
|
|
@ -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/> { } { } \t { } > > < < / /} $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 {& & > > < < / /} $a]
|
||||
}
|
||||
|
||||
proc from_textarea {a} {
|
||||
return [string map {> > < < & & / /} $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)
|
||||
}
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:5px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:5px;width:535px;"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </td></tr>
|
||||
</table>
|
||||
|
||||
<table><tr>
|
||||
<td><input type="submit" name="form_action" value="Upload firmware" ></td>
|
||||
<td class="buttonspacesmall"> </td><td><input type="submit" name="form_action" value="Test"></td>
|
||||
<td class="buttonspacesmall"> </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">
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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"> </td><td><input type="submit" name="form_action" value="Modify"></td>
|
||||
<td class="buttonspacesmall"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </td></tr>
|
||||
</table>
|
||||
|
||||
<table><tr>
|
||||
<td><input type="submit" name="form_action" value="Refresh"></td>
|
||||
<td class="buttonspacesmall"> </td><td><input type="submit" name="form_action" value="Previous" ></td>
|
||||
<td class="buttonspacesmall"> </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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;"> </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>
|
|
@ -1,298 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]>
|
||||
<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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
</tcl>
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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');">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
Before Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 364 B |
Before Width: | Height: | Size: 310 B |
Before Width: | Height: | Size: 349 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 960 B |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 357 B |
|
@ -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;
|
||||
}
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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"> </td>
|
||||
<td>
|
||||
<input type="submit" name="form_action" value="Select and reload">
|
||||
|
||||
|
||||
<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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </td></tr>
|
||||
</table>
|
||||
|
||||
<table><tr>
|
||||
<td><input type="submit" name="form_action" value="Upload firmware" ></td>
|
||||
<td class="buttonspacesmall"> </td><td><input type="submit" name="form_action" value="Test"></td>
|
||||
<td class="buttonspacesmall"> </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">
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr>
|
||||
<tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr>
|
||||
<tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
start_chunked "html"
|
||||
write_chunked $buffer
|
||||
end_chunked
|
||||
|
|
@ -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;">
|
||||
|
||||
</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%;">
|
||||
|
||||
</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;"> </td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;"> </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;"> </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> </td>}
|
||||
}
|
||||
|
||||
append buffer {
|
||||
<td style="width:25px;"> </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%;">
|
||||
|
||||
</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">
|
||||
|
||||
</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">
|
||||
|
||||
</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
|
||||
|
|
@ -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)
|
||||
{
|
||||
}
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
/**
|
||||
* 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);
|
||||
|
||||
|
|