KISS Data Aquisition and Control System
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

117 lines
6.0 KiB

/*
*
* PRU Debug Program
* (c) Copyright 2011 by Arctica Technologies
* Written by Steven Anderson
*
*/
#include <stdio.h>
#include "prudbg.h"
void printhelp()
{
printf("Command help\n\n");
printf(" Commands are case insensitive\n");
printf(" Address and numeric values can be dec (ex 12), hex (ex 0xC), or octal (ex 014)\n");
printf(" Memory addresses can be wa=32-bit word address, ba=byte address. Suffix of i=instruction or d=data memory\n");
printf(" Return without a command will rerun a previous d, dd, or di command while displaying the next block\n\n");
printf(" BR [breakpoint_number [address]]\n");
printf(" View or set an instruction breakpoint\n");
printf(" 'b' by itself will display current breakpoints\n");
printf(" breakpoint_number is the breakpoint reference and ranges from 0 to %u\n", MAX_BREAKPOINTS - 1);
printf(" address is the instruction word address that the processor should stop at (instruction is not executed)\n");
printf(" if no address is provided, then the breakpoint is cleared\n\n");
printf(" D memory_location_wa [length]\n");
printf(" Raw dump of PRU data memory (32-bit word offset from beginning of full PRU memory block - all PRUs)\n\n");
printf(" DD memory_location_wa [length]\n");
printf(" Dump data memory (32-bit word offset from beginning of PRU data memory)\n\n");
printf(" DI memory_location_wa [length]\n");
printf(" Dump instruction memory (32-bit word offset from beginning of PRU instruction memory)\n\n");
printf(" DIS memory_location_wa [length]\n");
printf(" Disassemble instruction memory (32-bit word offset from beginning of PRU instruction memory)\n\n");
printf(" G\n");
printf(" Start processor execution of instructions (at current IP)\n\n");
printf(" GSS\n");
printf(" Start processor execution using automatic single stepping - this allows running a program with breakpoints\n\n");
printf(" HALT\n");
printf(" Halt the processor\n\n");
printf(" L memory_location_iwa file_name\n");
printf(" Load program file into instruction memory at 32-bit word address provided (offset from beginning of instruction memory\n\n");
printf(" PRU pru_number\n");
printf(" Set the active PRU where pru_number ranges from 0 to %u\n", NUM_OF_PRU - 1);
printf(" Some debugger commands do action on active PRU (such as halt and reset)\n\n");
printf(" Q\n");
printf(" Quit the debugger and return to shell prompt.\n\n");
printf(" R\n");
printf(" Display the current PRU registers.\n\n");
printf(" RESET\n");
printf(" Reset the current PRU\n\n");
printf(" SS\n");
printf(" Single step the current instruction.\n\n");
printf(" WA [watch_num [address [value]]]\n");
printf(" Clear or set a watch point\n");
printf(" format 1: wa - print watch point list\n");
printf(" format 2: wa watch_num - clear watch point watch_num\n");
printf(" format 3: wa watch_num address - set a watch point (watch_num) so any change at that word address\n");
printf(" in data memory will be printed during program execution with gss command\n");
printf(" format 4: wa watch_num address value - set a watch point (watch_num) so that the program (run with gss) will\n");
printf(" be halted when the memory location equals the value\n");
printf(" NOTE: for watchpoints to work, you must use gss command to run the program\n\n");
printf(" WR memory_location_wa value1 [value2 [value3 ...]]\n");
printf(" Write a 32-bit value to a raw (offset from beginning of full PRU memory block - all PRUs)\n");
printf(" memory_location is a 32-bit word index from the beginning of the PRU subsystem memory block\n\n");
printf(" WRD memory_location_wa value1 [value2 [value3 ...]]\n");
printf(" Write a 32-bit value to PRU data memory (32-bit word offset from beginning of PRU data memory)\n\n");
printf(" WRI memory_location_wa value1 [value2 [value3 ...]]\n");
printf(" Write a 32-bit value to PRU instruction memory (32-bit word offset from beginning of PRU instruction memory)\n\n");
printf("A brief version of help is available with the command hb\n");
printf("\n");
}
void printhelpbrief()
{
printf("Command help\n\n");
printf(" BR [breakpoint_number [address]] - View or set an instruction breakpoint\n");
printf(" D memory_location_wa [length] - Raw dump of PRU data memory (32-bit word offset from beginning of full PRU memory block - all PRUs)\n");
printf(" DD memory_location_wa [length] - Dump data memory (32-bit word offset from beginning of PRU data memory)\n");
printf(" DI memory_location_wa [length] - Dump instruction memory (32-bit word offset from beginning of PRU instruction memory)\n");
printf(" DIS memory_location_wa [length] - Disassemble instruction memory (32-bit word offset from beginning of PRU instruction memory)\n");
printf(" G - Start processor execution of instructions (at current IP)\n");
printf(" GSS - Start processor execution using automatic single stepping - this allows running a program with breakpoints\n");
printf(" HALT - Halt the processor\n");
printf(" L memory_location_iwa file_name - Load program file into instruction memory\n");
printf(" PRU pru_number - Set the active PRU where pru_number ranges from 0 to %u\n", NUM_OF_PRU - 1);
printf(" Q - Quit the debugger and return to shell prompt.\n");
printf(" R - Display the current PRU registers.\n");
printf(" RESET - Reset the current PRU\n");
printf(" SS - Single step the current instruction.\n");
printf(" WA [watch_num [address [value]]] - Clear or set a watch point\n");
printf(" WR memory_location_wa value1 [value2 [value3 ...]] - Write a 32-bit value to a raw (offset from beginning of full PRU memory block)\n");
printf(" WRD memory_location_wa value1 [value2 [value3 ...]] - Write a 32-bit value to PRU data memory for current PRU\n");
printf(" WRI memory_location_wa value1 [value2 [value3 ...]] - Write a 32-bit value to PRU instruction memory for current PRU\n");
printf("\n");
}