Der pmon ist ein kleiner Monitor und Bootlader, der mit dem Start den Agenda als erstes Programm läuft und das restliche System hochfährt.
Um einen pmon Prompt zu bekommen, muß ein Terminalprogramm an die serielle Schnittstelle des Agenda angeschlossen werden. Das Terminalprogramm ist auf folgende Parameter einzustellen: 115200, 8N1. Wenn der Agenda bootet, muß innerhalb von 3 Sekunden auf dem Terminalprogramm eine Taste gedrückt werden.
Beispiele für die Benutzung des pmon ist der Update des Kernels und der Update des ROM-Disk Images.
Einen neuen PMON fr die SNOW Rootdisk findet man unter http://www.delorie.com/agenda/sdrampak/. Da der VR3 ohne PMON nicht mehr bootet, ist besondere Sorgfalt wichtig. Das Flashen des PMON sollte immer mit frischen Batterien erfolgen. Zuerst muß man den PMON wieder unlocken, falls er gelockt ist. Dann kan er mit folgendem Befehl geflasht werden:
vrflash -C -D -l pmon.binary 0xc00000 root-1.2.6-sean.cramfs 0x100000 vmlinux-8.0.sdram-fast.binary.gz kernelAnschließend muß der Agenda ganz ausgemacht werden (Batterien raus) und anschließend muß danach noch der Befehl
vrflash -Reingegeben werden. Wichtig ist die richtige Angabe der HEX Adressen des PMON und der Romdisk! Diese Adressen sollten zur Sicherheit noch mit den READMEs verglichen werden!
| h | on-line help | hi | display command history |
| m | modify memory | r | display/set register |
| tlb | display TLB registers | d | display memory |
| l | list (disassemble) memory | copy | copy memory |
| fill | fill memory | search | search memory |
| tr | transparent mode | g | start execution (go) |
| c | continue execution | t | trace (single step) |
| to | trace (step over) | b | set break point(s) |
| db | delete break point(s) | load | load memory from hostport |
| dump | dump memory to hostport | set | display/set variable |
| eset | edit variable(s) | unset | unset variable(s) |
| date | get/set date and time | flash | program flash prom |
| flashinfo | show flash info | debug | remote debug mode |
| stty | set terminal options | sym | define symbol |
| ls | list symbols | flush | flush caches |
| mt | memory test | call | call function |
| bt | stack backtrace | sh | command shell |
| more | paginator | reboot | reboot PMON |
h on-line help
h [*|cmd..]
hi display command history
hi [cnt]
m modify memory
m adr [val|-s str]..
-b access bytes
-h access half-words
-w access words
-d access double-words
-n non-interactive (no write)
Interactive Options
<hexval> set memory, forward one
CR forward one, no change
= re-read
^|- back one
. quit
r display/set register
r [reg* [val|field val]]
* display all registers
t* display all registers starting with t
reg value set specified register
reg field value set specified field
f* display all fp registers
tlb display TLB registers
tlb [reg]
d display memory
d [-bhws] adr [cnt]
-b display as bytes
-h display as half-words
-w display as words
-d display as double-words
-s display a null terminated string
-r<reg> display as register
l list (disassemble) memory
l [-bct][adr [cnt]]
-b list only branches
-c list only calls
-t list trace buffer
-r show register values with trace
copy copy memory
copy from to siz
fill fill memory
fill from to {val|-s str}..
search search memory
search from to {val|-s str}..
tr transparent mode
tr
g start execution (go)
g [-s][-b bpadr][-e adr][-- args]
-s don't set client sp
-t time execution
-e <adr> start address
-b <bptadr> temporary breakpoint
-- <args> args to be passed to client
c continue execution
c [bptadr]
t trace (single step)
t [-vibcmMrR] [cnt]
-v verbose, list each step
-b capture only branches
-c capture only calls (jal)
-i stop on pc invalid
-m adr val stop on mem equal
-M adr val stop on mem not equal
-r reg val stop on reg equal
-R reg val stop on reg not equal
to trace (step over)
to [-vibc] [cnt]
-v verbose, list each step
-b capture only branches
-c capture only calls (jal)
-i stop on pc invalid
-m adr val stop on mem equal
-M adr val stop on mem not equal
-r reg val stop on reg equal
-R reg val stop on reg not equal
b set break point(s)
b [-drws] [adr]..
-d hw bpt for data access
-r hw bpt for data read only
-w hw bpt for data write only
-s command string
db delete break point(s)
db [numb|*]..
load load memory from hostport
load [-beastif][-u baud][-o offs][-c cmd][-h port]
-s don't clear old symbols
-b don't clear breakpoints
-e don't clear exception handlers
-a don't add offset to symbols
-t load at top of memory
-i ignore checksum errors
-f load into flash
-n don't load symbols
-y only load symbols
-v verbose messages
-o<offs> load offset
-c cmdstr send cmdstr to host
-u<num> set baud rate
-h<port> load from <port>
dump dump memory to hostport
dump [-B] adr siz [port]
set display/set variable
set [name [value]]
eset edit variable(s)
eset name ...
unset unset variable(s)
unset name* ...
date get/set date and time
date [yymmddhhmm.ss]
flash program flash prom
flash [-w|eb|el] addr size offset
flashinfo show flash info
flashinfo
debug remote debug mode
debug [-svV][-h port][-- args]
-s don't set client sp
-v report protocol errors
-V verbose mode
-h <port> port to communicate with host
-- <args> args to be passed to client
stty set terminal options
stty [device] [opts]
-v list possible baud rates and terminal types
-a list all settings
<baud> set baud rate
<term> set terminal type
sane set sane settings
ixany allow any char to restart output
-ixany allow only <start> to restart output
ixoff enable s/w input flow control
-ixoff disable s/w input flow control
ixon enable s/w output flow control
rts_iflow enable h/w input flow control
cts_oflow enable h/w output flow control
rtscts enable bidirectional h/w flow control
cs8 8 bit character size
cs7 7 bit character size
cs6 6 bit character size
cs5 5 bit character size
cstopb 2 stop bits
-cstopb 1 stop bit
parenb enable parity
-parenb disable parity
parodd odd parity
-parodd even parity
sym define symbol
sym name value
ls list symbols
ls [-ln sym*|-va adr]
-l long listing
-n numeric order
-v compute value
-a lookup address
flush flush caches
flush [-di]
-i flush I-cache
-d flush D-cache
mt memory test
mt [-c][[addr] size]
-c continuous test
call call function
call addr [val|-s str]..
bt stack backtrace
bt [-v] [cnt]
sh command shell
sh
^P recall previous cmd
^N recall next cmd
^F move cursor right
^B move cursor left
^A move cursor far left
^E move cursor far right
^D delete char at cursor
^H delete char before cursor
^K delete line from cursor
!! repeat last cmd
!str recall and execute cmd str
!num recall and execute cmd num
+-*/() operators
^addr contents of address
@name contents of register
&name value of symbol
0xnum hex number
0onum octal number
0tnum decimal number
more paginator
more
/str search for str
n repeat last search
SPACE next page
CR next line
q quit
reboot reboot PMON
reboot