Upload
duane-ramsey
View
227
Download
4
Embed Size (px)
Citation preview
1
ARMSim# and SWIInstructions Plug-in
Group 11:
Brian Knight
Benjamin Moore
Alex Williams
Outline Overview of SWIInstructions Plug-in for
ArmSim# Basic SWI Operations for I/O Stdin/Stdout/Stderr View ArmSim# I/O Examples with SWI
Printing Characters Printing Strings Determining Primes, Reading from Files and Printing to
Files2
SWIInstructions Plug-in Overview Implements Software Interrupt Codes to allow
for common I/O operations
Included in ARMSim# 1.91 Download
Enabled/Disabled via File->Preferences->Plugins->SWIInstructions
Enabled by Default
3
Types of I/O Operations Open/close files
Write characters and strings to Stdout or file
Reading from files and Stdin (Keyboard)
Allocate/deallocate memory on Heap
Interact with other Plug-ins (ex. Embest Board)
4
SWI Codes
5
SWI Codes
6
SWIcodes from 0 to 255 are forArmSim# I/O, codes above 255 are used for interaction with other ArmSim# plugin modules
How SWI Works Not really an exception or a proper interrupt
Enables the user to call routines in supervisor mode
Most ARM systems have a well-defined set of operations accessible through SWI
7
Outline Overview of SWIInstructions Plug-in for
ArmSim# Basic SWI Operations for I/O Stdin/Stdout/Stderr View ArmSim# I/O Examples with SWI
Printing Characters Printing Strings Determining Primes, Reading from Files and Printing to
Files8
Stdin/Stdout/Stderr View Where output from user programs is
displayed
Stdout: Output to file, pipe, or console
Stderr: Output stream for errors
Requests from Stdin freeze ARMSim# until input is received
Input is echoed in Stdin/Stdout/Stderr View9
Stdin/Stdout/Stderr View
10
Example 1 – Printing Characters .equ [symbol], [swi code] makes
code more readable
swi 0x00: Display character stored in R0 to Stdout
swi 0x11: Halt execution
#’[char] uses ASCII value for character like an immediate value
11
Example 2 – Printing Strings swi 0x02: Displays an ASCII
string to Stdout (Address in R0)
String must be null-terminated (.asciz)
ASCII for “Hello World!\n” = 48,65,6C,6C,6F,20,57,6F,72,6C,64,21,0A,00
Little-endian byte address assignment
12
Outline Overview of SWIInstructions Plug-in for
ArmSim# Basic SWI Operations for I/O Stdin/Stdout/Stderr View ArmSim# I/O Examples with SWI
Printing Characters Printing Strings Determining Primes, Reading from Files and Printing
to Files13
Example 3 – Is Prime
14
QUESTIONS?
15
References http://armsim.cs.uvic.ca/index.html
ARMSim_UserGuide4Plus.pdf
ARM system-on-chip architecture, second edition, Steve Furber, Addison Wesley, 2000
16
BACK-UP SLIDES
17
SWI Instructions step by step SVC mode is entered R15 is saved to R14_SVC The IRQ disable bit is set The PC is set to address &00000008, this
address has the instruction which jumps to the real SWI handler
18