Difference between revisions of "Unit PlatformARM"

From Ultibo.org
Jump to: navigation, search
Line 14: Line 14:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM mode constants ''' <code> ARM_MODE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM mode''' <code> ARM_MODE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 65: Line 65:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM interrupt disable constants''' <code> ARM_I_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM interrupt disable''' <code> ARM_I_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 85: Line 85:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM thumb and jazelle constants ''' <code> ARM_*_BIT </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM thumb and jazelle''' <code> ARM_*_BIT </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 105: Line 105:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM abort constants ''' <code> ARM_A_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM abort''' <code> ARM_A_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 120: Line 120:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM boot tag constants ''' <code> ATAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM boot tag''' <code> ATAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 163: Line 163:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''ARM machine type constants''' <code> ARM_MACHINE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''ARM machine type''' <code> ARM_MACHINE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 546: Line 546:
 
|-
 
|-
 
| <code>ARMInitialized:Boolean;</code>
 
| <code>ARMInitialized:Boolean;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 552: Line 552:
 
|-
 
|-
 
| <code>ARMBootMode:LongWord = 0;</code>
 
| <code>ARMBootMode:LongWord = 0;</code>
| style="width: 65%;"|The ARM Mode that the processor was in at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
+
| style="width: 40%;"|The ARM Mode that the processor was in at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
 
|-
 
|-
 
|}
 
|}
Line 558: Line 558:
 
|-
 
|-
 
| <code>ARMBootVectors:LongWord = 0;</code>
 
| <code>ARMBootVectors:LongWord = 0;</code>
| style="width: 65%;"|The Vector Base Address that was current at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
+
| style="width: 40%;"|The Vector Base Address that was current at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
 
|-
 
|-
 
|}
 
|}
Line 564: Line 564:
 
|-
 
|-
 
| <code>ARMTagsAddress:LongWord = ARMTAGS_INITIAL;</code>
 
| <code>ARMTagsAddress:LongWord = ARMTAGS_INITIAL;</code>
| style="width: 65%;"|Pointer to the ARM TAGS provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
+
| style="width: 40%;"|Pointer to the ARM TAGS provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
 
|-
 
|-
 
|}
 
|}
Line 570: Line 570:
 
|-
 
|-
 
| <code>ARMMachineType:LongWord = 0;</code>
 
| <code>ARMMachineType:LongWord = 0;</code>
| style="width: 65%;"|ARM Machine Type provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
+
| style="width: 40%;"|ARM Machine Type provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
 
|-
 
|-
 
|}
 
|}
Line 579: Line 579:
 
|-
 
|-
 
| <code>ARMTagsCount:LongWord;</code>
 
| <code>ARMTagsCount:LongWord;</code>
| style="width: 65%;"|Number of ARM Tags found during parse
+
| style="width: 40%;"|Number of ARM Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 588: Line 588:
 
|-
 
|-
 
| <code>TagNoneCount:LongWord;</code>
 
| <code>TagNoneCount:LongWord;</code>
| style="width: 65%;"|Number of ARM NONE Tags found during parse
+
| style="width: 40%;"|Number of ARM NONE Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 597: Line 597:
 
|-
 
|-
 
| <code>TagCoreCount:LongWord;</code>
 
| <code>TagCoreCount:LongWord;</code>
| style="width: 65%;"|Number of ARM CORE Tags found during parse
+
| style="width: 40%;"|Number of ARM CORE Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 603: Line 603:
 
|-
 
|-
 
| <code>TagCoreFlags:LongWord;</code>
 
| <code>TagCoreFlags:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 609: Line 609:
 
|-
 
|-
 
| <code>TagCorePageSize:LongWord;</code>
 
| <code>TagCorePageSize:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 615: Line 615:
 
|-
 
|-
 
| <code>TagCoreRootDevice:LongWord;</code>
 
| <code>TagCoreRootDevice:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 624: Line 624:
 
|-
 
|-
 
| <code>TagMemoryCount:LongWord;</code>
 
| <code>TagMemoryCount:LongWord;</code>
| style="width: 65%;"|Number of ARM MEM Tags found during parse
+
| style="width: 40%;"|Number of ARM MEM Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 630: Line 630:
 
|-
 
|-
 
| <code>TagMemorySize:LongWord;</code>
 
| <code>TagMemorySize:LongWord;</code>
| style="width: 65%;"|Size of the last block reported by ARM Tags
+
| style="width: 40%;"|Size of the last block reported by ARM Tags
 
|-
 
|-
 
|}
 
|}
Line 636: Line 636:
 
|-
 
|-
 
| <code>TagMemoryStart:LongWord;</code>
 
| <code>TagMemoryStart:LongWord;</code>
| style="width: 65%;"|Start of the last block reported by ARM Tags
+
| style="width: 40%;"|Start of the last block reported by ARM Tags
 
|-
 
|-
 
|}
 
|}
Line 642: Line 642:
 
|-
 
|-
 
| <code>TagMemoryLength:LongWord;</code>
 
| <code>TagMemoryLength:LongWord;</code>
| style="width: 65%;"|Adjusted Size of the last block reported by ARM Tags
+
| style="width: 40%;"|Adjusted Size of the last block reported by ARM Tags
 
|-
 
|-
 
|}
 
|}
Line 648: Line 648:
 
|-
 
|-
 
| <code>TagMemoryAddress:LongWord;</code>
 
| <code>TagMemoryAddress:LongWord;</code>
| style="width: 65%;"|Adjusted Address of the last block reported by ARM Tags
+
| style="width: 40%;"|Adjusted Address of the last block reported by ARM Tags
 
|-
 
|-
 
|}
 
|}
Line 657: Line 657:
 
|-
 
|-
 
| <code>TagVideoTextCount:LongWord;</code>
 
| <code>TagVideoTextCount:LongWord;</code>
| style="width: 65%;"|Number of ARM VIDEOTEXT Tags found during parse
+
| style="width: 40%;"|Number of ARM VIDEOTEXT Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 666: Line 666:
 
|-
 
|-
 
| <code>TagRamdiskCount:LongWord;</code>
 
| <code>TagRamdiskCount:LongWord;</code>
| style="width: 65%;"|Number of ARM RAMDISK Tags found during parse
+
| style="width: 40%;"|Number of ARM RAMDISK Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 675: Line 675:
 
|-
 
|-
 
| <code>TagInitRd2Count:LongWord;</code>
 
| <code>TagInitRd2Count:LongWord;</code>
| style="width: 65%;"|Number of ARM INITRD2 Tags found during parse
+
| style="width: 40%;"|Number of ARM INITRD2 Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 684: Line 684:
 
|-
 
|-
 
| <code>TagSerialCount:LongWord;</code>
 
| <code>TagSerialCount:LongWord;</code>
| style="width: 65%;"|Number of ARM SERIAL Tags found during parse
+
| style="width: 40%;"|Number of ARM SERIAL Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 690: Line 690:
 
|-
 
|-
 
| <code>TagSerialNoLow:LongWord;</code>
 
| <code>TagSerialNoLow:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 696: Line 696:
 
|-
 
|-
 
| <code>TagSerialNoHigh:LongWord;</code>
 
| <code>TagSerialNoHigh:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 705: Line 705:
 
|-
 
|-
 
| <code>TagRevisionCount:LongWord;</code>
 
| <code>TagRevisionCount:LongWord;</code>
| style="width: 65%;"|Number of ARM REVISION Tags found during parse
+
| style="width: 40%;"|Number of ARM REVISION Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 711: Line 711:
 
|-
 
|-
 
| <code>TagRevisionNo:LongWord;</code>
 
| <code>TagRevisionNo:LongWord;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 720: Line 720:
 
|-
 
|-
 
| <code>TagVideoFBCount:LongWord;</code>
 
| <code>TagVideoFBCount:LongWord;</code>
| style="width: 65%;"|Number of ARM VIDEOLFB Tags found during parse
+
| style="width: 40%;"|Number of ARM VIDEOLFB Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 729: Line 729:
 
|-
 
|-
 
| <code>TagCmdCount:LongWord;</code>
 
| <code>TagCmdCount:LongWord;</code>
| style="width: 65%;"|Number of ARM CMDLINE Tags found during parse
+
| style="width: 40%;"|Number of ARM CMDLINE Tags found during parse
 
|-
 
|-
 
|}
 
|}
Line 735: Line 735:
 
|-
 
|-
 
| <code>TagCommandSize:LongWord;</code>
 
| <code>TagCommandSize:LongWord;</code>
| style="width: 65%;"|Length of the command line in characters (Including null terminator)
+
| style="width: 40%;"|Length of the command line in characters (Including null terminator)
 
|-
 
|-
 
|}
 
|}
Line 741: Line 741:
 
|-
 
|-
 
| <code>TagCommandCount:LongInt;</code>
 
| <code>TagCommandCount:LongInt;</code>
| style="width: 65%;"|Count of parameters (space delimited) in the command line
+
| style="width: 40%;"|Count of parameters (space delimited) in the command line
 
|-
 
|-
 
|}
 
|}
Line 747: Line 747:
 
|-
 
|-
 
| <code>TagCommandAddress:PChar;</code>
 
| <code>TagCommandAddress:PChar;</code>
| style="width: 65%;"|Pointer to the start of the command line
+
| style="width: 40%;"|Pointer to the start of the command line
 
|-
 
|-
 
|}
 
|}
Line 756: Line 756:
 
|-
 
|-
 
| <code>ARMWaitHandler:TARMWait;</code>
 
| <code>ARMWaitHandler:TARMWait;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 762: Line 762:
 
|-
 
|-
 
| <code>ARMLongWaitHandler:TARMLongWait;</code>
 
| <code>ARMLongWaitHandler:TARMLongWait;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 768: Line 768:
 
|-
 
|-
 
| <code>ARMShortWaitHandler:TARMShortWait;</code>
 
| <code>ARMShortWaitHandler:TARMShortWait;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 777: Line 777:
 
|-
 
|-
 
| <code>ARMSlowBlinkHandler:TARMSlowBlink;</code>
 
| <code>ARMSlowBlinkHandler:TARMSlowBlink;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 783: Line 783:
 
|-
 
|-
 
| <code>ARMFastBlinkHandler:TARMFastBlink;</code>
 
| <code>ARMFastBlinkHandler:TARMFastBlink;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}

Revision as of 03:11, 27 March 2017

Return to Unit Reference


Description


Ultibo Platform interface unit for ARM

To be documented

Constants



[Expand]
ARM mode ARM_MODE_*


[Expand]
ARM interrupt disable ARM_I_*


[Expand]
ARM thumb and jazelle ARM_*_BIT


[Expand]
ARM abort ARM_A_*


[Expand]
ARM boot tag ATAG_*


[Expand]
ARM machine type ARM_MACHINE_*


Type definitions



ARM boot tag header

[Expand]

PARMTagHeader = ^TARMTagHeader;

TARMTagHeader = record

ARM tag core

[Expand]

PARMTagCore = ^TARMTagCore;

TARMTagCore = record

ARM tag memory

[Expand]

PARMTagMemory = ^TARMTagMemory;

TARMTagMemory = record

ARM tag video text

[Expand]

PARMTagVideoText = ^TARMTagVideoText;

TARMTagVideoText = record

ARM tag ramdisk

[Expand]

PARMTagRamdisk = ^TARMTagRamdisk;

TARMTagRamdisk = record

ARM tag init ramdisk

[Expand]

PARMTagInitRd2 = ^TARMTagInitRd2;

TARMTagInitRd2 = record

ARM tag serial

[Expand]

PARMTagSerial = ^TARMTagSerial;

TARMTagSerial = record

ARM tag revision

[Expand]

PARMTagRevision = ^TARMTagRevision;

TARMTagRevision = record

ARM tag video framebuffer

[Expand]

PARMTagVideoFB = ^TARMTagVideoFB;

TARMTagVideoFB = record

ARM tag command

[Expand]

PARMTagCommand = ^TARMTagCommand;

TARMTagCommand = record

ARM boot tag

[Expand]

PARMTag = ^TARMTag;

TARMTag = record

ARM wait

TARMWait = procedure;

ARM long wait

TARMLongWait = procedure;

ARM short wait

TARMShortWait = procedure;

ARM slow blink

TARMSlowBlink = procedure;

ARM fast blink

TARMFastBlink = procedure;


Public variables



ARM specific variables

ARMInitialized:Boolean;
ARMBootMode:LongWord = 0; The ARM Mode that the processor was in at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
ARMBootVectors:LongWord = 0; The Vector Base Address that was current at boot time (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
ARMTagsAddress:LongWord = ARMTAGS_INITIAL; Pointer to the ARM TAGS provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss
ARMMachineType:LongWord = 0; ARM Machine Type provided by the bootloader at startup (Set by Startup). Must be initialized to remain in .data or else rewritten to zero with .bss

ARM tags variables

ARMTagsCount:LongWord; Number of ARM Tags found during parse

Tag none variables

TagNoneCount:LongWord; Number of ARM NONE Tags found during parse

Tag core variables

TagCoreCount:LongWord; Number of ARM CORE Tags found during parse
TagCoreFlags:LongWord;
TagCorePageSize:LongWord;
TagCoreRootDevice:LongWord;

Tag memory variables

TagMemoryCount:LongWord; Number of ARM MEM Tags found during parse
TagMemorySize:LongWord; Size of the last block reported by ARM Tags
TagMemoryStart:LongWord; Start of the last block reported by ARM Tags
TagMemoryLength:LongWord; Adjusted Size of the last block reported by ARM Tags
TagMemoryAddress:LongWord; Adjusted Address of the last block reported by ARM Tags

Tag video text variables

TagVideoTextCount:LongWord; Number of ARM VIDEOTEXT Tags found during parse

Tag ramdisk variables

TagRamdiskCount:LongWord; Number of ARM RAMDISK Tags found during parse

Tag Init RD2 variables

TagInitRd2Count:LongWord; Number of ARM INITRD2 Tags found during parse

Tag serial variables

TagSerialCount:LongWord; Number of ARM SERIAL Tags found during parse
TagSerialNoLow:LongWord;
TagSerialNoHigh:LongWord;

Tag revision variables

TagRevisionCount:LongWord; Number of ARM REVISION Tags found during parse
TagRevisionNo:LongWord;

Tag video FB variables

TagVideoFBCount:LongWord; Number of ARM VIDEOLFB Tags found during parse

Tag command variables

TagCmdCount:LongWord; Number of ARM CMDLINE Tags found during parse
TagCommandSize:LongWord; Length of the command line in characters (Including null terminator)
TagCommandCount:LongInt; Count of parameters (space delimited) in the command line
TagCommandAddress:PChar; Pointer to the start of the command line

Wait handlers

ARMWaitHandler:TARMWait;
ARMLongWaitHandler:TARMLongWait;
ARMShortWaitHandler:TARMShortWait;

Blink handlers

ARMSlowBlinkHandler:TARMSlowBlink;
ARMFastBlinkHandler:TARMFastBlink;


Function declarations



Initialization functions

[Expand]
procedure ARMInit;
Description: To be documented


ARM platform functions

[Expand]
procedure ARMParseBootTags;
Description: Extract some information from the ARM boot tag list and use it to load the memory manager, some other information is stored in variables for future use


[Expand]
procedure ARMParseCommandLine;
Description: Setup argc, argv and cmdline and process known command line options


[Expand]
procedure ARMParseEnvironment;
Description: Setup envp and process known environment options


[Expand]
function ARMGetSP:PtrUInt; assembler; nostackframe;
Description: Get the current stack pointer (SP)


[Expand]
function ARMGetPC:PtrUInt; assembler; nostackframe;
Description: Get the current program counter (PC)


[Expand]
function ARMGetIRQ:Boolean; assembler; nostackframe;
Description: Get Interrupts (IRQ) state


[Expand]
procedure ARMEnableIRQ; assembler; nostackframe;
Description: Enable Interrupts (IRQ) unconditionally


[Expand]
procedure ARMDisableIRQ; assembler; nostackframe;
Description: Disable Interrupts (IRQ) unconditionally


[Expand]
function ARMSaveIRQ:TIRQMask; assembler; nostackframe;
Description: Disable Interrupts (IRQ) and return the previous state


[Expand]
function ARMRestoreIRQ(IRQMask:TIRQMask):TIRQMask; assembler; nostackframe;
Description: Restore Interrupts (IRQ) to a previous state


[Expand]
function ARMGetFIQ:Boolean; assembler; nostackframe;
Description: Get Fast Interrupts (FIQ) state


[Expand]
procedure ARMEnableFIQ; assembler; nostackframe;
Description: Enable Fast Interrupts (FIQ) unconditionally


[Expand]
procedure ARMDisableFIQ; assembler; nostackframe;
Description: Disable Fast Interrupts (FIQ) unconditionally


[Expand]
function ARMSaveFIQ:TFIQMask; assembler; nostackframe;
Description: Disable Fast Interrupts (FIQ) and return the previous state


[Expand]
function ARMRestoreFIQ(FIQMask:TFIQMask):TFIQMask; assembler; nostackframe;
Description: Restore Fast Interrupts (FIQ) to a previous state


[Expand]
procedure ARMEnableIRQFIQ; assembler; nostackframe;
Description: Enable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally


[Expand]
procedure ARMDisableIRQFIQ; assembler; nostackframe;
Description: Disable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally


[Expand]
function ARMSaveIRQFIQ:TIRQFIQMask; assembler; nostackframe;
Description: Disable Interrupts and Fast Interrupts (IRQ/FIQ) and return the previous state


[Expand]
function ARMRestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; assembler; nostackframe;
Description: Restore Interrupts and Fast Interrupts (IRQ/FIQ) to a previous state


[Expand]
function ARMGetAbort:Boolean; assembler; nostackframe;
Description: Get Abort state


[Expand]
procedure ARMEnableAbort; assembler; nostackframe;
Description: Enable Aborts unconditionally


[Expand]
procedure ARMDisableAbort; assembler; nostackframe;
Description: Disable Aborts unconditionally


[Expand]
function ARMSaveAbort:TAbortMask; assembler; nostackframe;
Description: Disable Aborts and return the previous state


[Expand]
function ARMRestoreAbort(AbortMask:TAbortMask):TAbortMask; assembler; nostackframe;
Description: Restore Aborts to a previous state


ARM helper functions

[Expand]
procedure ARMWait; inline;
Description: To be documented


[Expand]
procedure ARMLongWait; inline;
Description: To be documented


[Expand]
procedure ARMShortWait; inline;
Description: To be documented


[Expand]
procedure ARMSlowBlink; inline;
Description: To be documented


[Expand]
procedure ARMFastBlink; inline;
Description: To be documented


[Expand]
function ARMModeToString(ARMMode:LongWord):String;
Description: To be documented


Return to Unit Reference