SourcePoint Intel Help
Table of Contents
- Using Help
- Contacting ASSET InterTech
- Introduction to SourcePoint
- SourcePoint Environment
- SourcePoint Overview
- SourcePoint Parent Window Introduction
- SourcePoint Icon Toolbar
- File Menu
- File Menu - Project Menu Item
- File Menu - Layout Menu Item
- File Menu - Program Menu Item
- File Menu - Macro Menu Item
- File Menu - Print Menu Items
- File Menu - Update Emulator Flash Menu Item
- File Menu - Program Target Device Menu Item
- File Menu - Other Menu Items
- Edit Menu
- View Menu
- Processor Menu
- Options Menu
- Options Menu - Preferences Menu Item
- Options Menu - Target Configuration Menu Item
- Options Menu - Load Target Configuration File Menu Item
- Options Menu - Save Target Configuration File Menu Item
- Options Menu - Emulator Configuration Menu Item
- Options Menu - Emulator Connection Menu Item
- Options Menu - Emulator Reset Menu Item
- Options Menu - Confidence Tests Menu Item
- Window Menu
- Help Menu
- How To -- SourcePoint Environment
- Add Emulator Connections
- Configure Custom Macro Icons
- Configure Autoloading Macros
- Display Text on the Icon Toolbar
- Edit Icon Groups to Customize Your Toolbars
- Modify a Defined Memory Region
- Refresh SourcePoint Windows
- Save a Program
- Start SourcePoint With Command Line Arguments
- Use the New Project Wizard
- Verify Emulator Network Connections
- SourcePoint Overview
- Breakpoints Window
- Breakpoints Window Overview
- How To - Breakpoints
- Code Window
- Command Window
- Command Window Overview
- Confidence Tests Window
- Confidence Tests Window Overview
- Descriptors Tables Window
- Descriptors Tables Window Overview
- How To - Descriptors
- Devices Window
- Devices Window Overview
- How To - Devices Window
- Log Window
- Log Window Overview
- Memory Window
- Memory Window Overview
- How To - Memory Window
- Page Translation Window
- Page Translation Windows Overview
- PCI Devices Window
- PCI Devices Window Overview
- How To - PCI Devices Window
- Registers Window
- Registers Window Overview
- How To - Registers
- Symbols Windows
- Symbols Window Overview
- How To - Symbols Window
- Trace Window
- Trace Window Overview
- How To - Trace Window
- Advanced
- Viewpoint Window
- Viewpoint Window Overview
- Watch Window
- Watch Window Overview
- How To - Watch Window
- Technical Notes
- Descriptor Cache: Revealing Hidden Registers
- UEFI Framework Debugging
- Memory Casting
- Microsoft PE Format Support in SourcePoint
- Multi-Clustering
- Python/CScripts
- OpenIPC Integration, Installation and Usage
- Registers Keyword Table
- SourcePoint Licensing
- Stepping
- Symbols Textsym Format
- Target Configuration
- Using Bookmarks
- Which Processor Is Which
- Getting Started with DbC
- SourcePoint Command Language
- Overview
- Commands and Control Variables
- aadump
- abort
- abs
- acos
- advanced
- asin
- asm
- asmmode
- atan
- atan2
- autoconfigure
- base
- bell (beep)
- bits
- break
- breakall
- cachememory
- cause
- Character Functions
- clock
- continue
- cos
- cpubreak commands
- cpuid_eax
- cpuid_ebx
- cpuid_ecx
- cpuid_edx
- createprocess
- cscfg, local_cscfg
- csr
- ctime
- cwd
- dbgbreak commands
- defaultpath
- #define
- define
- definemacro
- deviceconfigure
- devicelist
- devicescan
- disconnect
- displayflag
- do while
- dos
- dport
- drscan
- edit
- editor
- emubreak, emuremove, emudisable, emuenable
- emulatorstate
- encrypt
- error
- eval
- evalprogramsymbol
- execution point ($)
- exit
- exp
- fc
- fclose
- feof
- fgetc
- fgets
- first_jtag_device
- flist
- flush
- fopen
- for
- forward
- fprintf
- fputc
- fputs
- fread
- fseek
- ftell
- fwrite
- getc
- getchar
- getnearestprogramsymbol
- getprogramsymboladdress
- gets
- globalsourcepath
- go
- halt
- help
- homepath
- idcode
- if
- include
- invd
- irscan
- isdebugsymbol
- isem64t
- isprogramsymbol
- isrunning
- issleeping
- issmm
- itpcompatible
- jtagchain
- jtagconfigure
- jtagdeviceadd
- jtagdeviceclear
- jtagdevices
- jtagscan
- jtagtest
- keys
- last
- last_jtag_device
- left
- libcall
- license
- linear
- list, nolist
- load
- loadbreakpoints
- loadlayout
- loadproject
- loadtarget
- loadwatches
- log, nolog
- log10
- loge
- logmessage
- macropath
- Memory Access
- messagebox
- mid
- msgclose
- msgdata
- msgdelete
- msgdr
- msgdump
- msgir
- msgopen
- msgreturndatasize
- msgscan
- msr
- num_activeprocessors
- num_all_devices
- num_devices
- num_jtag_chains
- num_jtag_devices
- num_processors
- num_uncore_devices
- openipc
- pause
- physical
- port
- pow
- print cycles
- printf
- proc
- processorcontrol
- processorfamily
- processormode
- processors
- processortype
- projectpath
- putchar
- puts
- rand
- readsetting
- reconnect
- Register Access
- reload
- reloadproject
- remove
- reset
- restart
- return
- right
- runcontroltype
- safemode
- save
- savebreakpoints
- savelayout
- savewatches
- selectdirectory
- selectfile
- shell
- show
- sin
- sizeof
- sleep
- softbreak, softremove, softdisable, softenable
- sprintf
- sqrt
- srand
- step
- stop
- strcat
- strchr
- strcmp
- strcpy
- _strdate
- string [ ] (index into string)
- strlen
- _strlwr
- strncat
- strncmp
- strncpy
- strpos
- strstr
- _strtime
- strtod
- strtol
- strtoul
- _strupr
- swbreak
- switch
- swremove
- tabs
- tan
- tapdatashift
- tapstateset
- targpower
- targstatus
- taskattach
- taskbreak, taskremove, taskdisable, taskenable
- taskend
- taskgetpid
- taskstart
- tck
- time
- uncoreconfigure
- uncorescan
- #undef
- unload
- unloadproject
- upload
- use
- verify
- verifydeviceconfiguration
- verifyjtagconfiguration
- version
- viewpoint
- vpalias
- wait
- wbinvd
- while
- windowrefresh
- wport
- writesetting
- yield
- yieldflag
Which Processor Is Which
Introduction
SourcePoint orders processors from last to first on the JTAG chain. This follows the order in which the JTAG device ID is shifted out. That is, since the last processor on the JTAG chain outputs its data first, it is considered the first, or P0 processor. The next-to-last processor shifts out its data next and is considered the P1 processor, and so on.
What Does "Last on the Chain, First on the Chain" Mean?
The JTAG chain is a serial data flow from the emulator, through each processor, then back to the emulator (See Figure 1, below). As data is shifted out of the emulator, existing data that are in the processors are shifted back to the emulator. When the data goes back into the emulator, it goes into a buffer, filling the buffer from top to bottom.
Figure 1
As an example, one of the first operations the emulator performs is getting device IDs from all the processors in the JTAG chain (the serial circuit created by connecting all processor together as in the diagram). Nearly all ARM processors have the capability to return a device ID. In their initial state, processors have a 32-bit register that contains the device ID and is attached between TDI and TDO. By shifting the data through the circuit, the device ID for the last processor (P0 in the diagram) is shifted out first and onto the top of the buffer inside the emulator. (The first device ID has been shifted out from the last processor in the circuit, the device ID for the next-to-last processor has been shifted into the last processor and more shifting needs to be done to shift it through and into the emulator into the next available space in the buffer.) At that point, the emulator have the device ID for the last processor first, followed by the next-to-last processor. That is why SourcePoint orders the processors from last to first on the chain.
How Is This Related to the PROCESSORCONTROL Variable in SourcePoint?
The PROCESSORCONTROL variable contains a mask of which processors SourcePoint should control. The mask is actually a bit pattern representing the processors that are on the JTAG chain, the least significant bit representing P0, the next significant bit representing P1, and so on. If a particular bit is 1, then SourcePoint is to control that processor. If 0, then SourcePoint is to ignore that processor. By default, PROCESSORCONTROL has "on" all the bits that correspond to the number of processors. That is to say, if there are two processors in the chain, similar to the diagram above, then PROCESSORCONTROL is 0x03 by default. If there were four processors in the chain, then PROCESSORCONTROL would be 0x0f by default.
By setting off the bits for the corresponding processor, you can make SourcePoint ignore certain processors. For example, in the diagram above, if you only want to control P1, then you can set PROCESSORCONTROL=0x02. Likewise, if you only want to control P0, then you can set PROCESSORCONTROL=0x01.
Using another example where four processor are on the JTAG chain, they are labeled P0, P1, P2 and P3. Similar to the previous two processor examples above, P0 is still be the last one in the chain, P1 is the next to last, P2 the next to next-to-last (or the second) and P3 would be the first in the chain. ย Then, for example, if you wanted only to control P3, you would set PROCESSORCONTROL=0x08. Using the mask, you can control any combination of processors. In the case of, say, four processors in the chain, then to control P0 and P2, you could set PROCESSORCONTROL=0x05.
What Does It Mean to Control More Than One Processor?
When you click on the Go button (or use the Go command) in SourcePoint, all processors that SourcePoint is to control are started. When you click on the Stop button (or use the Halt command), all processors that SourcePoint is to control are stopped. However, the single step command will only single step a single processor.