docs/machine: Add explicit note on machine module level and scope.
It's very low, hardware level, with associated constraints on operations and callbacks.
This commit is contained in:
parent
56e7ebf07a
commit
0aa83142a4
|
@ -10,6 +10,9 @@ defines a baseline operation of executing a callback with a given period
|
||||||
(or once after some delay), and allow specific boards to define more
|
(or once after some delay), and allow specific boards to define more
|
||||||
non-standard behavior (which thus won't be portable to other boards).
|
non-standard behavior (which thus won't be portable to other boards).
|
||||||
|
|
||||||
|
See discussion of :ref:`important constraints <machine_callbacks>` on
|
||||||
|
Timer callbacks.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Memory can't be allocated inside irq handlers (an interrupt) and so
|
Memory can't be allocated inside irq handlers (an interrupt) and so
|
||||||
|
|
|
@ -1,10 +1,23 @@
|
||||||
:mod:`machine` --- functions related to the board
|
:mod:`machine` --- functions related to the hardware
|
||||||
=================================================
|
====================================================
|
||||||
|
|
||||||
.. module:: machine
|
.. module:: machine
|
||||||
:synopsis: functions related to the board
|
:synopsis: functions related to the hardware
|
||||||
|
|
||||||
The ``machine`` module contains specific functions related to the board.
|
The ``machine`` module contains specific functions related to the hardware
|
||||||
|
on a particular board. Most functions in this module allow to achieve direct
|
||||||
|
and unrestricted access to and control of hardware blocks on a system
|
||||||
|
(like CPU, timers, buses, etc.). Used incorrectly, this can lead to
|
||||||
|
malfunction, lockups, crashes of your board, and in extreme cases, hardware
|
||||||
|
damage.
|
||||||
|
|
||||||
|
.. _machine_callbacks:
|
||||||
|
|
||||||
|
A note of callbacks used by functions and class methods of ``machine`` module:
|
||||||
|
all these callbacks should be considered as executing in an interrupt context.
|
||||||
|
This is true for both physical devices with IDs >= 0 and "virtual" devices
|
||||||
|
with negative IDs like -1 (these "virtual" devices are still thin shims on
|
||||||
|
top of real hardware and real hardware intrerrupts). See :ref:`isr_rules`.
|
||||||
|
|
||||||
Reset related functions
|
Reset related functions
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
Loading…
Reference in New Issue