Home
        GRMON User`s Manual
         Contents
1.               Table 1  GRMON Commands    GAISLER RESEARCH AB       
2.         GAISLER RESEARCH AB     38    GRMON User   s Manual    Processor AHB read  The processor always reads one or more 32 bit words from the AHB bus  The ahb_access  structure contains the access parameters  access addr   read address  access data   pointer to the first read data   access ws   should return the number of AHB waitstates used for the complete access  access rnum   number  of words read  1   8   access wsize   not used during read cycles  access cache   should return 1 ifthe access is  cacheable  else 0  Return values  0   access succeeded  1   access failed  generate memory exception   1    undecoded area  continue to decode address  I O module or LEON registers      int   write  struct ahb access  ahbacc      Processor AHB write  The processor can write 1  2  4 or 8 bytes per access  The access parameters are as for  read   with the following changes  access data   pointer to first write data  access rnum   not used  acess wsize    defines write size as follows  0   byte  1   half word  2   word  3   double word  Return values as for read      char     get io ptr   unsigned int addr  int size      During file load operations and displaying of memory contents  GRMON will access emulated memory  through a memory pointer  get io ptr   is called with the target address and transfer size  and should return a  character pointer to the emulated memory array if the address and size is within the range of the emulated  memory  If outside the range   1 should be retu
3.     Preferably the daemon should be started at system boot up time with some script located in  etc rc d init d or    etc init d  depending on Linux distribution      Command Line Switches for aksusbd  Linux      V Print version number as decimal  format xx xx      l   value   Select type of diagnostic messages  Possible values are  0   only errors  1  normal  default    2   verbose  3   ultra verbose  The messages are logged in syslog with priority kern info   and kern debug   Refer to  etc syslog conf to see where the messages will be put  usually it  is the file  var log  messages      u   value   Specifies the permission bits for the socket special file  Default is 666  access for every   one       h Print command line help    GAISLER RESEARCH    APPENDIX is    A 2 Installing HASP4Net License Manager    The following steps are necessary to install HASP4 Net in a network     Install the appropriate HASP device driver or daemon and connect the HASP4 Net key       Install and start the HASP License Manager on the same machine     Customize the HASP License Manager and the HASP4 Net client  if necessary     A 2 1 Ona Windows NT 2000 XP Station    The HASP License Manager for Windows NT 2000 XP is nhsrvice32 exe  Use the setup file Imsetup exe to  install it  It is recommended that you install the HASP License Manager as an NT service  so there is no need  to log in to the station to provide the functionality     1  Install the HASP device driver and connect the HASP4 Net key 
4.     int   cp cc  int  cc  int  hold      get condition codes          int  cp status     unit status     void   cp print        print registers     int   command   char   cmd      CP specific commands       6 4 3 2  Structure elements  void   cp init      Called once on simulator startup  Set to NULL if not used   void   cp exit       Called once on simulator exit  Set to NULL if not used   void   cp reset       Called every time the processor is reset  Set to NULL if not used   void   cp restart       Called every time the simulator is restarted  Set to NULL if not used     uint32   cp reg  int reg  uint32 data  int read      Used by the simulator to perform diagnostics read and write to the FPU CP registers  Calling cp reg   should  not have any side effects on the FPU CP status     reg    indicates which register to access  0 31 indicates  f0    f31  c0  9631  34 indicates  fsr  csr     read    indicates read or write access  read  0 indicates write access     read  0 indicates read access  Written data is passed in    data     the return value contains the read value on read  accesses     GAISLER RESEARCH AB      40    GRMON User s Manual    int   cp load   int reg  uint32 data  int  hold      Used to perform FPU CP load instructions     reg    indicates which register to access  0 31 indicates  f0  f31    c0   31  34 indicates  fsr  csr  Loaded data is passed in    data     If data dependency is emulated  the num   ber of stall cycles should be return in  hold  The retur
5.     symbols   0x40000000 L trap table  0x40000000 L start   0x4000102c L   window overflow  0x40001084 L window underflow    0x400010dc L   fpdis  0x400011a4 T flush windows  0x400011a4 T start    0x40001218 L fstat  0x40001220 L isatty  0x40001228 L getpid  0x40001230 L kill          GAISLER RESEARCH AB     12   GRMON User s Manual    0x40001238 L exit  0x40001244 L lseek       Reading symbols from alternate files is necessary when debugging self extracting applications  such as boot   proms created with mkprom or linux uClinux     3 6 Displaying memory contents    Any memory loaction can be displayed using the x command  If a third argument is provided  that is inter   preted as the number of bytes to display  Text symbols can be used instead of a numeric address     grmon dsu    x 0x40000000    40000000 a0100000 29100004 81c52000 01000000 s arat au   eraut atr   rae enar  40000010 91d02000 01000000 01000000 01000000 ee ee ee eee  40000020 91d02000 01000000 01000000 01000000                 M       40000030 91402000 01000000 01000000 01000000 Bist E R de    grmon dsu    x 0x40000000 32    40000000 a0100000 29100004 81c52000 01000000 Stata  daa sarees  40000010 91d02000 01000000 01000000 01000000 Bi Saye p  ud Sadi Sel Se    Svar sud    grmon dsu  gt  x main    40001AC8 1110000e 90122010 8213c000 400000837              a     40001AD8 9e104000 01000000 9de3bf98 9e20001b        asjad asd soe  40001AE8 98102000 90100018 292100019 9a200019        eita  40001AF8 82200018 9410001a
6.    GRMON User s Manual Version 1 0 5    August 2004    GAISLER RESEARCH AB    GRMON User s Manual    Copyright 2004 Gaisler Research AB    Permission is granted to make and distribute verbatim copies of this manual provided the copyright  notice and this permission notice are preserved on all copies    Permission is granted to copy and distribute modified versions of this manual under the conditions  for verbatim copying  provided also that the entire resulting derived work is distributed under the  terms of a permission notice identical to this one    Permission is granted to copy and distribute translations of this manual into another language  under  the above conditions for modified versions     GAISLER RESEARCH AB          GRMON User s Manual  1 WER 700 Me DN ML c 6  1 1 Eile                     e 6  1 2 Supported platforms and system requirements                      eene 6  1 3 Obt  ining GRMON M            6  1 4 Installation peirier i e E R R TA a 6  1 5 License Pi et LAO ested E 6  1 5 1 HASP4 hardware key iseasi katsetada Aistnetscasdcenpaeeelatengnineteeietaetvnencensdes 6  1 6 Problemi reports  NR ENTM                      S 6  2 ccu m                                               7  2 1 OVETVIE Wa                                                 7  2 2 Command line optobis uuii ie HP e Ee eM a eR MEN tn Eis 7  3 Interactive mode Be                       8  3 1 Internal GoXOmiendsu eoe Deci voe a E EE E 8  3 4 R  nning A SAUDIS Sr 9  3 2 1 Running applications in 
7.  3 Forwarding application console output i i ies oie eria o entree ey ERU SE pere pmt 24  5 4 MMU SPOL m             n    IRA 24  5 5 GDB interface e                             24  5 5 1 Some gdb support functions         sseseseseessesstssrseesrtssrssresressterresresseseresresseesresees 24  5 53 22 MMU SUpport e aa ea A A R E 25  6 The SITU ALCP BAC RONG MMN MEER A 26  6 1  TOME Al adiantum laiali 26  6 2 K  TLIN pe TC                   26  6 2 1  Command line options uicit eod e D stem kaak 26  6 0  Commands specific for the simulator backend                                    sess 28   2 MEME co MER           28  6 2 4  Beck OUR raketi linask eaten Pea ER cera las t uita n eese ha 29  ON Profilin Mor 20  6 3 Em  lati  n CH arACIETISUIOS anima vU BAD a DOE ani 30  OA BK RT m 30  6 3 2  MAIR Uc idikas v  ltas kle jagama eee eens ees 30  Ace    TEU e                                   31  634 Delayed write to special registers      ise ther atrio aeneae aasialaste 31  6 3 3 JRHe IGoODoODEIIHU salons aaa 31  0 3 0  Processor Ming essiri aieia enitn kula   a valli 31  6 3 1 Cache MEA RET                                               31  525 3  LEON peripherals registers  ossosopeseritdd kind antama 31  6 3 9  Interrupt Controller sessist iein Enee EAE EAR 31  6 310  Power dowi IUoUB aiit esci itae eo ce aped koe Cose kukeks 31  6 3 11 Memory DUI DINERO 32  6 3 12 SPARC V8 MUL DIV MAC instructions                  eee eene eene eroe enne oe vene se vene 32  6 4 TOA ABS 197872 17
8.  9610001b a620001a ja V  inast dede etary       grmon dsu   gt     3 7 Disassembly of memory  Any memory location can be disassembled using the disassemble command     grmon sim  gt  disassemble 0x40000000 5    40000000 a0100000 clr  10   40000004 29100004 sethi  hi 0x40001000    14  40000008 81c52000 jmp  14   4000000c 01000000 nop   40000010 91402000 ta 0x0    grmon sim  gt  disassemble 0x40000000 0x4000000c    40000000 a0100000 clr  10  40000004 29100004 sethi  hi 0x40001000    14  40000008 81c52000 jmp  14    4000000c 01000000 nop    grmon sim    disassemble main 3    40001ac8 1110000e sethi  hi 0x40003800    00  40001acc 90122010 or  00  0x10   00  40001ad0 8213c000 or  07   g1    GAISLER RESEARCH AB                 13   GRMON User   s Manual    grmon sim  gt   Note that  in dsu mode  also the contents of the instruction cache can be disassembled   grmon dsu  gt  disassemble 0x90140000 5  90140000 a0100000 clr  10  90140004 29100004  sethi  hi 0x40001000    14  90140008 81c52000 jmp  14  9014000c 01000000 nop  90140010 91402000 ta 0x0    grmon  dsu   gt     3 8 Loadable command module    It is possible for the user to add commands to grmon by creating a loadable command module  The module  should export a pointer to a UserCmd_T called UserCommands  e g      UserCmd_T  UserCommands    amp CommandExtension        UserCmd_T is defined as     typedef struct          Functions exported by grmon     int   MemoryRead    unsigned int addr  unsigned char  data  unsigned int lengt
9.  GRMON restores the internal state of the simulator backend from fname tss     int   intack   int level      intack   is called when the processor takes an interrupt trap  tt   0x11   Ox1f   The level of the taken interrupt is  passed in level  This callback can be used to implement interrupt controllers  intack   should return 1 if the  interrupt acknowledgement was handeled by the AHB module  otherwise 0  If 0 is returned  the default LEON  interrupt controller will receive the intack instead     GAISLER RESEARCH AB               39 z  GRMON User s Manual    6 4 3 Co processor emulation    6 4 3 1 FPU CP interface    The professional version of GRMON can emulate a user defined floating point unit  FPU  and co processor   CP   The FPU and CP are included into the simulator using loadable modules  To access the module  the  structure    cp interface  defined in io h  The structure contains a number of functions and variables that must be  provided by the emulated FPU CP        structure of function to be provided by an external co processor     struct cp interface      void   cp init        called once on start up     void   cp exit        called once on exit     void   cp reset        called on processor reset       void   cp restart        called on simulator restart     uint32   cp reg  int reg  uint32 data  int read     int   cp load   int reg  uint32 data  int  hold     int   cp store  int reg  uint32  data  int  hold     int   cp exec  uint32 pc  uint32 inst  int  hold 
10.  PCI interface     5 2 2 Starting GRMON DSU using the DSU uart    To succefully attach GRMON with the DSU backend using a uart  first connect the serial cable between the tar   get board and the host system  then power up and reset the target board  and finally start GRMON  Use the   uart option in case the DSU is not connected to  dev ttySO of your host  Note that the DSUEN signal on the  LEON processor has to be asserted for the DSU to operate     When the DSU backend first connects to the target  a check is made to see if the system has been initialised  with respect to memory  UART and timer settings  If no initialisation has been made    debug mode entered  directly after reset   the system first has to be initialised before any application can run  This is performed auto   matically by probing for available memory banks  and detecting the system frequency  The initialisation can  also be forced by giving the  i switch at startup  The de   tected system settings are printed on the console     john pluto tmp grmon  grmon  i   GRMON   The LEON multi purpose monitor v1 0   Copyright  C  2004  Gaisler Research   all rights reserved   For latest updates  go to http   www gaisler com    Comments or bug reports to grmon gaisler com    LEON DSU Monitor backend 1 0  professional version     Copyright  C  2003  Gaisler Research   all rights reserved   Comments or bug reports to jiri gaisler com    using port  dev ttyS0   115200 baud    GAISLER RESEARCH AB              19     GRMON
11.  Program exited normally   grmon dsu   gt     When printing executed instructions  the value within brackets denotes the instruction result  or in the case of  store instructions the store address and store data  The value in the first column displays the relative time  equal  to the DSU timer  The time is taken when the instruction completes in the last pipeline stage  write back  of the  processor  In a mixed instruction AHB display  AHB address and read or write value appear within brackets   The time indicates when the transfer completed  i e  when HREADY was asserted  Note   when switching  between tracing modes the contents of the trace buffer will not be valid until execution has been resumed and  the buffer refilled     5 3 3 Forwarding application console output    If GRMON is started with  u  the LEON UART1 will be placed in loop back mode  with flow control enabled   During the execution of an application  the UART receiver will be regularly polled  and all application console  output will be printed on the GRMON console  It is then not necessary to connect a separate terminal to  UARTI to see the application output  NOTE  the applications must be compiled with LECCS 1 1 5 or later   and LEON processor 1 0 4 or later must be used for this function to work     5 4 MMU support  If the LEON MMU is configured and enabled  GRMON performs automatic virtual to physical address trans     lation when displaying disassembly and memory contents  Writing to memory using    wme
12.  User s Manual  processor frequency   99 53 MHz  register windows     8  v8 hardware mul div   yes  floating point unit   meiko  instruction cache   1  8 kbytes  32 bytes line  8 kbytes total   data cache   1  8 kbytes  32 bytes line  8 kbytes total   hardware breakpoints   4  trace buffer   256 lines  mixed cpu ahb tracing  sram width   32 bits  sram banks   oM  sram bank size   1024 kbytes  sdram   1   64 Mbyte   0x60000000  sdram parameters   column bits  9  cas delay  2  refresh 15 6 us  stack pointer    0x400  fffo0    After monitor initialisation  the current value of MCFG1 3 and stack pointer are assigned as the default values   to which the registers and stack pointer will reset before a new application is started  These default valuse can  however be changed with the mefg1 2 3 and stack commands     5 2 3 Starting GRMON DSU using a PCI interface  Linux only     If your LEON processor has a PCI target interface  GRMON can connect to the LEON DSU using the PCI bus   In this case  start GRMON with  pci or  pcidev    see options below   The PCI interfaces uses the open source  PHOB generic device driver for linux  which must loaded before GRMON is started     root mars   phob 1 0    phob load vendor id 0x16e3 device 14 0x0210  When the PHOB driver is loaded  make sure that the corresponding devices are writable by the user  The driver  includes a script  phob load  that can be edited for the correct chmod operation     Once the driver is loaded  start GRMON with the  pci
13.  While attached  normal GRMON commands can be executed using the gdb monitor command  Output from  the GRMON commands  such as the trace buffer history is then displayed in the gdb console         gdb  monitor hist   time address instruction result  4484188 40001e90 add  g2   02   g3 6e1f766e  4484194 40001e94 andn  g3   g2   g2 001  0000  4484195 40001e98 andcc  g2   00   g0 00000000  4484196 40001e9c be a 0x40001e8c 40001e3c   4484197 4000lea0 add  01  4   01 40003818   4484198 40001le8c ld   01    g2 726c6421  4484200 40001e90 add  g2   02   g3 716b6320  4484201 40001e94 andn  g3   g2   g2 01030300  4484202 40001e98 andcc  g2   00   g0 00000000  4484203 40001e9c be a 0x40001e8c 40001e3c                      GAISLER RESEARCH AB      16   GRMON User s Manual    It is also possible to switch backend within a gdb session by sending the target command to grmon  All break   points will remain  However  once you switch target you need to reload the program and restart the application   The state is not saved during monitor target switch     john pluto tmp grmon 0 1  sparc rtems gdb   GNU gdb 5 3   Copyright 2002 Free Software Foundation  Inc    GDB is free software  covered by the GNU General Public License  and you are  welcome to change it and or distribute copies of it under certain conditions   Type  show copying  to see the conditions    There is absolutely no warranty for GDB  Type  show warranty  for details   This GDB was configured as    host i686 pc linux gnu   target s
14.  cp status     cp print     cp print     NULL    cp command     3   struct cp interface  cp    amp test fpu     Attach pointer         6 4 3 4 Example FPU    The file fp c contains a complete SPARC FPU using the co processor interface  It can be used as a template for  implementation of other co processors  Note that data dependency checking for correct timing is not imple   mented in this version  it is however implemented in the built in version of TSIM      6 5 Limitations    On Windows platforms GRMON simulator backend is not capable of reading UART A B from the console   only writing is possible  If reading of UART A B is necessary  the simulator should be started with  nouart  and  emulation of the UARTs should be handled by the I O module     GAISLER RESEARCH AB    APPENDIX mas    APPENDIX A  HASP    A 1 Installing HASP Device Driver    A 1  1 Ona Windows NT 2000 XP Station  The HASP device driver is installed automatically when using the HDD32 EXE Win32 software setup   You ll find this applications in the HASP drivers directory of your GRMON CD  It automatically recognize the    operating system in use and install the correct driver files at the required location     Note  To install the HASP device driver under Windows NT 2000 XP  you need administrator privileges     A 1 2 On a Linux platform    The HASP software for Linux includes the following      Kernel mode drivers for various kernel versions     Utilities to query the driver version and to display parallel po
15.  dsu Print the flash memory query register contents    flash status dsu Print the flash memory block lock status    flash unlock  addr lall dsu Unlock flash memory blocks    flash write  addr   data  dsu Write single data value to flash address    float dsu sim Display FPU registers                    Table 1  GRMON Commands    GAISLER RESEARCH AB              47                                                                                   Command Target Description   gdb dsu sim Connect to the GNU debugger  gdb     go dsu sim Start execution at  lt addr gt  without initialisation    hbreak  addr  dsu sim Print breakpoints or add hardware breakpoint    help  cmd  dsu sim Show available commands or usage for specific command    hist  trace_length  dsu sim Show trace history  In sim mode  this command also enables  the instruction tracing  In dsu mode the tm command is   icache dsu sim Show instruction cache   init dsu re initialise the processor    inst  trace_length  dsu Show traced instructions    leon dsu sim Show LEON registers    load  lt file gt  dsu sim Load a file into memory  The file should be in ELF32 format    mem  addr   count  dsu sim Alias for  x   examine memory  Examine memory at at  addr   for  count  bytes    mmu dsu Print mmu registers    perf  reset  sim show reset performance statistics   profile  011  dsu sim enable disable simple profiling  No arguments shows the  collected profiling statistics    register  reglwin   val  dsu sim Show set integer re
16.  from the event queue which has the calling function equal to cfunc     NOTE  the  stop event   function may NOT be called from a signal handler installed by the I O module   int  irl   Current IU interrupt level  Should not be used by I O functions unless they explicitly monitor theses lines   void   sys reset       Performs a system reset  Should only be used if the I O device is capable of driving the reset input     void   sim stop         Stops current simulation  Can be used for debugging purposes if manual intervention is needed after a certain  event   6 4 1 2 ioif structure    ioif is defined in sim h     structio_interface    void   set_irq   int irq  int level      GAISLER RESEARCH AB     34    GRMON User   s Manual    int   dma_read   uint32 addr  uint32  data  int num    int   dma write   uint32 addr  uint32  data  int num    a  extern struct io interface ioif     exported processor interface     The elements of the structure have the following meaning     void   set irg   int irg  int level      Set the interrupt pending bit for interrupt irq  Valid values on irq is 1   15  Care should be taken not to set inter   rupts used by the LEON emulated peripherals  Note that the LEON interrupt control register controls how and  when processor interrupts are actually generated     int   dma read   uint32 addr  uint32  data  int num    int   dma write   uint32 addr  uint32  data  int num      Performs DMA transactions to from the emulated processor memory  Only 32 bit wor
17.  i e  set the BZ bit to 0 in the DSU control register  This setting  is necessary if runing linux or other programs that use the data exception trap  tt 0x09       nosram Disable sram and map sdram from address 0x40000000   ram ram  size  Overrides the auto probed amount of static ram  Size is given in Kbytes    romrws waitstates  Set waitstates number of waitstates for rom reads    romwws waitstates  Set waitstates number of waitstates for rom writes    romws waitstates  Set waitstates number of waitstates for both rom reads and writes    ramrws waitstates  Set waitstates number of waitstates for ram reads    ramwws waitstates  Set waitstates number of waitstates for ram writes    ramws waitstates  Set waitstates number of waitstates for both ram reads and writes      pci Connect to the DSU using PCI device  dev phobO    See  uart option for description of how to connect to different devices      stack stackval    Set stackval as stack pointer for applications  overriding the auto detected value     GAISLER RESEARCH AB        21   GRMON User   s Manual     uart device By default  DSUMON communicates with the target using  dev ttyS0   dev ttya on solaris    This switch can be used to connect to the target using other devices  e g     uart  dev cua0   Note that  uart is also used when more than one board is handled by the phob driver  e g    grmon  i  pci  uart  dev phobOafor Ist board  grmon  i  pci  uart  dev phoblafor 2nd board     u Put UART 1 in loop back mode  and print 
18.  switch     dsu port is  dev phob0  PCI     clock frequency   24 73 MHz   register windows   8   instruction cache   4   2 kbytes  32 bytes line  8 kbytes total   data cache   4   2 kbytes  32 bytes line  8 kbytes total   trace buffer   256 lines  mixed cpu ahb tracing   PCI core   opencores  16e3 0210    sdram   1   32 Mbyte   0x40000000   Sdram parameters   column bits  9  cas delay  2  refresh 15 5 us  stack pointer   Ox4lfffffo    UART 1 in DSU mode  grmon  dsu  gt     5 2 4 Command line options    There are a few command line options to grmon that is specific for the DSU backend  These are      abaud baudrate  Use baudrate for UART 1  amp  2  By default  38400 baud is used    banks ram  banks    Overrides the auto probed number of populated ram banks     GAISLER RESEARCH AB     20     GRMON User s Manual     baud baudrate  Use baudrate for the DSU serial link  By default  115200 baud is used    cas delay Programs SDRAM to either 2 or 3 cycles CAS delay  Default is 2      da addr DSU address  By default  dsumon expects that the LEON DSU is located at AHB address  0x90000000  Use this option if you have configured the DSU to use a different address      freq system  clock  Overrides the detected system frequency  Use with care    ibaud baudrate    Use baudrate to determine the target processor frequency  Lower rate means higher accu   racy  The detected frequency is printed on the console during startup  By default  115200  baud is used      nb Do not break on error traps 
19. 17  57 M                                32  6 4 1 The simulator backend I O emulation interface                           eese 32  O ANE UD CUIR 32  641 2  1011F IUE 33  6 4 1 3 Structure to be provided by VO device        eeseseeeeeseseesessrserreressrrererressersreses 34  6 4 1 4 Cygwin specific 1G DOSE  siss 35  6 4 2 LEON AHB emulation interface Leute errore tee eee vakk   seaa   ee te ons 36  DLL poolt SECU o oaa bciorhntsaotai dei mt esa Gom scnaczavassinas cauda bes hes pea eda capud fn aee 36  6 4 2 2  Structure to be provided by AHB module                              eee 37  6 4 3 Co processor OMAL ALL OU  sssini i maa 39  643 1  FPU CP interface P TP                                      ERAS 39  643 2  Struct  re El  ments aal 39  0 4 3  3 Attaching the FPU and CPress sedasie FUE MB uada opaca aUud 40  C m MEI Cni erisin eai AE EEA KERE 41  6 5 Finis P                                 41  APPENDIX  AX HSD a ides eir perdi E E EA EE 42    GAISLER RESEARCH AB    GRMON User s Manual    APPENDIX B  GRMON Command description                      sese 46    GAISLER RESEARCH AB    GRMON User s Manual    1 Introduction    1 1 General    GRMON is a general debug monitor for the LEON processor  It comes with both a simulator backend tsim   and a backend for the LEON debug support unit DSU   It includes  among others  the following functions     e Read write access to all LEON registers and memory    Built in disassembler and trace buffer management     Downloading and executi
20. 4        Grmon has support for a simple form of profiling profiling in both dsu and simulator mode  In simulator mode  a more sophisticated version of profiling is also available  see    Profiling    on page 29    The simple version of profiling merely collects information of in which function the program currently exe   cutes  It does not take into consideration if the current function is called from within another procedure  Nether  the less  having this in mind is could provide some useful information     grmon sim  gt  profile 1  Profiling enabled  grmon sim  gt  run  resuming at 0x40000000    Starting  Perm Towers Queens  50 33 17    Intmm  116    Nonfloating point composite is    Floating point composite is    Program exited normally   grmon sim  gt  prof  function     unpack f     mulsf3     pack f       divdi3    umul   Fit     muldi3     window  overflow  Insert     addsf3   window underflow    subsf3   Fft   start  Innerproduct  Bubble  rInnerproduct  Place   Remove   Try   Permute  Quicksort   iv   Push        a lot more output        grmon sim    profile 1    See 6 2 5  page 29  for a comparison with the    backend     GAISLER RESEARCH AB    samples    23627  22673  17051  14162  8912  7594  6453  3779  3392  3327  2734  2409  2207  2165  2014  1767  1443  1371  1335  1275  1125  995  841  657       Mm Puzzle Quick Bubble Tree FFT    1100    126    862    217 33 34 266 934    ratio       16    12    n  e    OoOooocoocoococcmpmbbpbmpbompbrprmprt6ttP r  uo     92  1
21. 6   zal   14   38   44   62   70   42   38  295  412   58    BB   44   26   03   98    95  91   80  x73   60   47    24    more sophisticated profiling only available in the simulator          215   GRMON User   s Manual    4 GDB interface    4 1 Attaching to gdb    GRMON can act as a remote target for gdb  allowing symbolic debugging of target applications  To initiate gdb  communications  start the monitor with the  gdb switch or use the GRMON gdb command     john pluto tmp grmon  grmon  gdb   GRMON   The LEON multi purpose monitor v1 0   Copyright  C  2004  Gaisler Research   all rights reserved   For latest updates  go to http   www gaisler com    Comments or bug reports to grmon gaisler com    LEON DSU Monitor backend 1 0  professional version     Copyright  C  2003  Gaisler Research   all rights reserved   Comments or bug reports to jiri gaisler com    using port  dev ttyS0   115200 baud    processor frequency   99 53 MHz   register windows   8   v8 hardware mul div   yes   floating point unit   meiko   instruction cache   1   8 kbytes  32 bytes line  8 kbytes total   data cache   1   8 kbytes  32 bytes line  8 kbytes total   hardware breakpoints   4   trace buffer   256 lines  mixed cpu ahb tracing   stack pointer     Ox400ffff0    gdb interface  using port 2222    Then  start gdb in a different window and connect to GRMON using the extended remote protocol      gdb  target extended remote pluto 2222  Remote debugging using pluto 2222  0x40000800 in start       gdb    
22. 8 0x403ffe00 start   0x60       GAISLER RESEARCH AB             229   GRMON User s Manual     3 0x40001014 0x403ffe40 start   0x1014  grmon  sim   gt     6 2 4 Check pointing    The professional version of the simulator backend can save and restore its complete state  allowing to resume  simulation from a saved check point  Saving the state is done with the save command     grmon sim    save file name  The state is save to file name tss  To restore the state  use the restore command   grmon sim    restore file name    The state will be restored from file name tss   Restore directly at startup can be performed with the     rest  file name  command line switch     Note that GRMON command line options are not stored  such as alternate UART devices  etc       6 2 5 Profiling    The profiling function calculates the amount of execution time spent in each subroutine of the simulated pro   gram  This is made without intervention or instrumentation of the code by periodically sample the execution  point and the associated call tree  Cycles in the call graph are properly handled  as well as sections of the code  where no stack is available  e g  trap handlers   The profiling information is printed as a list sorted on highest  execution time ration  Profiling is enabled through the aprof command  The sampling period is by default 1000  clocks which typically provides the best compromise between accuracy and performance  Other sampling peri   ods can also be set through the aprof comman
23. Accurate and cycle true emulation of LEON processors   e Accelerated simulation during processor standby mode   e 64 bit time for unlimited simulation periods   e Instruction trace buffer   e  Loadable modules to include user defined I O devices     Stack backtrace with symbolic information   e  Check pointing capability to save and restore complete simulator state    When referring to GRMON in this section  it implies the simulator backend only     6 2 Operation    6 2 1 Command line options    The following command line options are unique for the simulator backend      ahbm ahb module path  Use ahb  module  path as loadable AHB module rather than the default ahb so   banks ram  banks  Sets how many ram banks  1   4  the ram is divided on  Default is 1    bopt Enables idle loop optimisation  see text     cpm cp  module  Use cp  module as loadable co processor module rather than the default cp so      desize size Defines the set size  kbytes  of the LEON dcache  Allowed values are 1   64 in binary  steps      dlock Enable data cache line locking  Default if disabled    dlsize size   Sets the line size of the LEON data cache  in bytes   Allowed values are 8  16 or 32    dsets sets Defines the number of sets in the LEON data cache  Allowed values are 1  default    4      drepl rep  Sets the replacement algorithm for the LEON data cache  Allowed values are rnd  default   for random replacement  lru for the least recently used replacement algorithm and lru for  Least recently rep
24. Manual    dcache  1   4 kbytes  16 bytes line  4 kbytes total        LEON SPARC simulator backend  version 1 0  professional version     Copyright  C  2001  Gaisler Research   all rights reserved   using 64 bit time  grmon sim  gt  load samples hello  section   text at 0x40000000  size 14656 bytes  section   data at 0x40003940  size 1872 bytes  total size  16528 bytes  306741 0 kbit s   read 71 symbols  grmon sim  gt  run  resuming at 0x40000000  Hello world     Program exited normally   grmon sim  gt     3 3 Inserting breakpoints and watchpoints  Instruction breakpoints are inserted using the break or hbreak commands     3 3 1 DSU    The break command inserts a software breakpoint  ta 1   while hbreak will insert a hardware breakpoint using  one of the IU watchpoint registers  To debug code in read only memories  e g  prom   only hardware break   points can be used  Note that it is possible to debug any ram based code using software breakpoints  even  where traps are disabled such as in trap handlers     3 3 2 Simulator    The simulator backend supports execution breakpoints and write data watchpoints  In standalone mode  hard   ware breakpoints are always used and no instrumentation of memory is made  When using the gdb interface   the gdb    break    command normally uses software breakpoints by overwriting the breakpoint address with a    ta  1    instruction  Hardware breakpoints can be inserted by using the gdb    hbreak  command  Data write watch   points are inserted 
25. ack  value  Set the default value of the stack pointer  The given value will be aligned to nearest lower  256 byte boundary  If no value is given  the current value is printed    tmode  proc   ahb   both   none   Select tracing mode between none  processor only  AHB only or both     va   address   Performs a virtual to physical translation of address     GAISLER RESEARCH AB    200   GRMON User s Manual    When used with Gaisler Research s GR PCI XC2V LEON FPGA Development board  the following com   mands are also supported  Note that flash has to be enabled with    flash enable  before any other flash com   mands can be used     flash Print the on board flash memory configuration  flash disable Disable writing to flash   flash enable Enable writing to flash   flash erase  addr   all     Erase a flash block at address addr  or the complete flash memory  all   An address range is  also support e g     flash erase 0x1000 0x8000        flash lock  addr   all     Lock a flash block at address addr  or the complete flash memory  all   An address range is  also support  e g     flash erase 0x1000 0x8000      flash lockdown  addr   all     Lock down a flash block at address addr  or the complete flash memory  all   An address  range is also support  e g     flash erase 0x1000 0x8000      flash query Print the flash query registers  flash status Print the flash lock status register  flash unlock  addr   all     Unock a flash block at address addr  or the complete flash memory  all   A
26. addr will flush the correspond   ing line in both caches     hist   ength Enable the instruction trace buffer  The length last executed instructions will be placed in the  trace buffer  A hist command without length will display the trace buffer  Specifying a zero  trace length will disable the trace buffer     inc time Increment simulator time without executing instructions  Time is given in same format as  for the go command  Event queue is evaluated during the advancement of time     perf  reset  The perf command will display various execution statistics  A    perf reset  command will  reset the statistics  This can be used if statistics shall be calculated only over a part of the  program  The run and reset command also resets the statistic information     restore file   Restores simulator state from file   see    Check pointing    on page 29     save file Saves simulator state to file   see    Check pointing    on page 29     6 2 3 Backtrace  The bt command will display the current call backtrace and associated stack pointer     grmon sim    load samples hello   section   text at 0x40000000  size 14656 bytes  section   data at 0x40003940  size 1872 bytes  total size  16528 bytes  in   1 sec    read 71 symbols   grmon sim    break puts r   breakpoint 1 at 0x40001dcc    puts r  grmon sim    run   resuming at 0x40000000    breakpoint 1   puts r  0x40001dcc   grmon sim    bt  Spc ssp     0 0x40001dcc 0x403ffd10  puts r   0x0   1 0x40001e3c 0x403ffd98 puts   0x8   2 0x4000120
27. bsf3 15547 5 56  Fit 15188 5 44  Trial 11523 4 12  Puzzle 11004 3 94        a lot more output      grmon sim  gt     6 3 Emulation characteristics    6 3 1 Timing    The simulator backend is cycle true  i e a simulator time is maintained and incremented according processor  instruction timing and memory latency  Tracing using the trace command will display the current simulator  time in the left column  This time indicates when the instruction is fetched  Cache misses  waitstates or data  dependencies will delay the following fetch according to the incurred delay     6 3 2 UARTS    If the baudrate register is written by the application software  the UARTS will operate with correct timing  If  the baudrate is left at the default value  or if the  fast_uart switch was used  the UARTS operate at infinite  speed  This means that the transmitter holding register always is empty and a transmitter empty interrupt is  generated directly after each write to the transmitter data register  The receivers can never overflow or generate  errors     Note that with correct UART timing  it is possible that the last character of a program is not displayed on the  console  This can happen if the program forces the processor in error mode  thereby terminating the simulation   before the last character has been shifted out from the transmitter shift register  To avoid this  an application  should poll the UART status register and not force the processor in error mode before the transmitter shift 
28. cantly improving simulation performance  However   some  poorly written  code might use a busy loop  BA 0  instead of triggering power down mode  The  bopt  switch will enable a detection mechanism which will identify such behavior and optimise the simulation as if  the power down mode was entered     6 3 6 Processor timing  The GRMON simulator backend emulates the behavior of the LEON 2 2 VHDL model   6 3 7 Cache memories    The evaluation version of LEON implements 2 4Kbyte caches  with 16 bytes per line  The commercial  GRMON simulator backend version can emulate any permissible cache configuration using the  icsize   ilsize    desize and  dlsize options  Allowed sizes are 1   64 kbyte with 8   32 bytes line  The characteristics leon  multi set caches  as of leon2 1 0 8  can be emulated using the  isets   dsets   irepl   drelp   ilock and  dlock  options  Diagnostic cache reads writes are implemented  The simulator commands icache and dcache can be  used to display cache contents     6 3 8 LEON peripherals registers    The LEON peripherals registers can be displayed with the leon command  or using x     x 0x80000000 256       The registers can also be written using wmem  e g   wmem 0x80000000 0x1234        6 3 9 Interrupt controller    External interrupts are not implemented  so the I O port interrupt register has no function  Internal interrupts  are generated as defined in the LEON specification  All 15 interrupts can also be generated from the user   defined I O module 
29. d  Below is an example profiling the stanford benchmark          grmon  sim samples stanford  GRMON   The LEON multi purpose monitor v1 0 5    Copyright  C  2004  Gaisler Research   all rights reserved   For latest updates  go to http   www gaisler com   Comments or bug reports to grmon gaisler com    LEON SPARC simulator backend  version 1 0 5    Copyright  C  2001  Gaisler Research   all rights reserved   serial port A on stdin stdout   allocated 4096 K RAM memory  in 1 bank s    allocated 2048 K ROM memory   icache  1   4 kbytes  16 bytes line  4 kbytes total   dcache  1   4 kbytes  16 bytes line  4 kbytes total   section   text at 0x40000000  size 52112 bytes  section   data at 0x4000cb90  size 1904 bytes   total size  54016 bytes  in   1 sec    read 195 symbols   grmon sim    aprof 1  Accumulated profiling enabled  sample period 1000  grmon sim    run   resuming at 0x40000000    Starting  Perm Towers Queens Intmm Mm Puzzle Quick Bubble Tree FFT  50 33 T 116 1100 217 33 34 266 934    GAISLER RESEARCH AB     30    GRMON User   s Manual    Nonfloating point composite is 126  Floating point composite is 862    Program exited normally   grmon sim  gt  aprof    function samples ratio     start 135242 48 44  _start 131006 46 92  main 130790 46 84    mulsf3 77355 27 70  rInnerproduct 54288 19 44  Mm 54200 19 41  Fft 47447 16 99    unpack f 47254 16 92  Oscar 46411 16 62    pack f 34102 42 23    addsf3 29967 10 73    divdi3 28324 10 14    muldi3 18526 6 63   umul 17824 6 38    Su
30. d in   cc   f data dependency is emulated  the number of stall cycles should be return in  hold  The return value  should be zero if no trap occurred or the trap number if a trap did occur  0x8 for the FPU  0x28 for CP   A trap  can occur if the FPU CP is in exception pending mode when a FBCC CBCC instruction is executed     int  cp status    unit status      Should contain the FPU CP execution status  0   execute mode  1   exception  pending  2   exception mode   void   cp print       print registers      Should print the FPU CP registers to stdio   int   command   char   cmd      CP specific commands       User defined FPU CP control commands  NOT YET IMPLEMENTED     6 4 3 3 Attaching the FPU and CP     At startup the simulator tries to load two dynamic link libraries containing an external FPU or CP  The simula   tor looks for the file fp so and cp so in the current directory and in the search path defined by ldconfig  The  location of the modules can also be defined using  cpm and  fpm switches  Each library is searched for a  pointer    cp    that points to a cp  interface structure describing the co  processor  Below is an example from fp c     struct cp interface test fpu        GAISLER RESEARCH AB            41    GRMON User s Manual    cp init     cp init     NULL     cp exit     cp init     cp reset     cp init     cp restart     cp reg     cp reg     cp load     cp load     cp store     cp store     fpmeiko     cp exec     Gp cc     epocc      amp fpregs fpstate   
31. d into the simulator through the use of loadable modules  As the real pro   cessor  the simulator primarily interacts with the emulated device through read and write requests  while the  emulated device can optionally generate interrupts and DMA requests  This is implemented through module  interface described below  The interface is made up of two parts  one that is exported by GRMON and defines  simulator functions and data structures that can be used by the I O device  and one that is exported by the I O  device and allows GRMON to access the I O device  Address decoding of the I O devices is straight forward   all access that do not map on the internally emulated memory and control registers are forwarded to the I O  module     The simulator backend exports two structures  simif and ioif  The simif structure defines functions and data  structures belonging to the simulator core  while ioif defines functions provided by system  LEON  emulation   At start up  if GRMON is started with the in simulator mode  it searches for    io so    in the current directory  but  the location of the module can be specified using the  iom switch  Note that the module must be compiled to be  position independent  i e  with the  fPIC switch  gcc      6 4 1 1 simif structure    The simif structure 1s defined in sim h     struct sim options    int phys ram   int phys rom   double freq   double wdfreq   ys  struct sim interface    struct sim options  options     tsim command line options     sis
32. d transfers are allowed     and the address must be word aligned  On bus error  1 is returned  otherwise 0  The DMA takes place on the  AMBA AHB bus     6 4 1 3 Structure to be provided by I O device    io h defines the structure to be provided by the emulated I O device     struct io subsystem      void   io init       called once on start up      void   io exit        called once on exit      void   io reset       called on processor reset     void   io restart       called on simulator restart     int   io read   unsigned int addr  int  data  int  ws      int   io write   unsigned int addr  int  data  int  ws  int size    char    get io ptr  unsigned int addr  int size    void   command   char   cmd     I O specific commands     void   sigio       called when SIGIO occurs     void   save  char  fname     save simulation state             void   restore  char  fname     restore simulation state       dc  struct io subsystem  io     imported I O emulation functions     The elements of the structure have the following meanings   void   io init       Called once on simulator startup  Set to NULL if unused   void   io exit       Called once on simulator exit  Set to NULL if unused   void   io reset  0   Called every time the processor is reset  i e also startup   Set to NULL if unused     void   io restart        GAISLER RESEARCH AB                2 35    GRMON User   s Manual    Called every time the simulator is restarted  simtime set to zero   Set to NULL if unused   int   i
33. dsu mode                         eese 9  3 2  Running applications in simulator mode                           esee 9  3 3 Inserting breakpoints and watchpoints                              eeneeeenneeoonneeoenneeoenne 10  le DSU cen enan alad E E TN 10  Dx Me idco 10  3 4 Dis Playa TEC ISS aatal eee 11  3 5 Symbolic debug information eani katate Saaka 11  3 6 Displaying memory contents      5546 jpas  uavag  aj  dkavanakaailedtvskeras HR PARE PRSE Rea a PLU Ede koka 12  3 7 Dis    sembly of Memory siers rierien eea E O EEEE EE i 12  3 8 Loadable command module       m 13  3 9 Simple POMME jas e E eee 14  4 GDB interface cnno ana a m a 15  4 1 Attaching to Po ak TU 13  4 2 Debugging of applications PUR 17  4 3 PELLEAS A E A E     17  4 4 Limitations of gdb interface         eeseseseesreesreeresrssesreesrtssrseresressernrerrersresrssees 17  5 The DSU   ackend M T ned pat a en SEa TE 18  5 1 cre                                      TN 18  5 2 Operat oN saani aiamaa ne e a EREE Pup duct Gta T E us Ud 18  Deh IV SEVIS P i AEAEE ERER E ER kaka 18  5 2 3 Starting GRMON DSU using the DSU uart                         eese 18  5 2 3 Starting GRMON DSU using a PCI interface  Linux only                             19  324 Command Ime oplODS   a ciet abcess pia timen dede de i ix Es 19  5 3 Interactive Mode SRAM 21  5 3 1 Commands specific to the DSU backend                        eene 21  3542  AUSI the trace DUHBE  sass ec Pe alamaa 22    GAISLER RESEARCH AB    GRMON User s Manual  5 3
34. gisters  or windows  eg  re w2       reset dsu sim Reset the active backend    restore sim Restore simulator state from file    run dsu sim Run loaded application    save file sim Save simulator state to file    shell   command   dsu sim Execute a shell command    stack  lt addr gt  dsu Set stack pointer for next run    step  n  dsu sim Single step one or  n  times    symbols  symbol file  dsu sim Show symbols or load symbols from file    target  simldsu   args  dsu sim Change backend  no argument cycles through available  backends      args    are arguments passed to the backen to  which grmon is switching  If no args is supplied  the  switches that were supplied when starting the current  backend are reused  Note that only backend specific  commands can be supplied to target    tm  ahblcpulboth  dsu Select trace mode     Table 1  GRMON Commands             APPENDIX       GAISLER RESEARCH     48                              APPENDIX  Command Target Description  tra  inst count  sim Trace  inst count  instructions   quit dsu sim Exit grmon and return to invoker the shell    va  lt addr gt  dsu Performs a virtual to physical translation of address   verify  lt file gt  dsu Verify memory contents against file                             version dsu sim Show version    watch  addr  dsu sim Print or add watchpoint    wmem  lt addr gt   lt data gt  dsu sim Write  lt data gt  to memory at address  lt addr gt     x  addr   count  dsu sim Examine memory at at  addr  for  count  bytes
35. h    int  MemoryWrite    unsigned int addr  unsigned char  data  unsigned int length    void   GetRegisters   unsigned int registers        SetRegisters   unsigned int registers        dprint   char  string       void    void       Functions provided by user          int   Init       int   Exit   0     int    CommandParser   int argc  char  argv      char   Commands    int NumCommands        UserCmd_T     The first five entries is function pointers that are provided by grmon when loading the module  The other  entries has to be implemented by the user  This is how   e  nit and Exit are called when entering and leaving a grmon target     e CommandParser are called from grmon before any internal parsing is done  This means that you can  override internal grmon commands  On success CommandParser should return 0 and on error the  return value should be  gt  200  On error grmon will print out the error number for diagnostics  argv 0   is the command itself and argc is the number of tokens  including the command  that is supplied       Commands should be a list of available commands   used for command completion       NumCommands should be the number of entries in Commands  It is crusial that this number matches  the number of entries in Commands  If NumCommands is set to O zero   no command completion will  be done     A simple example of a command module is supplied with the professional version of grmon     GAISLER RESEARCH AB    GRMON User s Manual    3 9 Simple Profiling     1
36. its output on monitor console     5 3 Interactive mode    5 3 1 Commands specific to the DSU backend    These are the commands only available in the DSU backend     ahb  length  Print only the AHB trace buffer  The length last AHB transfers will be printed  default is  10     hist   ength  Print the trace buffer  The length last executed instructions or AHB transfers will be  printed  default is 10     inst  length    Print only the instruction trace buffer  The length last executed instructions will be printed   default is 10     init Do a hardware probe to detect system settings and memory size  and initialize peripherals   leon Display LEON peripherals registers     mefg1  value  Set the default value for memory configuration register 1  When the    run    command is  given  MCFGI  2 amp 3 are initialised with their default values to provide the application with  a clean startup environment  If no value is give  the current value is printed     mefg2  value  As mcfg1 above  but setting the default value of the MCFG2 register   mcfg3  value  As mcfgl above  but setting the default value of the MCFG3 register   mmu Prints the MMU registers   reg  reg name value     Prints and sets the IU registers in the current register window  reg without parameters prints  the IU registers  reg reg name value sets the corresponding register to value  Valid register  names are psr  tbr  wim  y  g1 g7  00 07 and 10 17  To view the other register windows  use  reg wn  where n is O   7     st
37. k print or add breakpoint  cont continue execution  dcache show data cache  debug change or show debug level  delete delete breakpoint s   disassemble disassemble memory  echo echo string in monitor window  exit see quit     float display FPU registers  gdb connect to gdb debugger  go start execution without initialisation  hbreak print breakpoints or add hardware breakpoint  if available   help show available commands or usage for specific command  icache show instruction cache  leon show leon registers  load load a file  mem see  x   examine memory   profile enable disable show simple profiling  see also    aprof    command in simulator backend   register show set integer registers  reset reset active backend  run reset and start execution at last load address  shell execute a shell command  step single step one or  n  times    GAISLER RESEARCH AB          GRMON User s Manual  symbols show symbols or load symbols from file  target change backend  quit exit grmon  version show version  watch print or add watchpoint  wmem write word to memory  X examine memory    Typing a    Ctrl C    will interrupt a running program  Short forms of the commands are allowed  e g c  co  or con   are all interpreted as cont  Tab completion is available for commands  text symbols and filenames     3 2 Running applications    To run a program  first use the load command to download the application and the run to start it  The program  should be compiled with LECCS     3 2 1 Running applications i
38. lacement algorithm        1  SPARC is a registred trademark of SPARC International    GAISLER RESEARCH AB     27   GRMON User   s Manual     freq system_clock    Sets the simulated system clock  MHz   Will affect UART timing and performance statis   tics  Default is 50      fast_uart Run UARTS at infinite speed  rather than with correct  slow  baud rate    fpm fp_module  Use fp_module as loadable FPU module rather than the default fp so    icsize size Defines the set size  kbytes  of the LEON icache  Allowed values are 1   64 in binary steps      isets sets Defines the number of sets in the LEON instruction cache  Allowed values are 1 default     4    ilock Enable instruction cache line locking  Default is disabled      iom io_module  Use io_module as loadable I O module rather than the default io so    ilsize size Sets the line size of the LEON instruction cache  in bytes   Allowed values are 8  16 or 32      irepl repl Sets the replacement algorithm for the LEON instruction cache  Allowed values are rnd   default  for random replacement  lru for the least recently used replacement algorithm and  lrr for least recently  replacement algorithm      nfp Disables the FPU to emulate system without FP hardware  Any FP instruction will generate  an FPdisabled trap     nomac Disable LEON MAC instruction     nov8 Disable SPARC V8 MUL DIV instructions     notimers Disable the LEON timer unit     nouart Disable emulation of UARTS  All access to UART registers will be routed to the I O 
39. m    is always done  using the physical address     5 5 GDB interface  5 5 1 Some gdb support functions    GRMON detects gdb access to register window frames in memory which are not yet flushed and only reside in  the processor register file  When such a memory location is read  DSUMON will read the correct value from  the register file instead of the memory  This allows gdb to form a function traceback without any  intrusive     GAISLER RESEARCH AB            25    GRMON User   s Manual    modification of memory  This feature is disabled during debugging of code where traps are disabled  since not  valid stack frame exist at that point     GRMON detects the insertion of gdb breakpoints  in form of the    ta I    instruction  When a breakpoint is  inserted  the corresponding instruction cache tag is examined  and if the memory location was cached the tag is  cleared to keep memory and cache synchronised     5 5 2 MMU support    If the LEON MMU is configured and enabled  GRMON automatically performs virtual to physical address  translation when responding to gdb requests  This allows souce level debugging of programs using the MMU   such as linux  The gdb set memory command is however not supported     GAISLER RESEARCH AB    Ed  GRMON User s Manual    6 The simulator backend    6 1 General    The GRMON simulator backend is a generic SPARC  architecture simulator capable of emulating LEON   based computer systems     The simulator backend provides several unique features     e 
40. mand is recognized  otherwise 0  When grmon commands are issued through the gdb     monitor    command  a return value of 0 or 1 will result in an    OK    response to the gdb command  A return  value  gt  1 will send the value itself as the gdb response  A return value  lt  1 will truncate the Isb 8 bits and send  them back as a gdb error response     Enn        void   save   char  fname     save simulation state       The save   function is called when save command is issued in the simulator  The I O module should save any  required state which is needed to completely restore the state at a later stage   fname points to the base file  name which is used by GRMON   GRMON save the internal state of the simulator backend to fname tss  It is  suggested that the I O module save its state to fname ios  Note that any events placed in the event queue by the  I O module will be saved  and restored  by GRMON     void   save   char  fname     save simulation state       The restore   function is called when restore command is issued in the simulator  The I O module should  restore any required state to resume operation from a saved check point   fname points to the base file name  which is used by the simulator backend   GRMON restores the simulator internal state from fname tss     6 4 1 4 Cygwin specific io init      Due to problems of resolving cross referenced symbols in the module loading when using Cygwin  the  io init   routine in the I O module must initialise a local copy of 
41. mod   ule      ram ram  size    Sets the amount of simulated RAM  Kbyte   Default is 4096  If set to 0  sram is disabled   disable available on LEON only       sdram sdram  size    Sets the amount of simulated SDRAM  Default is 0  To use SDRAM  relevant memory con   figuration registers must be initialised   LEON only      rom rom  size  Sets the amount of simulated ROM  Kbyte   Default is 2048    rom8   rom16    By default  the prom area at reset time is considered to be 32 bit  Specifying  rom8 or    rom16 will initialise the memory width field in the memory configuration register to 8  or  16 bits  The only visible difference is in the instruction timing      uart 1 2  device    GAISLER RESEARCH AB     28   GRMON User s Manual    By default  UARTI is connected to stdin stdout and UART2 is disconnected  This switch  can be used to connect the uarts to other devices  E g     uartl  dev ptypc  will attach  UARTI to ptypc     6 2 2 Commands specific for the simulator backend    These are the commands only available in the simulator backend   aprof  0l   period   Enable disable accumulative profiling   see  Profiling  on page 29     bt Print backtrace  cp Shows the registers of the co processor  if available    event Print events in the event queue  Only user inserted events are printed     flush  all   icache   dcache   addr     Flush the LEON caches  Specifying all will flush both the icache and dcache  Specifying  icache or dcache will flush the respective cache  Specifying 
42. n address range  is also support  e g     flash erase 0x1000 0x8000      flash write   addr     data      Write a 32 bit data word to the flash at address addr     5 3 2 Using the trace buffer    Depending on the LEON configuration  the trace buffer can store the last executed instruction  the last AHB  bus transfers  or both  The trace buffer mode is set using the tmode command  Use the ahb  inst or hist com   mands to display the contents of the buffer  Below is an example debug session that shows the usage of break   points  watchpoints and the trace buffer     john pluto tmp grmon 0 1  grmon  i   GRMON   The LEON multi purpose monitor v1 0   Copyright  C  2004  Gaisler Research   all rights reserved   For latest updates  go to http   www gaisler com    Comments or bug reports to grmon gaisler com    LEON DSU Monitor backend 1 0  professional version     Copyright  C  2003  Gaisler Research   all rights reserved   Comments or bug reports to jiri gaisler com    using port  dev ttyS0   115200 baud    GAISLER RESEARCH AB    processor frequency  register windows   v8 hardware mul div  floating point unit  instruction cache  data cache   hardware breakpoints  trace buffer   sram width   sram banks   sram bank size  sdram   sdram parameters  stack pointer    eee       99 53 MHz   8   yes   meiko   1   8 kbytes   1   8 kbytes     4   256 lines  mixed cpu ahb t  32 bits   1    1024 kbytes  1   64 Mbyte   0x60000000    column bits  9  cas delay       OxA400ffff0    grmon dsu    lo 
43. n dsu mode    grmon dsu    load samples hello   section   text at 0x40000000  size 14656 bytes  section   data at 0x40003940  size 1872 bytes  total size  16528 bytes  99 4 kbit s    read 71 symbols   grmon dsu    run    Program exited normally   grmon dsu   gt     The output from the application appears on the normal LEON UARTS and thus not in the GRMON console   unless the  u switch was given at startup  The loaded applications should not be run through mkprom  Before  the application is started  the complete integer and floating point register file is cleared  filled with zeros   and  the three memory configuration registers  MCFG1 3  and stack pointer are initialised to their default values   Various processor registers such as  psr and  wim are also initialised  When an application terminates  it  must be reloaded on the target before it can be re executed in order to re initialise the data segment   data      3 2 2 Running applications in simulator mode    To switch to simulator mode and run the same application  issue the target command to switch backend and  then do exactly as in dsu mode     grmon dsu  gt  target sim  LEON SPARC simulator backend  version 1 0  professional version     Copyright  C  2001  Gaisler Research   all rights reserved   using 64 bit time   serial port A on stdin stdout   allocated 4096 K RAM memory  in 1 bank s    allocated 2048 K ROM memory   icache  1   4 kbytes  16 bytes line  4 kbytes total     GAISLER RESEARCH AB     10   GRMON User   s 
44. n started already    Start it from the beginning   y or n  y       Starting program   home john samples hello    GAISLER RESEARCH AB                2 17      GRMON User s Manual  Breakpoint 1  main    at hello c 4  4 printf  Hello world  n      gdb  cont  Continuing     Program exited normally     4 2 Debugging of applications  To load and start an application  use the gdb load and run command      gdb  lo   Loading section  text  size Oxcb90 lma 0x40000000  Loading section  data  size 0x770 lma 0x4000cb90  Start address 0x40000000  load size 54016   Transfer rate  61732 bits sec  278 bytes write    gdb  bre main   Breakpoint 1 at 0x400039c4  file stanford c  line 1033    gdb  run   The program being debugged has been started already   Start it from the beginning   y or n  y   Starting program   home john samples stanford    Breakpoint 1  main    at stanford c 1033  1033 fixed   0 0    gdb     To interrupt simulation  Ctrl C can be typed in both GDB and GRMON windows  The program can be  restarted using the GDB run command but a load has first to be executed to reload the program image on the  target  Software trap 1  ta 1  is used by gdb to insert breakpoints and should not be used by the application     4 3 Detaching  If gdb is detached using the detach command  the monitor returns to the command prompt  and the program    can be debugged using the standard GRMON commands  The monitor can also be re attached to gdb by issu   ing the gdb command to the monitor  and the targe
45. n value should be zero if no trap occurred or the trap  number if a trap did occur  0x8 for the FPU  0x28 for CP   A trap can occur if the FPU CP is in  exception pending mode when the load is executed     int   cp store  int reg  uint32  data  int  hold      Used to perform FPU CP store instructions     reg    indicates which register to access  0 31 indicates  f0  f31    c0   31  32 indicates  fq  cq  34 indicates  fsr  csr  Stored should be assigned to  data  During a  STDFO  the  pc should be assigned to data 0  while the instruction opcode to data 1   If data dependency is  emulated  the number of stall cycles should be return in  hold  The return value should be zero if no trap  occurred or the trap number if a trap did occur  0x8 for the FPU  0x28 for CP   A trap can occur if the FPU CP  is in exception pending mode when the store is executed     int   cp exec  uint32 pc  uint32 inst  int  hold      Execute FPU CP instruction  The  pc is passed in    pe    and the instruction opcode in    inst     If data dependency  is emulated  the number of stall cycles should be return in  hold  The return value should be zero if no trap  occurred or the trap number if a trap did occur  0x8 for the FPU  0x28 for CP   A trap can occur if the FPU CP  is in exception pending mode when a new FPU CP instruction is executed     int   cp cc  int  cc  int  hold      get condition codes       Read condition codes  Used by FBCC CBCC instructions  The condition codes  0   3  should be returne
46. o_read   unsigned int addr  int  data  int  ws      Processor read call  The processor always reads one full 32 bit word from addr  The data should be returned in   data  the number of waitstates should be returned in  ws  If the access would fail  illegal address etc    1  should be returned  on success 0     int   io_write   unsigned int addr  int  data  int  ws  int size      Processor write call  The size of the written data is indicated in size  0   byte  1   half word  2   word  3    doubleword  The address is provided in addr  and is always aligned with respect to the size of the written data   The number of waitstates should be returned in  ws  If the access would fail  illegal address etc    1 should be  returned  on success 0     char     get_io_ptr   unsigned int addr  int size      GRMON can access emulated memory in the I O device in two ways  either through the io_read io_write func   tions or directly through a memory pointer  get_io_ptr   is called with the target address and transfer size  and  should return a character pointer to the emulated memory array if the address and size is within the range of the  emulated memory  If outside the range   1 should be returned  Set to NULL if not used     int   command   char   cmd      The I O module can optionally receive command line commands  A command is first sent to the AHB and I O  modules  and if not recognised  the to GRMON  command   is called with the full command string in  cmd   Should return 1 if the com
47. on of LEON applications     Breakpoint and watchpoint management     Remote connection to GNU debugger  gdb     1 2 Supported platforms and system requirements    GRMON currently supports two platforms  linux 2 2 glibc 2 2 and windows98 NT 2K  The windows version  requires that cygwin  version 1 5 5 1  or higher is installed  Cygwin can be downloaded from  sources redhat com  Note that operation on Cygwin platforms is generally less reliable  and depends a lot on  used Cygwin and Windows version     1 3 Obtaining GRMON    The primary site for GRMON is http   www gaisler com   where the latest version of GRMON can be ordered  and evaluation versions downloaded     1 4 Installation   GRMON can be installed anywhere on the host computer   for convenience the installation directory should be  added to the search path  The commercial versions use HASP license key      1 5 License installation    GRMON is licensed using a HASP hardware key     1 5 1 HASP4 hardware key    Two versions of the HASP USB harwware key are available  HASP4 M1 for node locked licenses  blue key    and HASP4 Net5 for floating licenses  red key   Before use  a device driver for the key must be installed  The  latest drivers can be found at www ealaddin com or www gaisler com  If a floating license key is used  the  HASP4 network license server also has to be installed and started  The necessary server installation documen   tation can be obtained from the distribution CD or from www ealaddin com  See appendi
48. parc tsim elf     gdb  file samples hello   Reading symbols from samples hello   done     gdb  target extended remote pluto 2222   Remote debugging using pluto 2222   0x40001ea0 in strlen       gdb  1o   Loading section  text  size 0x3940 lma 0x40000000   Loading section  data  size 0x750 lma 0x40003940   Start address 0x40000000  load size 16528   Transfer rate  66112 bits sec  275 bytes write     gdb  break main   Breakpoint 1 at 0x40001ac8  file hello c  line 4     gdb  run   The program being debugged has been started already    Start it from the beginning   y or n  y          Starting program   home john samples hello    Breakpoint 1  main    at hello c 4  4 printf  Hello world  n      gdb  monitor target    LEON SPARC simulator backend  version 1 0  professional version     Copyright  C  2001  Gaisler Research   all rights reserved   using 64 bit time   serial port A on stdin stdout   allocated 4096 K RAM memory  in 1 bank s    allocated 2048 K ROM memory   icache  1   4 kbytes  16 bytes line  4 kbytes total    dcache  1   4 kbytes  16 bytes line  4 kbytes total     LEON SPARC simulator backend  version 1 0  professional version     Copyright  C  2001  Gaisler Research   all rights reserved   using 64 bit time    gdb  1o   Loading section  text  size 0x3940 lma 0x40000000   Loading section  data  size 0x750 lma 0x40003940   Start address 0x40000000  load size 16528   Transfer rate  132224 bits in   1 sec  275 bytes write     gdb  run   The program being debugged has bee
49. reg   isters are empty  The real hardware does not exhibit this problem since the UARTs continue to operate even  when the processor is halted     GAISLER RESEARCH AB          EIE  GRMON User s Manual    6 3 3 FPU    The simulator maps floating point operations on the hosts floating point capabilities  This means that accuracy  and generation of IEEE exceptions is host dependent  The simulator implements  to some extent  data depen   dant execution timing as in the real MEKIO FPU     6 3 4 Delayed write to special registers    The SPARC architecture defines that a write to the special registers   psr   wim   tbr   fsr   y  may have  up to 3 delay cycles  meaning that up to 3 of the instructions following a special register write might not    see     the newly written value due to pipeline effects  While LEON have between 2 and 3 delay cycles  the GRMON  simulator backend has 0  This does not affect simulation accuracy or timing as long as the SPARC ABI recom   mendations are followed that each special register write must always be followed by three NOP  If the three  NOP are left out  the software might fail on real hardware while still executing    correctly    on the simulator     6 3 5 Idle loop optimisation    To minimise power consumption  LEON applications will typically place the processor in power down mode  when the idle task is scheduled in the operation system  In power down mode  GRMON increments the event  queue without executing any instructions  thereby signifi
50. rms a system reset  Should only be used if the I O device is capable of driving the reset input     6 4 2 2 Structure to be provided by AHB module    tsim h defines the structure to be provided by the emulated AHB module     struct ahb_access    uint32 address   uint32  data   uint32 ws   uint32 rnum   uint32 wsize   uint32 cache   1   struct ahb subsystem    void   init       called once on start up     void   exit       called once on exit       void   reset       called on processor reset     void   restart       called on simulator restart        read   struct ahb access  access     write   struct ahb access  access     diag read   uint32 addr  int  data     diag write   uint32 addr  int  data      int    int    int    E      in    char    get io ptr   unsigned int addr  int size      int   command   char   cmd      I O specific commands     void   save  char   fname      save state     void   restore  char   fname      restore state          int   intack  int level      interrupt acknowledge       y    The elements of the structure have the following meanings     void   init  0    Called once on simulator startup  Set to NULL if unused   void   exit  0    Called once on simulator exit  Set to NULL if unused     void   reset         Called every time the processor is reset  i e also startup   Set to NULL if unused     void   restart        Called every time the simulator is restarted  simtime set to zero   Set to NULL if unused     int   read   struct ahb access  ahbacc  
51. rned  Set to NULL if not used    int   command   char   cmd      The AHB module can optionally receive command line commands  A command is first sent to the AHB and I   O modules  and if not recognised  the GRMON  command   is called with the full command string in  cmd   Should return 1 if the command is recognized  otherwise 0  When GRMON commands are issued through the  gdb  monitor  command  a return value of 0 or 1 will result in an    OK    response to the gdb command  A return  value    1 will send the value itself as the gdb response  A return value    1 will truncate the Isb 8 bits and send  them back as a gdb error response     Enn        void   save  char  fname     save simulation state       The save   function is called when save command is issued in the simulator  The AHB module should save any  required state which is needed to completely restore the state at a later stage   fname points to the base file  name which is used by GRMON   GRMON saves the internal state of the simulator backend to xi  It is sug   gested that the AHB module save its state to fname ahs  Note that any events placed in the event queue by the  AHB module will be saved  and restored  by GRMON     void   save  char  fname     save simulation state       The restore   function is called when restore command is issued in the simulator  The AHB module should  restore any required state to resume operation from a saved check point   fname points to the base file name  which is used by GRMON  
52. rts     HASP library   It is contained in the redhat 1 05 1 i386 tar gz  suse 1 5 1 i386 tar gz or the haspdrivertargz archive in the  Linux directory on the GRMON CD  For detailed information on the components refer to the readme files in    the archive     Note  All described action should be executed as root     Aladdin Daemon Installation  aksusbd     Enabling Access to USB Keys  In order for the daemon to access USB keys  the so called usbdevfs must be mounted on  proc bus usb  On    newer distributions it is mounted automatically  e g SuSe 7 0   To mount usbdevfs manually use the following  command     mount  t usbdevfs none  proc bus usb    GAISLER RESEARCH AB      APPENDIX    Enabling Access to Parallel Keys  To enable access to parallel port keys  the kernel driver aksparlnx must be installed before starting aksusbd   Loading the Daemon    Load the daemon by starting it     path   aksusbd    The daemon will fork and put itself into the background     The status message is generated in the system log informing you if the installation has been successful or not   It reports its version  the version of the API used for USB and the version of the API inside the kernel driver   for parallel port keys     If the kernel driver happens to be unavailable when aksusbd is launched  parallel port keys cannot be accessed   but USB keys are still accessible  The system log reflects this status     If  proc bus usb is not mounted when launching aksusbd  USB keys cannot be accessed 
53. samples stanford    section   section   total size   read 158 symbols   grmon dsu    tm both      text at 0x40000000    data at 0x4000a0d0   43072 bytes    size 41168 bytes  size 1904 bytes   94 2 kbit s     combined processor AHB tracing                   grmon dsu  gt  break F   Fft Fit fflush free fstat   grmon dsu  gt  break Fft   grmon dsu  gt  watch 0x4000a500   grmon dsu  gt  bre   num address type  1   0x40003608  soft   2   0x4000a500  watch    grmon dsu    run   watchpoint 2 free   0x1c8  0x400042d0    grmon dsu    ah   time address type data trans size bur   239371457 400042c4 read 38800002 3 2 1  239371459 400042c8 read d222a0fc 3 2 T  239371461 400042cc read 15100029 3 2 all  239371463 40004240 read d002a100 3 2 2  239371465 40004244 read 80a24008 3 2 4  239371467 40004248 read 38800002 3 2 1  239371469 400042dc read d222a100 3 2 al  239371472 4000a4fc read 00000000 2 2 0  239371480 4000a4fc write 000005d0 2 2 0  239371481 90000000 read 000055  9 2 2 0   grmon dsu    in  time address instruction r  239371441 40004254 cmp  13   02  239371446 40004258 be 0x400042b4  239371451 4000425c st  00    11   0x4   239371456 40004264 sethi  hi 0x4000a400    02  239371457 40004268 1d   16   0x104    01  239371473 400042bc 1d   02   Oxfc    00  239371475  400042c0 cmp  01   00  239371476 400042c4 bgu a 0x400042cc  239371478 400042c8 st  01    02   Oxfc   239371479 400042cc sethi  hi 0x4000a400    02   grmon dsu    del 2   grmon dsu    break   num address type  1   0x40003608  
54. simif and ioif  This is done by providing the  following 10  init   routine     GAISLER RESEARCH AB      36    GRMON User s Manual    static void io init struct sim interface sif  struct io interface iif        ifdef   CYGWIN32        Do not remove  needed when compiling on Cygwin        simif   sif   ioif   iif   ttendi          additional init code goes here     i     6 4 2 LEON AHB emulation interface    In addition to the above described I O modules  GRMON also allows emulation of the LEON processor core  with a completely user defined memory and I O architecture  By loading an AHB module  ahb so   the internal  memory emulation is disabled  The emulated processor core communicates with the AHB module using an  interface similar to the AHB master interface in proc vhd of the LEON VHDL model  The AHB module can  then emulate the complete AHB bus and all attached units     The AHB module interface is made up of two parts  one that is exported by GRMON and defines GRMON  functions and data structures that can be used by the AHB module  and one that is exported by the AHB mod   ule and allows GRMON to access the emulated AHB devices     At start up  GRMON searches for    ahb so    in the current directory  but the location of the module can be spec   ified using the  ahbm switch  Note that the module must be compiled to be position independent  i e  with the   fPIC switch  gcc      6 4 2 1 procif structure    GRMON exports one structure for AHB emulation  procif  The procif s
55. soft    grmon dsu    cont   breakpoint 1 Fft  0x40003608        32 bytes line  32 bytes line    GRMON User s Manual     8 kbytes total    8 kbytes total     racing    2  refresh 15 6 us    st mst lock resp tt pil irl  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  0 0 0 06 0 0  3 0 0 06 0 0   esult   00000000   00000000   40021a34 00000541    4000a400   00000540   00000000   00000540   00000000   4000a4fc 00000540    4000a400       GAISLER RESEARCH AB     24    GRMON User s Manual    grmon dsu    hi             254992752 4000386c sethi  hi 0x40014400    11  40014400  254992753 ahb read  mst 0  size 2 4000387c 9214a28c  254992755 40003870 sethi  hi 0x4001  800    10  4001f800  254992759 ahb read  mst 0  size 2 40003880 94146198  254992760 40003874 mov 19   iO0 00000013  254992761 ahb read  mst 0  size 2 40003884 961423cc  254992762 40003878 mov 256    00 00000100  254992763 ahb read  mst 0  size 2 40003888 190fec00  254992764 4000387c or  12  0x28c   01 40014e8c  254992765 ahb read  mst 0  size 2 4000388c 7fffff5f  254992766 40003880 or  11  0x198   02 40014598  254992767 ahb read  mst 0  size 2 40003890 9a102000  254992769 ahb read  mst 0  size 2 40003894 b0863fff  254992771 40003884 or  10  0x3cc   03 4001fbcc  254992772 40003888 sethi   hi 0x3fb00000    04  3f  b00000  254992773  4000388c call 0x40003608 4000388c  254992774 40003890 mov 0   05 00000000                grmon dsu    delete 1  grmon dsu    cont   
56. t command to gdb      GRMON translates SPARC traps into  unix  signals which are properly communicated to gdb  If the applica     tion encounters a fatal trap  execution will be stopped exactly before the failing instruction  The target memory  and register values can then be examined in gdb to determine the error cause     4 4 Limitations of gdb interface  For optimal operation  gdb 5 3 configured for grmon should be used  provided with leccs 1 1 5 3 or later    Do not use the gdb where command in parts of an application where traps are disabled  e g trap handlers      Since the stack pointer is not valid at this point  gdb might go into an infinite loop trying to unwind false stack  frames     GAISLER RESEARCH AB     18   GRMON User s Manual    5 The DSU backend    5 1 General    The DSU backend is a debug monitor for the LEON processor debug support unit  It includes the following  functions     e Read write access to all LEON registers and memory     Built in disassembler and trace buffer management     Downloading and execution of LEON applications     Breakpoint and watchpoint management     Remote connection to GNU debugger  gdb    e Auto probing and initialisation of LEON peripherals and memory settings    When referring to GRMON in this section  it implies the simulator backend only     5 2 Operation  5 2 1 Overview    The LEON DSU can be controlled through any AHB master  and the DSU backend supports communications  through the dedicated DSU uart or  if available  a
57. time  simtime     current simulator time     void   event   void   cfunc     int arg  sistime offset      GAISLER RESEARCH AB               33 z  GRMON User   s Manual    void   stop event   void   cfunc          int  irl     interrup request level     void   sys_reset        reset processor     void   sim stop        stop simulation          extern struct sim interface simif    exported simulator functions          The elements in the structure has the following meaning   struct sim_options  options     Contains some simulator startup options  options freq defines the clock frequency of the emulated processor  and can be used to correlate the simulator time to the real time     sistime  simtime     Contains the current simulator time  Time is counted in clock cycles since start of simulation  To calculate the  elapsed real time  divide simtime with options freq     void   event   void   cfunc     int arg  sistime offset      GRMON maintains an event queue to emulate time dependant functions  The event   function inserts an event  in the event queue  An event consists of a function to be called when the event expires  an argument with which  the function is called  and an offset  relative the current time  defining when the event should expire  NOTE   the event   function may NOT be called from a signal handler installed by the I O module  but only from  event   callbacks or at start of simulation     void   stop_event   void   cfunc        stop event   will remove all events
58. to a station     2  Install the License Manager by running Imsetup exe from your GRMON CD and following the instructions  of the installation wizard  As installation type  select Service     To activate the HASP License Manager application  start it from the Start menu or Windows Explorer  The    HASP License Manager application is always active when any protocol is loaded and a HASP4 Net key is con  ected  To deactivate it  select Exit from the main menu     GAISLER RESEARCH AB    iin APPENDIX    A 2  2 On Linux station    Before installing the LM you must install the HASP driver and aksusbd daemon  Follow the installation  instructions in the README file provided in the  linux  directory     If you re using SuSE 7 3 or 8 0  you can install the following SuSE RPM package   rpm  i hasplm suse 8 08 1 i386 rpm  It you re using RedHat 7 2 or 7 3  you can install the following RedHat RPM package   rpm  i hasplm redhat 8 08 1 1386 rpm  It you re running a different Linux distribution  you must install the HASP LM manually   Unpack the archive using  tar  xzf  path  linux hasplm 8_08 tar gz  This will create a  linux hasplm_8_08  directory   Change into this directory and execute as root    dinst    This will install the LM and arrange the system startup scripts so that the LM will automatically start at system  boot     If you have any firewall software installed  please make sure that traffic to from port 475 udp is permitted     Depending on the Linux version you can use the ipf
59. tructure defines a few functions giving  access to the processor emulation and cache behaviour  The procif structure is defined in tsim h     struct proc interface    void   set irl  int level      generate external interrupt       void   cache snoop   uint32 addr    void   cctrl   uint32  data  uint32 read    void   power down         Ji    extern struct proc_interface procif   The elements in the structure have the following meaning   void   set_irl   int level      Set the current interrupt level  iui irl in VHDL model   Allowed values are 0   15  with 0 meaning no pending  interrupt  Once the interrupt level is set  it will remain until it is changed by a new call to set irl    The modules  interrupt callback routine should typically reset the interrupt level to avoid new interrupts     void   cache snoop   uint32 addr      The cache snoop   function emulates the data cache snooping of the processor  The tags to the given address  will be checked  and if a match is detected the corresponding cacheline will be flushed  2 the tag will be  cleared      void   cctrl   uint32  data  uint32 read      GAISLER RESEARCH AB           37        GRMON User   s Manual    Read and write the cache control register  CCR   The CCR is attached to the APB bus in the VHDL model  and  this function can be called by the AHB module to read and write the register  If read   1  the CCR value is    returned in  data  else the value of  data is written to the CCR     void   power_down         Perfo
60. u or  sim is specified  grmon will exit after programming   This feature is only available on linux and grmon has to be executed with root privileges   Thus  if this feature is desired  it is suggested setting the suid bit on the grmon executable  and making root the owner   i e  chown root root grmon  chmod  s grmon   file must be a  valid Xilinx bitfile  Only available on Linux     input files Executable files to be loaded into memory  The input file is loaded into the target memory  according to the entry point for each segment  Recognized formats are elf32 and S record     Each backend also accepts a number of different options  which are described in 5 2 4  page 19  for the DSU  backend and 6 2 1  page 26  for the simulator backend     GAISLER RESEARCH AB    GRMON User s Manual    3 Interactive mode    Here follows a description on how to use grmon in interactive mode  If not mentioned otherwise  the operation  is identical regardless of which backend is used     3 1 Internal commands    GRMON dynamically loads libreadline so if available on your host system  and uses readline   to enter   edit monitor commands  If libreadline so is not found    gets   is used instead  no history  poor editing  capabilities and no tab completion   Below is a description of those commands available on both backends   when used in standalone mode  See appendix B for a more detailed description  including the backend specific    commands    batch execute a batch file of grmon commands  brea
61. using the    watch    command  A watchpoint can only cover one word address  block watch   points are not available     GAISLER RESEARCH AB                 11    GRMON User s Manual    3 4 Displaying registers  The current register window can be displayed using the reg command   grmon dsu    register    INS LOCALS OUTS GLOBALS  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000  00000000 00000000 00000000 00000000    NYHA UO 0 PK Hn co    psr  004010C6 wim  00000001 tbr  40000800 y  00000000    pc  40000800 ta 0x0  npc  40000804 nop    grmon  dsu  gt     Other register windows can be displayed using reg wn  when n denotes the window number  Use the float  command to show the FPU registers  if present      3 5 Symbolic debug information    GRMON will automatically extract   text  symbol information from elf files  The symbols can be used where  an address is expected     grmon dsu    break main  grmon dsu    run   breakpoint 1 main  0x40001ac8   grmon dsu    disassemble strlen 3    40001e4c 808a2003 andcc  00  0x3   g0  40001e50 12800016 bne 0x40001ea8  40001e54 96100008 mov  00   03    grmon dsu       The symbols command can be used to display all symbols  or to read in symbols from an alternate  elf  file     grmon dsu    symbols samples hello  read 71 symbols   grmon dsu
62. using the set irq   callback     6 3 10 Power down mode    The power down register 0x80000018  is implemented as in the specification  A Ctrl C in the simulator win   dow will exit the power down mode  In power down mode  the simulator skips time until the next event in the  event queue  thereby significantly increasing the simulation speed     GAISLER RESEARCH AB    sa  lt   GRMON User s Manual    6 3 11 Memory emulation    The memory configuration registers 1 2 are used to decode the simulated memory  The memory configuration  registers has to be programmed by software to reflect the available memory  and the number and size of the  memory banks  This waitstates fields must also be programmed with the correct configuration after reset     Using the  banks option  it is possible to set over how many ram banks the external ram is divided in  Note that  software compiled with LECCS  and not run through mkprom must not use this option  For mkprom encapsu   lated programs  it is essential that the same ram size and bank number setting is used for both mkprom and  GRMON     6 3 12 SPARC V8 MUL DIV MAC instructions    GRMON supports the SPARC V8 multiply  divide and MAC instruction  To correctly emulate LEON proces   sors which do not implement these instructions  use the  nomac to disable the MAC instruction or  nov8 to  disable multiply and divide instructions     6 4 Loadable modules    6 4 1 The simulator backend I O emulation interface    User defined I O devices can be loade
63. wadm or ipchains utilities to query change the filrewall set   tings     GAISLER RESEARCH    APPENDIX      APPENDIX B  GRMON Command description                                                                                  Command Target Description   ahb  trace_length  dsu Show AHB trace    aprof  011   period  sim enable disable accumulative profiling  No arguments shows  the collected profiling statistics    batch   echo   lt batchfile gt  dsu sim Execute a batch file of grmon commands from  lt batchfile gt    Echo commands if  echo is specified    baud   rate   dsu Change DSU baud rate    break  addr  dsu sim Print breakpoints or add breakpoint if addr is supplied  Text  symbols can be used instead of an address    bt sim Print backtrace    cont dsu sim Continue execution    cp sim Show registers in co processor  if present     dcache dsu sim Show data cache    debug  level  dsu sim Change or show debug level    delete   bp   dsu sim Delete breakpoint  bp     disassemble  addr  cnt   dsu sim Disassemble  cnt  instructions at  addr     echo dsu sim Echo string in monitor window    exit dsu sim Alias for    quit     exits monitor    flash dsu Print the detected flash memory configuration    flash disable dsu Disable writes to flash memory    flash enable dsu Enable writes to flash memory    flash erase  addr lall dsu Erase flash memory blocks    flash lock  addr lall dsu Lock flash memory blocks    flash lockdown  addr lall dsu Lockdown flash memory blocks    flash query
64. x A for installation of  device drivers under Windows and Linux platforms     1 6 Problem reports    Please send problem reports or comments to grmon Ogaisler com     GAISLER RESEARCH AB    GRMON User s Manual    2 Operation    2 1 Overview    GRMON can operate in two modes  standalone and attached to gdb  In standalone mode  LEON applications  can be loaded and debugged using a command line interface  A number of commands are available to examine  data  insert breakpoints and advance execution  etc  When attached to gdb  GRMON acts as a remote gdb tar   get  and applications are loaded and debugged through gdb  or a gdb front end such as DDD or Emacs GUD   mode      2 2 Command line options  GRMON is started as follows on a command line   grmon  options   input files   The following command line options are supported by GRMON      dsu Start grmon in DSU mode   default     sim Start grmon in SIM mode     c file Reads commands from file instead of stdin     i Force a system probe and initialise LEON memory and peripherals settings    ni Do not initialise memory if   i  is set     gdb Listen for gdb connection directly at start up      port gdbport Set the port number for gdb communications  Default is 2222      V Turn on verbose mode   debug 1    VV Turn on extra verbose mode   debug 2    ucmd file Load a user command module   professional only      xburn file Program the Xilinx FPGA using the Xilinx programming pod  parallel cable III IV  in  slave serial mode  If neither  ds
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Whirlpool GJC3054RB00 User's Manual  2002年 JMRC中部ラリーシリーズ戦規定  仕様書 - 奈良先端科学技術大学院大学  OPERATORLS MANUAL - Milford Power Equipment  ProScan PLT1077-G (BT-512-8GB) User's Manual  取 扱 ョ兄 明 日  Bedienungsanleitung - CONRAD Produktinfo.  c廿op.d  Advanced User Guide for Database Extensions  Philips Tornado Spiral energy saving bulb 8718291117025    Copyright © All rights reserved. 
   Failed to retrieve file