pmon

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 kernel
Anschließend muß der Agenda ganz ausgemacht werden (Batterien raus) und anschließend muß danach noch der Befehl
vrflash -R
eingegeben 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!

PMON Hilfeausgabe:

hon-line helphidisplay command history
mmodify memoryrdisplay/set register
tlbdisplay TLB registersddisplay memory
llist (disassemble) memorycopycopy memory
fillfill memorysearchsearch memory
trtransparent modegstart execution (go)
ccontinue executionttrace (single step)
totrace (step over)bset break point(s)
dbdelete break point(s)loadload memory from hostport
dumpdump memory to hostportsetdisplay/set variable
esetedit variable(s)unsetunset variable(s)
dateget/set date and timeflashprogram flash prom
flashinfoshow flash infodebugremote debug mode
sttyset terminal optionssymdefine symbol
lslist symbolsflushflush caches
mtmemory testcallcall function
btstack backtraceshcommand shell
morepaginatorrebootreboot PMON

Kommandosyntax:

        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