Coder Social home page Coder Social logo

lukefahr / m-ulator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lab11/m-ulator

0.0 1.0 0.0 6.06 MB

A highly extensible ARM {e,si}mulator

License: GNU General Public License v3.0

Python 4.50% TeX 1.19% Makefile 0.85% Shell 0.02% Assembly 12.26% C 78.46% C++ 0.25% Verilog 0.65% Perl 1.81%

m-ulator's Introduction

         MMM       MMM
         MMM       MMM
          M M     M M
          M  M   M  M
          M   M M   M
         MMM   M   MMM
  {e/si} MMM       MMM ulator

Build Status

M-ulator

This project is a highly extensible {ARM} {e,si}mulator. It is capable of both simple simulation of various ARM cores (currently M0, M3) or in-circuit emulation (currently the Michigan Micro Mote platform)

In addition, this project is used as a teaching tool for embedded systems courses (currently at University of Michigan and University of Utah), both to understand internal core design and higher-level MCU usage.


Project Layout

  • The simulator/ directory contains the code to simulate a processor. The simulator is built using tup, a make replacement. For details, please see simulator/README.build and the tup homepage: http://gittup.org/tup/ Core selection is achieved using tup variants. By default, a pipelined version of every supported core is created, see the simulator/configs/ directory for other options.

    • The simulator is licensed under the GPLv3
  • The platforms directory contains additional support for the various cores. In particular, it contains software desgined to run on each of the unique cores supported by the simulator. In addition, the M3 platform contains some tools for programming M3 chips and in-circuit emulation.

    • The platforms are licensed under the MIT/XWin license
  • The docs/ directories hold the course materials and some amount of dated information on the simulator design. It is not particularly useful currently

    • Documentation, course materials licensed under the MIT/Xwin license

Known Issues

  • There is little documentation currently available. Hopefully things are mostly intuitive / have good error messages. Github issues are appreciated if there are any particular pain points that need addressing.
  • Interrupts may be unreliable -- the code path is not heavily tested, though no known bugs currently exist.
  • Course documentation is out of date, does not reflect current projects
    • Or even all of the original projects for that matter

Future Features / Goals

  • General clean-up of configuration options
  • Larger / more interesting peripheral library
  • Better gdb / recovery semantics
    • This likely correlates with BusFault-style work
    • This is why there is a temporary imbalance in memory semantics, supporting the try_read_byte function for gdb

m-ulator's People

Contributors

ppannuto avatar bpkempke avatar lukefahr avatar zhiyoong avatar liziyun avatar bradjc avatar yejoong avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.