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.
Download ReportTranscript 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.
ARMSim# and SWIInstructions Plug-in Group 11: Brian Knight Benjamin Moore Alex Williams 1 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 Files 2 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 SWIcodes from 0 to 255 are forArmSim# I/O, codes above 255 are used for interaction with other ArmSim# plugin modules 6 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 Files 8 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 View 9 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 Files 13 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