Skip to content
This repository was archived by the owner on Oct 10, 2021. It is now read-only.

Simulateur d’un sous-ensemble du jeu d’instructions ARMv5T

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
License
GPL-2.0
COPYING
Notifications You must be signed in to change notification settings

pH0xe/L3-Info-Simulateur-ARM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simulateur-ARM

Simulateur d’un sous-ensemble du jeu d’instructions ARMv5T

README fournis/ instruction

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: 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

Simulateur d’un sous-ensemble du jeu d’instructions ARMv5T

Resources

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
License
GPL-2.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •