Usage: prudebug [-a pruss-address] [-u] [-m] [-p processor]
-a - pruss-address is the memory address of the PRU in ARM memory space
-u - force the use of UIO to map PRU memory space
-m - force the use of /dev/mem to map PRU memory space
if neither the -u or -m options are used then it will try the UIO first
-p - select processor to use (sets the PRU memory locations)
AM1707 - AM1707
AM335X - AM335x
Command help
Commands are case insensitive
Address and numeric values can be dec (ex 12), hex (ex 0xC), or octal (ex 014)
Memory addresses can be wa=32-bit word address, ba=byte address. Suffix of i=instruction or d=data memory
Return without a command will rerun a previous d, dd, or di command while displaying the next block
BR [breakpoint_number [address]]
View or set an instruction breakpoint
'br' by itself will display current breakpoints
breakpoint_number is the breakpoint reference and ranges from 0 to 4
address is the instruction word address that the processor should stop at (instruction is not executed)
if no address is provided, then the breakpoint is cleared
D memory_location_wa [length]
Raw dump of PRU data memory (32-bit word offset from beginning of full PRU memory block - all PRUs)
DD memory_location_wa [length]
Dump data memory (32-bit word offset from beginning of PRU data memory)
DI memory_location_wa [length]
Dump instruction memory (32-bit word offset from beginning of PRU instruction memory)
DIS memory_location_wa [length]
Disassemble instruction memory (32-bit word offset from beginning of PRU instruction memory)
G
Start processor execution of instructions (at current IP)
GSS
Start processor execution using automatic single stepping - this allows running a program with breakpoints
HALT
Halt the processor
L memory_location_iwa file_name
Load program file into instruction memory at 32-bit word address provided (offset from beginning of instruction memory
PRU pru_number
Set the active PRU where pru_number ranges from 0 to 1
Some debugger commands do action on active PRU (such as halt and reset)
Q
Quit the debugger and return to shell prompt.
R
Display the current PRU registers.
RESET
Reset the current PRU
SS
Single step the current instruction.
WA [watch_num [address [value]]]
Clear or set a watch point
format 1: wa - print watch point list
format 2: wa watch_num - clear watch point watch_num
format 3: wa watch_num address - set a watch point (watch_num) so any change at that word address
in data memory will be printed during program execution with gss command
format 4: wa watch_num address value - set a watch point (watch_num) so that the program (run with gss) will be halted when the memory location equals the value
NOTE: for watchpoints to work, you must use gss command to run the program
WR memory_location_wa value1 [value2 [value3 ...]]
Write a 32-bit value to a raw (offset from beginning of full PRU memory block - all PRUs)
memory_location is a 32-bit word index from the beginning of the PRU subsystem memory block
WRD memory_location_wa value1 [value2 [value3 ...]]
Write a 32-bit value to PRU data memory (32-bit word offset from beginning of PRU data memory)
WRI memory_location_wa value1 [value2 [value3 ...]]
Write a 32-bit value to PRU instruction memory (32-bit word offset from beginning of PRU instruction memory)