-
Notifications
You must be signed in to change notification settings - Fork 0
https://prog5.gricad-pages.univ-grenoble-alpes.fr/Projet/
License
Unknown, GPL-2.0 licenses found
Licenses found
Unknown
License
GPL-2.0
COPYING
aaitguenissaid/Projet_PROG5
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is yet another ARM processor simulator More precisely, this is an ARMv5 instruction set emulator. Thus, it is neither cycle accurate, nor very efficient. It has been designed as a teaching tool, with modular sources and memory/processor transactions trace capabilities. The main program, arm_simulator acts as a gdb server, so a typical use session would look like: ./arm_simulator this starts the simulator which waits for two kinds of incoming connections: - a connection from a gdb client - a connection from the external command used to send irqs to the simulator the simulator prints on the screen the ports numbers on which it listens for these connections. To use the simulator, you must connect to it a gdb client: arm-elf-gdb file Examples/foo (for instance) target remote localhost:<port number given by the simulator> load step break 8 cont ... and so on Debugging messages and traces outputed by the simulator can be chosen at compile-time using compilation flags. Just comment the undesired flags settings in the first lines of Makefile.am, then make clean && make. The simulator sources are organized as follows (<- denotes dependences) : messages : debug and warning messages functions <- nothing memory : memory area management with byte/half/word accesses and per access choosable endianess <- nothing arm_constants : some definitions about arm execution modes <- nothing arm_core : arm state management (registers and memory). Provides access to proper registers and memory depending on cpsr content <- memory, trace, arm_constants trace : trace infrastructure for memory/registers accesses and processor state monitoring. Can be configured using compile-time flags <- arm_core arm_exception : arm exceptions raising module and exception vector provider <- arm_core arm_data_processing : specialized decoding functions for data processing instructions <- messages, arm_core, arm_exception arm_load_store : specialized decoding functions for load and store instructions <- messages, arm_core, arm_exception arm_branch_other : specialized decoding functions for branch and other miscellaneous instructions <- arm_core, arm_exception arm_instruction : arm instruction execution. Does basic decoding (data_proc, load/store, branch, and so on) and call the matching specialized decoder <- arm_core, arm_exception, arm_data_processing, arm_load_store, arm_branch_other gdb_protocol : implementation of gdb remote protocol for arm processor <- messages, trace, arm_core, arm_instruction scanner : scanner for gdb packets <- gdb_protocol arm_simulator : main simulator that acts as a gdb server <- arm_core, memory, gdb_scanner, gdb_protocol send_irq : small command to send exception to a running simulator <- nothing
About
https://prog5.gricad-pages.univ-grenoble-alpes.fr/Projet/
Resources
License
Unknown, GPL-2.0 licenses found
Licenses found
Unknown
License
GPL-2.0
COPYING
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published