void com_cmd_analogRead(int argc, char **argv) { uint16 val; char num[32]; // arm_uint2hexstr(num, argc); // arm_puts("com_cmd_analogRead : "); // arm_puts(num); // arm_puts("\n"); if (argc != 4) { arm_puts ("analogRead: need 2 parameters\n"); } else { if (arm_strcmp(argv[2], "A0") == 0) { // Valeur dans argv[2] arm_puts("A0 "); // val = arm_str2int(argv[3]); // arm_uint2hexstr(num, val); // arm_puts(num); // arm_puts("\n"); lights[0] = (int)*argv[3]; arm_uint2hexstr(num, lights[0]); arm_puts(num); arm_puts("\n"); } else if (arm_strcmp(argv[2], "A1") == 0) { // Valeur dans argv[2] arm_puts("A1 "); // val = arm_str2int(argv[3]); // arm_uint2hexstr(num, val); // arm_puts(num); // arm_puts("\n"); lights[1] = (int)*argv[3]; arm_uint2hexstr(num, lights[1]); arm_puts(num); arm_puts("\n"); } else { arm_puts ("analogRead: parameter 1 unknown\n"); } } }
int dhry_strcmp(char *dst, char *src) { return arm_strcmp(dst, src); }
void arm_exec(char *line) { int argc = 0, pos = 0, cnt = 0; char *argv[ARM_MAX_ARG_SIZE]; while (line[pos] && (argc < ARM_MAX_ARG_SIZE)) { if ((line[pos] == '\r') || (line[pos] == '\n')) { line[pos] = '\0'; break; } if (line[pos] == ' ') { if (cnt > 0) { line[pos] = '\0'; cnt = 0; } } else { if (cnt == 0) { argv[argc] = &line[pos]; argc++; } cnt++; } pos++; } if (argc) { if (arm_strcmp(argv[0], "help") == 0) { arm_cmd_help(argc, argv); } else if (arm_strcmp(argv[0], "hi") == 0) { arm_cmd_hi(argc, argv); } else if (arm_strcmp(argv[0], "hello") == 0) { arm_cmd_hello(argc, argv); } else if (arm_strcmp(argv[0], "wfi_test") == 0) { arm_cmd_wfi_test(argc, argv); #if 0 } else if (arm_strcmp(argv[0], "mmu_setup") == 0) { arm_cmd_mmu_setup(argc, argv); #endif } else if (arm_strcmp(argv[0], "mmu_state") == 0) { arm_cmd_mmu_state(argc, argv); #if 0 } else if (arm_strcmp(argv[0], "mmu_test") == 0) { arm_cmd_mmu_test(argc, argv); #endif } else if (arm_strcmp(argv[0], "mmu_cleanup") == 0) { arm_cmd_mmu_cleanup(argc, argv); } else if (arm_strcmp(argv[0], "timer") == 0) { arm_cmd_timer(argc, argv); } else if (arm_strcmp(argv[0], "dhrystone") == 0) { arm_cmd_dhrystone(argc, argv); } else if (arm_strcmp(argv[0], "hexdump") == 0) { arm_cmd_hexdump(argc, argv); } else if (arm_strcmp(argv[0], "copy") == 0) { arm_cmd_copy(argc, argv); } else if (arm_strcmp(argv[0], "start_linux") == 0) { arm_cmd_start_linux(argc, argv); } else if (arm_strcmp(argv[0], "linux_cmdline") == 0) { arm_cmd_linux_cmdline(argc, argv); } else if (arm_strcmp(argv[0], "linux_memory_size") == 0) { arm_cmd_linux_memory_size(argc, argv); } else if (arm_strcmp(argv[0], "autoexec") == 0) { arm_cmd_autoexec(argc, argv); } else if (arm_strcmp(argv[0], "go") == 0) { arm_cmd_go(argc, argv); } else if (arm_strcmp(argv[0], "reset") == 0) { arm_cmd_reset(argc, argv); } else { arm_puts("Unknown command\n"); } } }
void com_exec(T_txBuffer *buffer) { int argc = 0, pos = 0, cnt = 0; char *argv[ARM_MAX_ARG_SIZE]; char *data; char num[32]; while (pos < buffer->index && (argc < ARM_MAX_ARG_SIZE)) { // arm_puts("car : "); num[0] = buffer->data[pos]; // arm_board_serial_putc(num[0]); // arm_puts("\n"); if ((buffer->data[pos] == '\r') || (buffer->data[pos] == '\n')) { buffer->data[pos] = '\0'; break; } if (buffer->data[pos] == ' ') { if (cnt > 0) { buffer->data[pos] = '\0'; cnt = 0; } } else { if (cnt == 0) { argv[argc] = &buffer->data[pos]; argc++; } cnt++; } pos++; } // arm_puts("argv : \n"); // for (int i=0; i<argc; i++) { // arm_uint2hexstr(num, i); // arm_puts(num); // arm_puts(" : "); // arm_puts(argv[i]); // arm_puts("\n"); // } if (argc > 0) { // arm_puts("buffer : "); // arm_puts(buffer->data); // arm_puts("\n"); if (arm_strcmp(argv[1], "analogRead") == 0) { com_cmd_analogRead(argc, argv); } else { arm_puts("Unknown command : "); arm_uint2hexstr(num, argc); arm_puts(num); arm_puts(" : "); arm_puts(argv[0]); arm_puts(" : "); arm_puts(argv[1]); arm_puts(" : "); arm_puts(argv[2]); arm_puts("\n"); } for (pos = 0; pos < buffer->index; pos++) { buffer->data[pos] = '\0'; } buffer->index = 0; } }