Created
March 3, 2019 09:00
-
-
Save whitequark/4122ccf038bf9e70d6d6fc38796e5900 to your computer and use it in GitHub Desktop.
See __init__.py files in subdirectories of https://github.com/whitequark/Glasgow/tree/master/software/glasgow/applet for details, including specific examples and counterexamples.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
The ``interface`` taxon is the most fundamental and generic applet taxon. It groups applets | |
implementing interfaces that are used for purposes that do not fit into any single other taxon. | |
Because the ``interface`` taxon is so important, the applet names in this taxon are not prefixed | |
with the taxon name. | |
The ``memory`` taxon groups applets implementing interfaces to memory technology devices (volatile | |
and non-volatile) that include no functionality beyond manipulating data. | |
The ``debug`` taxon groups applets implementing interfaces to microprocessor or microcontroller | |
debug functions, such as manipulating memory and core state, and pausing and resuming execution. | |
The differentiating characteristic for this taxon is manipulation of control flow. | |
These applets may provide a higher level interface that can be used with an external debugger, | |
like gdb, or any other appropriate interface. If the debug functions may be used for manipulating | |
non-volatile memories, a different applet would be provided for that under the ``program`` taxon. | |
The ``program`` taxon groups applets implementing interfaces to memory technology devices (volatile | |
and non-volatile) that are directly connected to programmable logic, such as a microcontroller or | |
a gate array. | |
Such memories may be included on the same die, in the same package, on the same board, or in | |
the same assembly as the programmable logic; what is important is that the applet has both memory | |
functionality (i.e. read/write functions) and logic functionality (e.g. as simple as holding | |
the logic in reset while updating the memory, or as complex as encapsulating memory operations | |
in JTAG transactions). | |
The ``control`` taxon groups applets implementing control interfaces, that is, interfaces for | |
changing the volatile or non-volatile state of a device. | |
This taxon is an exclusion taxon, i.e. if a more specific taxon exists, it should be used. For | |
example, ``memory`` and ``program`` applets also change volatile or non-volatile state of a device. | |
The ``sensor`` taxon groups applets implementing interfaces to measurement devices. | |
The differentiating characteristic for this taxon is explicit display of measured data in terms | |
of physical quantities. | |
The ``display`` taxon groups applets implementing display interfaces, that is, interfaces for | |
sending commands to a device that alters its transmittance and/or reflectance in response. | |
Although some devices may receive periodic commands that embed 2d arrays of samples, they are | |
still classified under the ``display`` taxon, unless that is the only possibe mode of operation, | |
in which case the ``video`` taxon is appropriate. | |
The ``audio`` taxon groups applets implementing audio interfaces, that is, interfaces for periodic | |
transfers of 1d arrays of samples of pressure wave properties. | |
The ``video`` taxon groups applets implementing video interfaces, that is, interfaces for periodic | |
transfers of 2d arrays of samples of electromagnetic wave properties. | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment