throbber
APPENDIX B
`
`BugLite User's Guide
`
`Tools of the Trade
`
`The tool palette, on the left side of the task window, is used to switch modes of operation
`within BugLite. The current active tool is highlighted (inverted). Clicking on a tool will
`make it the current tool. The seven tools (from top to bottom) are shown in this section.
`
`ARROW tool; used to select objects to position them on the screen and
`
`connect objects.
`
`TASK tool; used to create a task.
`
`The task tool creates one task. Clicking anywhere in a task window will
`prompt you for the task name and add the new task to the window. The task
`can be moved around and connected to modules with the arrow tool.
`
`BugLite supports multiple tasks within the task Window.
`
`MODULE tool; used to open a module resource file. The standard file
`selection box will ask for the file to be opened.
`
`The module tool creates one module. Clicking anywhere in a task window
`will prompt you for the module resource file to open, as shown in Figure B-2.
`
`Figure B-2
`
`Open File dialog box
`
`51 EIIJMII Modules V
`
`PlagMunuPl2M.s
`PlagStereuPI2M.s
`PlaI_.|StereuSidSuund.s
`HeI:nrdStereuPI2M.s
`HeI:IJrdStereuSidSuund.s
`sr-3248.5
`srr:B24.s
`
`D TnggleFIelag.s
`
`Normally a module resource file is created using the following steps:
`
`1. Use the MPW editor to create the DSP3210 source code (example: Reve rb . s)
`
`2. Use the d32asm script to build the resource and put it into the source file:
`
`d32 asm Reve rb . s Reve rb . s
`
`Builds resource and puts it back into the source file
`
`INPUT tool; creates an object that provides access to the stereo sound input
`stream. This icon must then be connected to the appropriate input AIAO
`section. The data stream is 3210 floating-point numbers.
`
`Tools of the Trade
`
`Page 451 of 500
`
`429
`
`PUMA EXHIBIT 2005
`
`PART 10 OF 10
`
`Page 451 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`OUTPUT tool; creates an object that provides the ability to sum a signal
`into the stereo output stream. This icon must then be connected to the
`appropriate output AIAO section. The data stream is 3210 floating-
`point numbers.
`
`DISK RECORD tool; used to create a new AIFF disk file that can be
`connected to a FIFO section to store data.
`
`DISK PLAY tool; used to open an existing AIFF file that can be connected to
`a FIFO section for data input.
`
`All objects in the task window have one or more triangular nibs (II-) associated with
`them. Nibs on the right side of an object are considered output and nibs on the left side
`are considered input. Two objects are connected by connecting their nibs with the arrow
`tool. These are the current valid connections:
`
`I Task to module: installs module into task.
`
`I Module to module: installs second module into task.
`
`I Section to section (both sections have same data type and size): allows section data to
`be shared between two modules.
`
`Sound input to AIAO: provides real-time data acquisition from the built-in
`microphone.
`
`AIAO to speaker output: provides real-time data playback to the built-in speaker.
`
`AIAO section to disk object: provides access to data on disk or saving data to disk.
`
`Using BugLite
`
`Before attempting to install a task onto the DSP subsystem each module's specification
`must be reviewed so that correct connections of module sections can be done. BugLite
`does only minimal checking for incompatible buffers.
`
`To make a task, follow these steps:
`
`1. Click anywhere in the task window with the TASK tool.
`The TASK tool will ask for a name for the new task. The name ”test” is used in the
`
`example, as shown in Figure B-3.
`
`Figure B-3
`
`Graphical representation of a task
`
`Using BugLite
`
`Page 452 of 500
`
`Page 452 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`. Select the first module to be loaded.
`
`Figure B-4 shows a file input module ”File In” used for getting data into the DSP data
`stream. The MODULE tool uses the standard file selection dialog box to make the
`selection.
`
`Figure B-4
`
`Graphical representation of a module
`
`Fileln
`
`Pregrannfl
`
`LAIAIII
`
`R.-ill.-5.IZI
`
`Vafiame
`
`Cache
`
`Datafluff
`
`3. Connect the TASK to the MODULE using the ARROW tool.
`Figure B-5 shows a task connected to a module.
`
`Figure B-5
`
`Task connected to a module
`
`Fileln
`
`Pregrmnfl
`
`L.-5.|.-5.III
`
`RAIAIII
`
`Variable
`
`Cache
`
`Datafluff
`
`In this example there is a task called ”test” that was created with the TASK tool. The
`task has one module, ”File In,” connected to it.
`
`Using BugLite
`
`Page 453 of 500
`
`Page 453 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`4. Select the DISK PLAY tool.
`
`The DISK PLAY tool uses the standard file selection dialog box to make the selection.
`
`Figure B-6
`
`Disk play of “funky” file
`
`funkg
`
`In this example there is a data file called ”funky” that is stored on disk. This data is in
`the AIFF data format.
`
`5. Connect the DISK PLAY icon (”funky” file) to the "DataBuff” section using the
`ARROW tool.
`
`Figure B-7
`
`Disk player connected to input buffer
`
`Fileln
`
`F'r'-:-gran':III
`
`LAIAD
`
`RAIAU
`
`'-i-'ar'iai:-ie
`
`Cache
`
`DataEiuff
`
`funku
`
`6. Select the OUTPUT tool and place the icon to the right of the module.
`
`Figure B-8
`
`Speaker connection icon
`
`iii
`
`Using BugLite
`
`Page 454 of 500
`
`Page 454 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`7. Connect the L and R inputs of the OUTPUT icon to the ”LAIAO” and
`”RAIAO”sections respectively using the ARROW tool.
`
`Figure B-9
`
`Data output buffers connected to speakers
`
`Datafluff
`
`funkg
`
`8. Click once on the diamond shaped start button in the ”test” task icon.
`The diamond will change into a blinking square.
`
`Figure B-10
`
`Task with task active indicator
`
`The task has now been loaded into the DSP subsystem and the sounds recorded in the
`”funky” data file will play out of the DSP subsystem audio output.
`
`To disconnect two objects, click in one of the nibs and drag away from it. If the discon-
`nected object is part of a task that is executing, the task is stopped and removed from
`the DSP.
`
`To delete an object from the task window first select it by clicking on it with the arrow
`tool, then press the delete key. If the deleted object is part of a task that is executing, the
`task is stopped and removed from the DSP.
`
`Using BugLite
`
`Page 455 of 500
`
`Page 455 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`Getting Information
`
`In the menu bar under Object is the Get Info selection. This selection provides informa-
`tion about the selected item. Each task, module, and section has specific kinds of data.
`Double-clicking an object will also bring up the object's information window.
`
`Task Info Window
`
`The task info window provides information on
`
`I real-time DSP cycles used in processor clock cycles
`
`I real-time or timeshare mode selection
`
`In Figure B-11 the task ”test” shows zero real-time cycles used, indicating that the task
`has not been run. The task has been set up to be inserted into the real-time task list. This
`will result in it being allocated a guaranteed bandwidth on the DSP.
`
`Figure B-11
`
`Task Get Info window
`
`Info for task: test
`
`Heal-time cycles used:
`
`I]
`
`E Heal—Time
`
`Module Info Window
`
`The module information window provides information on
`
`I Real—time DSP cycles used in processor clock cycles
`
`I Number of DSP frames that have been executed since the module was installed
`
`I Skip count setting for this module
`
`Getting Information
`
`Page 456 of 500
`
`Page 456 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`I Flags for the module: a capital letter means flag is set, a lowercase letter means the
`flag is Clear:
`
`Flag
`d
`
`Meaning
`Demand cache
`
`0
`a
`
`c
`
`On-chip section table
`Use actual GPB
`
`Count this module in GPB calculation
`
`I Buffer scaling for this module, user changeable for configuration testing
`
`In the Get Info window shown in Figure B-12, the real-time cycles used are in DSP clock
`cycles. For this test, the DSP3210 had a frame time of 10 ms and a clock rate of 50 MHz.
`This results in a total of 500,000 DSP cycles per frame. This module used .0127 percent of
`the available DSP bandwidth. The value for real-time cycles used is the maximum cycles
`used in a single frame during a run of 59297 frames.
`
`Figure B-12
`
`Module Get Info window
`
`Info for module:
`
`Fileln
`
`Heal—time cycles used: 6353
`Frames euecuted: 5929?
`
`Skip count:
`
`I]
`
`Flags: dual:
`
`Buffers-::a|ing:
`
`Getting Information
`
`Page 457 of 500
`
`Page 457 of 500
`
`

`
`APPENDIX B
`
`BugLite User's Guide
`
`Section Information
`
`The section information window, shown in Figure B-13, provides information on
`
`I Size of the section in bytes
`
`I Type of section: capital letter means flag is set; lower-case means flag is clear:
`
`Flag
`
`Meaning
`
`1
`
`o
`s
`
`t
`
`Input buffer
`
`Output buffer
`Scalable section
`
`Static section
`
`I Flag settings: capital letter means flag is set; lower-case means flag is clear:
`
`Flag
`1
`
`s
`
`Meaning
`Load section
`
`Save section
`
`Clear section
`
`Save on context switch
`
`Bank A
`
`Bank B
`
`DSP use only (only DSP should modify this memory)
`
`The Get Info window in Figure B-13 can be decoded as
`
`I section size: 960 Bytes
`
`I section type: Not a defined section type
`
`I caching flags: Save section, Clear section, Save on context switch, Load section into
`Bank B, DSP use only
`
`Figure B-13
`
`Section Get Info window
`
`Info for section: LHIHIJ
`
`Size:
`
`960
`
`Bytes
`
`Type:
`
`inst
`
`Flags:
`
`I§C|.I.|flBI]
`
`Getting Information
`
`Page 458 of 500
`
`Page 458 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Snoopy is a powerful, browser/ debugger, in the tradition of SourceBug, for the DSP
`programming environment. Like SourceBug, it provides breakpoint, single stepping, and
`code disassembly capabilities. Unlike SourceBug, it also provides editing capabilities and
`operates on code already installed in the system. Snoopy does not support source-level
`debugging at this time.
`
`This appendix describes how to use the Snoopy debugger.
`
`The section ”Getting Started” tells how to install the Snoopy application and provides
`detailed information about how it works.
`
`”Using Snoopy” provides valuable information about the menu commands and how to
`access additional controls and selections when available. The menu commands are listed
`
`in the order they would most likely be used. When a command invokes a dialog box, the
`selections available in the box are discussed immediately following the command. The
`windows available for displaying more information are detailed in ”Additional
`Information Windows.”
`
`To run Snoopy, you need system software 7.1 or later and at least 128 KB of available
`RAM; preferred size is 768 KB.
`
`Getting Started
`
`This section tells you how to install and launch the Snoopy debugger.
`
`Installation
`
`Snoopy operates as an application running on the Macintosh Quadra 840AV or
`Macintosh Centris 660AV main processor. To use it:
`
`1. Copy the application to your hard drive.
`
`2. Launch Snoopy.
`
`Snoopy can reside anywhere on your hard drive. However, you may find it useful to
`have Snoopy in the same directory as your DSP object code so you don't have to search
`through multiple directories to locate your source or symbol files. See ”Module Menu,”
`later in this appendix, for instructions on loading and removing symbols.
`
`Getting Started
`
`Page 459 of 500
`
`Page 459 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`What You See When You Launch Snoopy
`
`When Snoopy is launched the DSP Control window will show information about the
`built-in DSP. In multiple DSP systems there would be an icon for each processor. To
`select the processor to debug, click on the ICON for the desired processor. Figure C-1
`shows the ICON for the built-in DSP. To show and hide the DSP Control window see
`
`”Windows Menu,” later in this appendix.
`
`Figure C-1
`
`DSP Control window
`
`The Real Time Tasks window, shown in Figure C-2, is the primary display window for
`both code and data display. If there are tasks currently installed on the DSP, they are
`shown in the scrollable lists at the top of the window.
`
`Note
`
`Standard sound automatically installs itself onto the DSP
`to enable the sound functions. 0
`
`Task/Module/Section Lists
`
`At the top of the Real-Time Tasks window are three scrollable lists that contain (from left
`to right) the currently installed tasks, the modules belonging to the currently highlighted
`task, and the sections belonging to the currently highlighted module. This hierarchical
`representation makes navigation through the potentially large number of tasks, modules,
`and sections straightforward and intuitive.
`
`For example, in Figure C-2 there is one task installed in the system named Input. Task
`Input has one module, Input, that has four sections. The section currently being
`displayed in the Data Display window is Program. If you wanted to view the Temp
`section, you would simply click on Temp in the list, and it would appear in the Data
`Display window.
`
`The Data Display Window
`
`The lower half of the Real-Time Tasks window contains the Data Display window. The
`data belonging to the currently selected section is displayed here in the current format.
`See ”Formatting,” later in this appendix, for details.
`
`Getting Started
`
`Page 460 of 500
`
`Page 460 of 500
`
`

`
`A P P E N [)1 X C
`
`Snoopy User's Guide
`
`Figure C-2
`
`Real Time Tasks window
`
`Heal Time Tasks
`
`%|
`
`E
`
`E F'ru:u;|r'.arn
`
`n|:nut
`Preput
`
`Pl
`call
`
`P22 + 0><02FIC
`*P13
`(short) 0><0004
`r~13 (P13)
`0 + P2
`P22 + 0><0310
`*r*4
`P22 + 0><03I34
`*r3
`r4 + 0x0004
`*r'-1
`0x0001
`if'-’.ne) Pl = P1 + F5
`FE! — r*19 + 0><0000
`PEI
`*r'-I5
`nap
`Pl
`
`
`
`
`
`991111|II|IIIIII
`
`2‘";?fers_
`
`Breakpoint
`
`PC indicator
`
`Bl-eakpoint
`column
`
`PC column
`
`I
`I
`Postput
`E
`Dutput
`Dffset Flddress
`I:II:II:II:II:I FF|F|I:I'.-";lI:II:I
`+00004 FF|FIO?904
`+00003 FFIFIO'r‘903
`+00000 FFIFIO'r‘900
`+00010 FFIFIO'r‘910
`+00014 FFIFIO'r‘914
`;*+00013 FFIFIO'r‘913
`+0001|3 FFIFIO'r‘91|3
`5
`+00020 FFIFIO'r‘920
`+00024 FFIFIO'r‘924
`+00023 FF|FIO?923
`+0002|3 FFIFIO'r‘92|3
`+00030 FFIFIO'r‘930
`+00033 FFIFIO'r‘933
`+00034 FFIFIO'r‘934
`+00030 FFIFIO'r‘930
`+00040 FFIFIO'r‘940
`+00044 FFIFIO'r‘944
`+00043 FFIFIO'r‘943
`+00040 FFIFIO?940
`+00050 FFIFIO'r‘950
`Store Address
`
`5
`
`=
`
`-
`
`Duta
`'3EIEEIIZE: 1'.-‘
`90E5031?
`90F4|331'.’
`9Ei9F|02FIC
`90F4FI000
`14200004
`12940000
`30000000
`93050022
`94930310
`90E42000
`94730304
`90E31300
`90E10300
`94240004
`93E30001
`93010335
`94050000
`9CE53000
`30000000
`93010021
`
`0 + F1
`
`Data display window
`
`Run/Store Address Pop-up Menu
`
`The DSP sections have (potentially) two containers; one at the ”storage” address, and the
`other at the ”run” address. The storage address, if there is one, is usually off-chip (in host
`DRAM or local SRAM), while the run address can either be off-chip or on-chip. The Run/
`Store Address pop-up menu, shown in Figure C-3, allows you to select which location
`you wish to view.
`
`Note
`
`Because the DSP operating system is a caching operating system, it is
`difficult, if not impossible, to present cached data in a meaningful way
`while the DSP is running. Consequently, when you switch to a cached
`”Run Address” and the machine is running, a message will appear
`in the Data Display window indicating that the data is unavailable.
`Similarly, if you stop the DSP and attempt to display a cached run
`address that has yet to be cached, a message will appear indicating that
`the section is out of scope. 0
`
`Figure C-3
`
`Run/Store Address pop-up menu
`
`Hun Hddress
`
`v-‘Stare Hddress
`
`Getting Started
`
`Page 461 of 500
`
`Page 461 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`PC Column
`
`The PC (program counter) indicator (an arrow) appears in the PC column, at the
`appropriate offset, indicating where the DSP is stopped in the specified section. Any
`window showing the data where the program counter has stopped will also show the PC
`indicator arrow.
`
`The Breakpoint Column
`
`The breakpoint column, located at the left of the PC column, shows both the current
`breakpoints and the possible breakpoint/ single step locations (called breakpoint
`candidates). Current breakpoints are indicated by a diamond, and breakpoint candidates
`are indicated by gray brackets. Breakpoint restrictions are discussed in detail in ”Setting
`and Clearing Breakpoints,” later in this appendix.
`
`Pane Resizers
`
`As you can see, the Real-Time Tasks window and the other data display windows are
`divided by double lines into panes, each of which is resizable. To resize a pane, simply
`place the cursor on the Pane Resizers, click, drag, and release at the desired point. The
`cursor becomes a pair of opposing arrows as shown in Figure C-4. Resizing allows you
`to optimize your screen's real estate.
`
`Figure C-4
`
`Vertical and horizontal pane resizers
`
`i:Resizer cursor
`
`Using Snoopy
`
`This section explains the use of all Snoopy’s menu items. There are additional controls
`that are accessed using either a double click of the mouse or the Option key and a mouse
`click. These additional controls are explained where appropriate.
`
`Using Snoopy
`
`Page 462 of 500
`
`Page 462 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Menu Bar
`
`There are two standard menus: File and Edit. The other five menus are specific to
`Snoopy, as shown in Figure C-5.
`
`Figure C-5
`
`Menu bar
`
`E File Edit
`
`Find Module Control
`
`Inspect windows
`
`Control Menu
`
`The Control menu has commands for running (Run), stopping (Break), and single
`stepping (Single Step) the DSP. If the DSP is running only the Break command will be
`available, as shown in Figure C-6. In order to View a cached program or data from a
`module, the DSP must be stopped while executing in the module's program section. This
`is done by first using the Break command to halt the DSP, then setting a breakpoint in
`the desired module. Breakpoints are explained in ”Setting and Clearing Breakpoints,”
`later in this appendix.
`
`Figure C-6
`
`Control menu
`
`i File Edit
`
`Find Module Control
`fies;
`Break
`
`Inspect windows
`
`$s's:s_§§§> fiiegz
`
`{Z§<=:<';;' §§§§ §§;'<=:<'§§<;;<;'§:;E~§
`
`After the DSP has been stopped using the Break command, the Run and Single Step
`commands become available, as shown in Figure C-7.
`
`Figure C-7
`
`Control commands after break
`
`i File Edit
`
`Find Module Control
`Hun
`§§;'e<';§<
`
`Inspect windows
`
`Single Step
`
`{I§<a<'ss' §§§§ §§s'<a<'sk;;<s'sr;‘§<>
`
`The Clear All Breakpoints command is available only if the DSP is stopped and there are
`one or more breakpoints set.
`
`Using Snoopy
`
`Page 463 of 500
`
`Page 463 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`Setting and Clearing Breakpoints
`
`To set a breakpoint in a section, move the mouse to the breakpoint column and click in
`any row that has a breakpoint candidate marker. See Figure C-8. (Notice that the cursor
`has changed to the breakpoint cursor.) To remove a breakpoint, simply click the
`breakpoint indicator. To remove all breakpoints use the Control menu's Clear All
`Breakpoints command.
`
`Figure C-8
`
`Setting breakpoints
`
`Breakpoint candidate
`Breakpoint indicator
`
`Note
`
`You cannot set or clear a breakpoint while the DSP is running. 6
`
`Snoopy can also set a breakpoint to the nth occurrence of the instruction. To set a
`multiple breakpoint the breakpoint must already have been set. Use the Option key and
`click the breakpoint indicator to set the number of times the breakpoint instruction is to
`be executed before stopping the DSP. A dialog box will appear allowing you to change
`the pass counter on the specified breakpoint. See Figure C-9. The initial number is
`always one. If the breakpoint counter is set to four then the breakpoint instruction will
`execute three times and stop the DSP on the fourth occurrence of the instruction.
`
`Figure C-9
`
`Setting the breakpoint counter
`
`Break point count:
`
`ml
`
`ll
`
`Breakpoint Restrictions
`
`Because the AT&T DSP3210 is a pipelined device, and because it has minimal provisions
`for debugging, there are restrictions as to Where you can set breakpoints. You can only
`set a breakpoint at a location that has a breakpoint candidate marker.
`
`Using Snoopy
`
`Page 464 of 500
`
`Page 464 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Single Stepping
`
`To step to the next available instruction (not necessarily the next instruction), select
`Single Step from the Control menu.
`
`Note
`
`Single Stepping is implemented using breakpoints (remember, no trace).
`Because of this, Snoopy can only step within a section or DSP operating
`system routine. 9
`
`Inspect Menu
`
`The Inspect menu provides access to additional display windows. These windows are
`available to View real-time tasks, timeshare tasks, DSP operating system routines, the
`EVT, the on—chip SRAM, and the registers. See Figure C-10.
`
`Figure C-10
`
`Inspect menu
`
`i File Edit Find Module Edntrdl
`
`Inspect
`Uiew Real Time Tasks
`éfiéem '§§'§::§? §?s<';;'e E'<';s§<s
`UieLI.I Kernel Hdutines
`UieLI.I ElIT
`UieLI.I l]n Chip SHHM
`Uiew Registers
`
`éfiéssss §€'E§{é€
`
`tins: :25;
`
`Additionally, the Inspect menu has the View Selection As submenu. This menu is used to
`select the different data formats for viewing purposes only. See Figure C-11. Changes
`made in the View Selection As menu do not effect the actual data type. To coerce data
`into another data type see the ”Editing Data” section.
`
`Figure C-11
`
`Data display format menu
`
`SZIIJ EIJIZIE
`
`3210 Fleet [8 per line]
`3210 Heat [1 per line]
`IEEE Float [3 per line]
`IEEE Fldat [I per line]
`J1 Law [3 per line]
`1.1 Law [1 per line]
`H Law [8 per line]
`H Law [I per line]
`Long [8 per line]
`Long [1 per line]
`Short [8 per line]
`Short [1 per line]
`
`Using Snoopy
`
`Page 465 of 500
`
`Page 465 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`Formatting
`
`Data can be displayed in several formats. To change the data format, highlight the
`display lines you wish to change and select a format from the View Selection As menu
`accessed through the Inspect menu. To highlight multiple lines hold down the shift key
`while dragging the mouse.
`
`Editing Data
`
`Editing data is a point-and-click operation. Simply point to the data element you wish
`to edit in the data display window and double-click. The dialog box shown in
`Figure C-12 will appear, allowing you to View and edit the data and the data type.
`
`Figure C-12
`
`Data editing window
`
`Data @FEE1F3?l]
`
`f-2-21-2|:-1'-'1
`
`Note
`
`Data Viewed as type DSP Code cannot be edited. 0
`
`WARNING
`
`DSP Code can be viewed as some other data type and the editor will
`allow it to be changed. Extreme caution should be used when changing
`DSP Code. There are no safeguards to prevent illegal opcodes from
`being entered. This could result in loss of data or code. A
`
`The defined data types that can be selected are shown in Figure C-13. Changes in the
`data type will coerce the data into the new data type. Use the View Selection As menu
`if you only want to View the data in a different format.
`
`Figure C-13
`
`Defined data types
`
`IEEE Float
`1.1 Law
`H Lam
`
`Using Snoopy
`
`Page 466 of 500
`
`Page 466 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Windows Menu
`
`When you launch the Snoopy application, you are presented with the Real-Time Tasks
`window and the Current PC window. As shown in Figure C-14, the Windows menu lists
`all open windows at the bottom of the menu and provides a quick way to bring any
`window to the front. Auto Hide Windows (not implemented) removes the current
`window when a new window is selected. The Windows menu also provides limited
`control over open windows.
`
`Figure C-14 Windows menu
`
`Module Eontrol
`
`Inspect
`
`Update Front window BEU
`Full Titles
`Hide DSP Control
`§§zs§<s §§'s<§<5 i§§'sr;<§<s;;s<>
`
`./Current PE
`Real Time Tasks
`
`When the DSP is running the frontmost window is not automatically updated. The
`Window must be told to update or the data display will show only old data. This can be
`done using the Update Front Window command in the Windows menu. Windows such
`as Registers, Real-Time Tasks, and Timeshare Tasks will not have their data display
`window updated if the DSP is running.
`
`Windows can also be set to show the full title using the Full Titles command. This
`includes information describing the specific DSP chip that the module is running on.
`Also, the DSP Control window can be hidden or displayed from the Windows menu.
`
`Additional Information Windows
`
`This section describes the additional display windows used to provide information
`about other parts of the DSP. The additional windows provide information about the
`inside operation of the DSP. There are five additional windows:
`
`I Current PC
`
`I Kernel Routines
`
`I EVT (Exception Vector Table)
`
`I On-Chip SRAM
`
`I Registers (in the DSP)
`
`Using Snoopy
`
`Page 467 of 500
`
`Page 467 of 500
`
`

`
`It P P E PG I) I X C
`
`Snoopy User’s Guide
`
`Current PC
`
`The Current PC window shows the section or DSP operating system routine that was
`running on the DSP when a break was initiated. This window can only show data when
`the DSP has been stopped. If the DSP has been stopped with no breakpoint set it will
`always stop at External Intone of the DSP operating system routines. Figure C-15
`shows the current program counter when a breakpoint is set in the Standard Sound
`Input Taskzlnput Modu1e:Program Section at address 5 O 0 3E O 2 O. The current PC
`location has been single stepped two times. Notice that the address 5 0 0 3E O 1 4 has no
`breakpoint allowed. It will also be stepped over by the single—step procedure.
`
`Figure C-15
`
`Current PC window
`
`Current PE
`
`Input->|npul->PriJ I ram
`HddFess
`Data
`+00000 5003E000 QDESCB1?
`+00004 5003E004
`90EfiC81?
`+00008 5003E008
`90F4C81?
`+0000C 5003EO0C 95980280
`+00010 5003E010
`9CF4H000
`+00014 5003E014
`14200004
`;
`§j»+00018 5003E018
`12940000
`‘
`+00010 5003E0
`8000000
`flflflzfl
`.
`:
`u
`5:
`iv
`+00024 5003E02
`9 H0310
`+00028 5003E028
`9CE42000
`+0002C 5003E02C 94?H03C4
`+00030 5003E030
`9CE31800
`+00034 5003E034
`94240004
`+00038 5003E038
`9CE10800
`+0003C 5003E03C 9BE30001
`+00040 5003E040
`98010885
`+00044 5003E044
`94050000
`+00048 5003E048
`9CEE3000
`+00040 5003E04C 80000000
`+00050 5003E050
`98010021
`5003E054
`98020025
`I
`-
`..
`
`Run
`
`*sp++
`*sp++
`*sp++
`F18
`F18
`F1 = (shoFt) 0x0004
`call F18 (F18)
`
`9911IIIIIIIIIIII
`
`F22 + 0x0310
`*F4
`F22 + 0x03C4
`*F3
`F4 + 0x0004
`*F1
`0x0001
`iffine) F1 = F1 + F5
`F19 + 0x000C
`
`The DSP Operating System Routines
`
`DSP operating system routines are shown in the Kernel Routines window; simply select
`View Kernel Routines from the Inspect menu. The DSP operating system routines will be
`presented in a browser window similar to the Real-Time Tasks window with the
`exception of the list at the top. This window is shown in Figure C-16. You can mani-
`pulate DSP operating system routines (set breakpoints, single—step, and reformat) the
`same way you manipulate sections.
`
`Using Snoopy
`
`Page 468 of 500
`
`Page 468 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Figure C-16
`
`DSP Operating System Routines window
`
`Kernel Routines
`
`ParseSegrnent
`Pushflegisters
`PopRegisters
`
`Anoni Mouse
`Anoni Mouse
`Anoni Mouse
`
`+00004 5003F87
`+00008 5003F880
`+00000 5003F884
`+00010 5003F888
`+00014 5003F880
`+00018 5003F890
`+00010 5003F894
`+00020 5003F898
`+00024 5003F890
`+00028 5003F880
`+00020 5003F884
`+00080 5003F888
`+00034 5003F880
`+00088 5003F880
`+00030 5003F884
`+00040 5003F888
`+00044 5003F880
`+00048 5003F800
`+00040 5003F804
`+00050 5003F808
`Run Address
`
`48000
`95?80240
`1420FFF8
`12940000
`90E19800
`95980278
`90F48000
`80000000
`12940000
`80000000
`943803F0
`128F0050
`945803E0
`95980254
`90F48000
`98958835
`12940000
`94380300
`98958835
`943803E0
`
`P1? = P22 + 0x0240
`P1 = (short) 0xFFF8
`call P18 (P18)
`*P1? = P1
`P13
`P22 + 0x0278
`P13
`*P13
`hop
`call F13 (F18)
`nap
`P1 = P22 + 0x03F0
`cull pc+0X0050 (P183
`P2 = P22 + 0x03E0
`P18
`P22 + 0X0254
`P13
`*P13
`P19
`P19 - P19
`cull P18 (P18)
`= P22 + 0x0300
`P19 - P19
`P22 + 0x03E0
`
`The EVT
`
`The DSP operating system places system information, such as run—time variables and
`routine addresses in the exception vector table (EVT). To View the EVT window, select
`View EVT from the Inspect menu. The resulting window is shown in Figure C-17.
`
`Figure C-17
`
`EVT window
`
`+00000 00015280
`+00004 00015284
`+00008 00015288
`+00000 00015280
`+00010 00015290
`+00014 00015294
`+00018 00015298
`+00010 00015290
`+00020 00015280
`+00024 00015284
`+00028 00015288
`+00020 00015280
`+00030 00015280
`+00034 00015284
`+00088 00015288
`+00030 00015280
`+00040 00015200
`+00044 00015204
`+00048 00015208
`+00040 00015200
`+00050
`
`00015880
`00000000
`802FO0F0
`90F90000
`802F0108
`90F90000
`00000000
`00000000
`00000000
`00000000
`00000000
`00000000
`00000000
`00000000
`00000000
`00000000
`802FO0F8
`90F90000
`802FO0F0
`90F90000
`00000000
`
`Run
`
`Using Snoopy
`
`Page 469 of 500
`
`Page 469 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`On-Chip SRAM
`
`To View the On-Chip SRAM window, select View On Chip SRAM from the Inspect
`menu. The resulting window is shown in Figure C-18.
`
`E
`
`Figure C-18
`
`On-Chip SRAM window
`
`l]n E|'Ii|J SFIHM
`
`90E5031?
`+00000 5003E000
`90E5C31?
`+00004 5003E004
`90E?C31?
`+00003 5003E003
`+0000C 5003EO0C 90E3C31?
`+00010 5003E010
`90E9C31?
`+00014 5003E014
`90F4C31?
`+00013 5003E013
`94350003
`+00010 5003E010
`90E52300
`+00020 5003E020
`30000000
`+00024 5003E024
`95150004
`+00023 5003E023
`9CE34000
`+0002C 5003E02C 30000000
`+00030 5003E030
`94050003
`+00034 5003E034
`9CE53000
`+00033 5003E033
`30000000
`+0003C 5003E03C 95350010
`+00040 5003E040
`90E94300
`+00044 5003E044
`30000000
`+00043 5003E043
`95930230
`+0004C 5003E04C 9CF4H000
`+00050 5003E050
`14200004
`._.:u:n:u-d
`Run Address
`
`*sp++
`*sp++
`*sp++
`*sp++
`*sp++
`*sp++
`P5 ‘ P19 + 0x000C
`*P5
`
`P19 + 0x0004
`*P3
`
`P19 + 0x0003
`*Pfi
`
`P19 + 0x0010
`*P9
`
`P22 + 0x02HC
`*P13
`P13
`P1 = (Short) 0x0004
`
`When the DSP has been stopped, all sections that are currently in it's cache can be
`viewed in the On-Chip SRAM window. The data displayed is an image of the
`cached code, buffers, tables, and other types of sections. Figure C-19 shows a possible
`SRAM layout.
`
`Figure C-19
`
`Example of SRAM layout
`
`— Unused memory
`
`Code Section
`
`Pexerneier Section
`
`Data Section
`
`Registers
`
`To display the DSP registers, select Show Registers from the Edit menu. The resulting
`window is shown in Figure C-20. Notice that the processor status word is displayed as a
`group of check boxes in the upper right corner.
`
`Using Snoopy
`
`Page 470 of 500
`
`Page 470 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`Figure C-20
`
`Registers window
`
`E Registers
`
`UUZHCVZH
`
`pc sddsreve
`
`fl|:|[E||:||:||:||:||:|
`
`|3|I||I|15EI5S
`r‘-1
`r2 DIZIIZIDIIIIZI44
`P3 ffffEi|I|E||3
`r‘-4 DIZIIZIDIZIIZIEII
`P5 IJEIEIDEIEIEID
`r‘-5 DIZIIZIDIZIIZIEII
`P? |J|ZI|ZI2fT'EI1
`
`r*El DDDDDD23
`r‘-Q ffffffff
`
`r11 5|II|II3fcb|3
`r12 DEIEIDEIEIEII3
`
`r‘-14 ffffe2cIf
`
`r‘-15 DIIIIIIDIIIEIEID
`P15 |J|ZI|ZI15EI?3
`r‘1'r‘ |3|I|14|:I5cEl
`r‘-18 |J|ZI|ZI153ec
`P19 IJEIEIDEIEIEID
`
`P20 5|ZI|ZI3fS?3
`
`sp U|I||I|15n:d4
`r22 DIZIIZIIEZSD
`
`El
`-81650.08
`
`The Registers window displays the contents of all of the DSP registers for the instruction
`at the current PC location. The Registers window is not updated while the DSP is
`running. Manual update of the frontmost window is explained in ”Windows Menu,”
`earlier in this appendix.
`
`Standard Menus
`
`Snoopy uses the two menus that resemble standard Finder menus: File and Edit. The File
`menu is used for opening, closing, and saving files. It uses the standard dialog box for all
`operations. The Edit menu operates like the standard Finder Edit menu.
`
`Find Menu
`
`There are two commands in the Find menu. The Find command is used to locate specific
`strings within the currently selected window. The Find Again command finds
`subsequent occurrences of the specified information. See Figure C-21.
`
`Figure C-21
`
`Find menu
`
`i File Edit
`
`Find Module Edntrdl
`Find
`38F
`
`Inspect windows
`
`iiérzsé §§§<'§%¥§
`
`223%‘;
`
`Using Snoopy
`
`Page 471 of 500
`
`Page 471 of 500
`
`

`
`APPENDIX C
`
`Snoopy User’s Guide
`
`When the Find command is selected the dialog box in Figure C-22 will appear. The Find
`command can locate specific data values that are of a specific data type. If the specified
`value is in the display range of any of the windows, the required window will be
`selected and the address will be shown. The required window does not need to be the
`frontmost Window or even open for the Find operation to select it.
`
`Figure C-22
`
`Find Command dialog box
`
`Find lllhat ?
`
`Lnnk For:
`
`"Eta Tune
`
`(E) Hddress with that Llalue
`D Dffset with that value
`C: Instance with that ualue
`
`Search In
`
`Hll Sections
`
`There are three ways to look for specific locations in the data display. They are:
`
`I look for an address with the specified Value
`
`I look for an offset with the specified value
`
`I look for an instance with the specified value
`
`When trying to locate a specific address location in the Data Display window use the
`Look For Address with that value. When looking for a relative address within the data
`display use the Look For Offset with that Value. To look for a specific data word within
`the data window use the Look For Instance with that Value.
`
`The default data type is a Long Word. This should be used Whenever specifying an offset
`value. When looking for an Instance the data type may also be specified, as shown in
`Figure C-23.
`
`Figure C-23
`
`Find Data Types menu
`
`Shnrt
`Ehar
`32]!) Float
`IEEE Flnat
`1.1 Law
`H Law
`
`Using Snoopy
`
`Page 472 of 500
`
`Page 472 of 500
`
`

`
`APPENDIX C
`
`Snoopy User's Guide
`
`You may also specify the section or sections to be searched, as shown in Figure C-24.
`
`Figure C-24
`
`Search In selection menu
`
`Current Section
`Search In \/H" Sections
`
`If the data with the specified data type

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket