Ducky ISA

Ducky ISA

  • Development
  • Running
  • Downloads
  • Contribute
  • Documentation

›DuckyISA Specification

Getting Started

  • Introduction
  • Downloads
  • Contribute

Tools

  • Toolchain
  • libducky

Implementations

  • QEMU
  • "Mallard" Board

Apps

  • Examples
  • Ducky FORTH
  • MicroPython

DuckyISA Specification

  • Terms
  • Registers
  • Memory model
  • Exception Vector Table
  • Instruction Set

Exception Vector Table

Exception Vector Table (EVT) is located in the main memory, and tells core where to find routines necessary for handling exceptional states.

EVT address

Address of EVT is controlled by control register cr1. At the boot, address of EVT is set to 0x00000000.

EVT structure

EVT is 256 bytes - 1 memory page - long, forming an array of 32 entries, each 8 bytes long. Entries are indexed by the exception ID. Lower 16 entries are reserved for interrupts, while upper 16 entries lead to software routines that deal with remaining exception types.

Entry content allows core to find and run a routine to handle the exception:

63                             32 31                             0
 v                              v v                              v
+--------------------------------+--------------------------------+
|             SP                 |               IP               |
+--------------------------------+--------------------------------+
← Memory modelInstruction Set →
  • EVT address
  • EVT structure
Ducky ISA
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHub
Facebook Open Source
Copyright © 2019 Milos Prchlik <happz@happz.cz>