- diag_printf("Flash error cyg_io_get_config %d\n", err);
- reboot();
- }
-
- cyg_io_flash_getconfig_erase_t e;
- void *err_addr;
- len = sizeof (e);
-
- e.offset = 0;
- e.len = ds.dev_size;
- e.err_address = &err_addr;
-
- diag_printf("Formatting 0x%08x bytes\n", ds.dev_size);
- err = cyg_io_get_config(handle, CYG_IO_GET_CONFIG_FLASH_ERASE,
- &e, &len);
- if (err != ENOERR)
- {
- diag_printf("Flash erase error %d offset 0x%p\n", err, err_addr);
- reboot();
- }
-
- diag_printf("Flash formatted successfully\n");
-
- reboot();
-}
-
-
-
-static int
-zylinjtag_Jim_Command_format_jffs2(Jim_Interp *interp,
- int argc,
- Jim_Obj * const *argv)
-{
- if (argc != 1)
- {
- return JIM_ERR;
- }
-
- format();
- for(;;);
-}
-
-
-static int
-zylinjtag_Jim_Command_rm(Jim_Interp *interp,
- int argc,
- Jim_Obj * const *argv)
-{
- int del;
- if (argc != 2)
- {
- Jim_WrongNumArgs(interp, 1, argv, "rm ?dirorfile?");
- return JIM_ERR;
- }
-
- del = 0;
- if (unlink(Jim_GetString(argv[1], NULL)) == 0)
- del = 1;
- if (rmdir(Jim_GetString(argv[1], NULL)) == 0)
- del = 1;
-
- return del ? JIM_OK : JIM_ERR;
-}
-
-static int zylinjtag_Jim_Command_threads(Jim_Interp *interp, int argc,
- Jim_Obj * const *argv)
-{
- cyg_handle_t thread = 0;
- cyg_uint16 id = 0;
- Jim_Obj *threads = Jim_NewListObj(interp, NULL, 0);
-
- /* Loop over the threads, and generate a table row for
- * each.
- */
- while (cyg_thread_get_next(&thread, &id))
- {
- Jim_Obj *threadObj = Jim_NewListObj(interp, NULL, 0);
-
- cyg_thread_info info;
- char *state_string;
-
- cyg_thread_get_info(thread, id, &info);
-
- if (info.name == NULL)
- info.name = "<no name>";
-
- Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
- info.name, strlen(info.name)));
-
- /* Translate the state into a string.
- */
- if (info.state == 0)
- state_string = "RUN";
- else if (info.state & 0x04)
- state_string = "SUSP";
- else
- switch (info.state & 0x1b)
- {
- case 0x01:
- state_string = "SLEEP";
- break;
- case 0x02:
- state_string = "CNTSLEEP";
- break;
- case 0x08:
- state_string = "CREATE";
- break;
- case 0x10:
- state_string = "EXIT";
- break;
- default:
- state_string = "????";
- break;
- }
-
- Jim_ListAppendElement(interp, threadObj, Jim_NewStringObj(interp,
- state_string, strlen(state_string)));
-
- Jim_ListAppendElement (interp, threadObj, Jim_NewIntObj(interp, id));
- Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp, info.set_pri));
- Jim_ListAppendElement(interp, threadObj, Jim_NewIntObj(interp, info.cur_pri));
-
- Jim_ListAppendElement(interp, threads, threadObj);
- }
- Jim_SetResult( interp, threads);
-
- return JIM_OK;
-}
-
-
-static int
-zylinjtag_Jim_Command_ls(Jim_Interp *interp,
- int argc,
- Jim_Obj * const *argv)
-{
- if (argc != 2)
- {
- Jim_WrongNumArgs(interp, 1, argv, "ls ?dir?");
- return JIM_ERR;
- }
-
- char *name = (char*) Jim_GetString(argv[1], NULL);
-
- DIR *dirp = NULL;
- dirp = opendir(name);
- if (dirp == NULL)
- {
- return JIM_ERR;
- }
- Jim_Obj *objPtr = Jim_NewListObj(interp, NULL, 0);
-
- for (;;)
- {
- struct dirent *entry = NULL;
- entry = readdir(dirp);
- if (entry == NULL)
- break;
-
- if ((strcmp(".", entry->d_name)==0)||(strcmp("..", entry->d_name)==0))
- continue;
-
- Jim_ListAppendElement(interp, objPtr, Jim_NewStringObj(interp, entry->d_name, strlen(entry->d_name)));
- }
- closedir(dirp);
-
- Jim_SetResult(interp, objPtr);
-
- return JIM_OK;
-}
-
-
-static int
-zylinjtag_Jim_Command_getmem(Jim_Interp *interp,
- int argc,
- Jim_Obj * const *argv)
-{
- if (argc != 3)
- {
- Jim_WrongNumArgs(interp, 1, argv, "ls ?dir?");
- return JIM_ERR;
- }
-
- long address;
- long length;
- if (Jim_GetLong(interp, argv[1], &address) != JIM_OK)
- return JIM_ERR;
- if (Jim_GetLong(interp, argv[2], &length) != JIM_OK)
- return JIM_ERR;
-
- if (length < 0 && length > (4096 * 1024))
- {
- Jim_WrongNumArgs(interp, 1, argv, "getmem ?dir?");
- return JIM_ERR;