Difference between revisions of "Unit PlatformRPi"
Line 668: | Line 668: | ||
<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;" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 692: | Line 680: | ||
<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;" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 717: | Line 693: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
− | + | |} | |
− | + | </div></div> | |
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function RPiRegisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Request registration of the supplied handler to the specified interrupt number (Where Applicable)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
− | + | |} | |
− | | | + | </div></div> |
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function RPiDeregisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Request deregistration of the supplied handler from the specified interrupt number (Where Applicable)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 740: | Line 728: | ||
<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;" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 764: | Line 740: | ||
<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;" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 784: | Line 748: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function RPiGetInterruptEntry(Number:LongWord | + | <pre style="border: 0; padding-bottom:0px;">function RPiGetInterruptEntry(Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the interrupt entry for the specified interrupt number</div> | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the interrupt entry for the specified interrupt number and instance</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 844: | Line 808: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function RPiCPUGetMemory(var Address:PtrUInt; var Length: | + | <pre style="border: 0; padding-bottom:0px;">function RPiCPUGetMemory(var Address:PtrUInt; var Length:UInt64):LongWord;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the CPU Memory from the Mailbox property tags channel</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the CPU Memory from the Mailbox property tags channel</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;"> | ||
Line 868: | Line 832: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function RPiGPUGetMemory(var Address:PtrUInt; var Length: | + | <pre style="border: 0; padding-bottom:0px;">function RPiGPUGetMemory(var Address:PtrUInt; var Length:UInt64):LongWord;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the GPU Memory from the Mailbox property tags channel</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the GPU Memory from the Mailbox property tags channel</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;"> | ||
Line 1,648: | Line 1,612: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferGetNumDisplays(var NumDisplays:LongWord):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the number of displays from the Mailbox property tags channel</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;" | ||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,660: | Line 1,624: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferGetDisplayId(DisplayNum:LongWord):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the display id for the specified display number from the Mailbox property tags channel</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 1,672: | Line 1,636: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferSetDisplayNum(DisplayNum:LongWord):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the display number that all framebuffer requests will refer to using the Mailbox property tags channel</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 1,684: | Line 1,648: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferGetDisplaySettings(DisplayNum:LongWord; var DisplaySettings:TDisplaySettings):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the display settings for the specified display number from the Mailbox property tags channel</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 1,696: | Line 1,660: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferDisplayIdToName(DisplayId:LongWord):String;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the name for the specified display id</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;" | ||
|- | |- | ||
− | ! | + | ! Note |
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 1,708: | Line 1,672: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiTouchGetBuffer(var Address:PtrUInt):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the Touchscreen buffer from the Mailbox property tags channel</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 1,719: | Line 1,683: | ||
</div></div> | </div></div> | ||
<br /> | <br /> | ||
− | |||
− | |||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;"> | + | <pre style="border: 0; padding-bottom:0px;">function RPiTouchSetBuffer(Address:PtrUInt):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the Touchscreen buffer in the Mailbox property tags channel</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 1,734: | Line 1,695: | ||
</div></div> | </div></div> | ||
<br /> | <br /> | ||
− | |||
− | |||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiCursorSetDefault:LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set Cursor Default (Pixels) from the Mailbox property tags channel</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;" | ||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
− | + | ||
|- | |- | ||
|} | |} | ||
Line 1,751: | Line 1,708: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiCursorSetInfo(Width,Height,HotspotX,HotspotY:LongWord; Pixels:Pointer; Length:LongWord):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set Cursor Info (Pixels) from the Mailbox property tags channel</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 1,762: | Line 1,719: | ||
</div></div> | </div></div> | ||
<br /> | <br /> | ||
− | |||
− | |||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function RPiCursorSetState(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set Cursor State (Enable, X, Y) from the Mailbox property tags channel</div> |
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Relative | ||
+ | | X, Y is relative to Display (Virtual) not Framebuffer (Physical). | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function RPiDMAGetChannels:LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the available DMA Channels from the Mailbox property tags channel</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;" | ||
|- | |- | ||
! Note | ! Note | ||
− | | | + | | None documented |
− | + | ||
|- | |- | ||
|} | |} | ||
</div></div> | </div></div> | ||
<br /> | <br /> | ||
+ | |||
+ | '''RPi thread functions''' | ||
+ | |||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;"> | + | <pre style="border: 0; padding-bottom:0px;">procedure RPiSchedulerInit;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</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 1,930: | Line 1,898: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferDeviceCommit(Framebuffer:PFramebufferDevice; Address | + | <pre style="border: 0; padding-bottom:0px;">function RPiFramebufferDeviceCommit(Framebuffer:PFramebufferDevice; Address:PtrUInt; Size,Flags:LongWord):LongWord;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</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;"> | ||
Line 2,036: | Line 2,004: | ||
! Note | ! Note | ||
| This currently only works for RPiA+/B+ | | This currently only works for RPiA+/B+ | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure RPiBootConsoleStart;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure RPiBootConsoleWrite(const Value:String);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">procedure RPiBootConsoleWriteEx(const Value:String; X,Y:LongWord);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function RPiBootConsoleGetX:LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function RPiBootConsoleGetY:LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
|- | |- | ||
|} | |} |
Revision as of 04:48, 14 June 2021
Return to Unit Reference
Description
Ultibo Platform interface unit for Raspberry Pi
The RPi A+/B+ have the Power LED connected to GPIO Pin 35 (Activity LED is now on GPIO Pin 47 instead of Pin 16 in model A/B).
Constants
RPI_VCIO_*
RPI_VCIO_ALIAS = BCM2835_VCIO_ALIAS;
|
The VCIO Alias (For ARM Physcial to VC IO translation) |
RPI_VCBUS_*
RPI_VCBUS_ALIAS = BCM2835_VCBUS_4_ALIAS;
|
The currently selected VCBUS Alias (For ARM Physcial to VC Bus translation) (Affected by disable_l2cache setting in config.txt) |
RPI_STARTUP_*
RPI_STARTUP_ADDRESS = $00008000;
|
RPI_PAGE_TABLE_*
RPI_PAGE_TABLE_BASE = $00004000;
|
Place the first level Page Table after the interrupt vectors at 0x00001000 and before the code start at 0x00008000 |
RPI_PAGE_TABLE_SIZE = SIZE_16K;
|
ARM1176 first level Page Table is exactly 16KB in size (4096 32 bit (4 byte) entries) |
RPI_VECTOR_TABLE_*
RPI_VECTOR_TABLE_BASE = $00001000;
|
Place the Interrupt Vector Table at 0x00001000 before the code start at 0x00008000 |
RPI_VECTOR_TABLE_SIZE = SIZE_64;
|
The Interrupt Vector Table is exactly 64 bytes (16 32 bit (4 byte) entries) |
RPI_VECTOR_TABLE_COUNT = 8;
|
The Interrupt Vector Table contains 8 entries on an ARMv6 device |
RPI_CPU_*
RPI_CPU_COUNT = BCM2835_CPU_COUNT;
|
|
RPI_CPU_BOOT = CPU_ID_0;
|
|
RPI_CPU_MASK = CPU_AFFINITY_0;
|
RPI_SWI_*
RPI_SWI_COUNT = 256;
|
Number of available SWI entries |
RPI_KERNEL_*
RPI_KERNEL_NAME = 'kernel.img';
|
|
RPI_KERNEL_CONFIG = 'config.txt';
|
|
RPI_KERNEL_COMMAND = 'cmdline.txt';
|
RPIPLUS_GPIO_PWRLED_*
GPIO Power LED constants GPIO Pin 35 - A+/B+ Only | |
Note: GPIO Pin 35 on the A+/B+ is set on boot to Pull Up/Down Enable which must be cleared before using the pin | |
RPIPLUS_GPIO_PWRLED_GPFSEL = BCM2835_GPFSEL3;
|
GPFSEL register for PWR LED |
RPIPLUS_GPIO_PWRLED_GPSET = BCM2835_GPSET1;
|
GPSET register for PWR LED |
RPIPLUS_GPIO_PWRLED_GPCLR = BCM2835_GPCLR1;
|
GPCLR register for PWR LED |
RPIPLUS_GPIO_PWRLED_GPFSHIFT = 15;
|
GPFSEL register shift for PWR LED |
RPIPLUS_GPIO_PWRLED_GPFMASK = BCM2835_GPFSEL_MASK;
|
GPFSEL register mask for PWR LED |
RPIPLUS_GPIO_PWRLED_GPSHIFT = (35 - 32);
|
GPSET/GPCLR register shift for PWR LED |
RPIPLUS_GPIO_PWRLED_GPMASK = BCM2835_GPSET_MASK;
|
GPSET/GPCLR register mask for PWR LED |
GPIO Pin 35 on A+/B+ | |
See: http://www.raspberrypi.org/forums/viewtopic.php?t=72260 | |
See also for how to control GPPUD etc: http://wiki.osdev.org/Raspberry_Pi_Bare_Bones |
RPI_GPIO_ACTLED_*
GPIO Pin 16 - A/B Only | |
Note: GPIO Pin 47 on the A+/B+ is Pull High instead of Pull Low, to turn on the LED use RPIPLUS_GPIO_ACTLED_GPSET instead of RPIPLUS_GPIO_ACTLED_GPCLR | |
RPI_GPIO_ACTLED_GPFSEL = BCM2835_GPFSEL1;
|
GPFSEL register for ACT LED |
RPI_GPIO_ACTLED_GPSET = BCM2835_GPSET0;
|
GPSET register for ACT LED |
RPI_GPIO_ACTLED_GPCLR = BCM2835_GPCLR0;
|
GPCLR register for ACT LED |
RPI_GPIO_ACTLED_GPFSHIFT = 18;
|
GPFSEL register shift for ACT LED |
RPI_GPIO_ACTLED_GPFMASK = BCM2835_GPFSEL_MASK;
|
GPFSEL register mask for ACT LED |
RPI_GPIO_ACTLED_GPSHIFT = 16;
|
GPSET/GPCLR register shift for ACT LED |
RPI_GPIO_ACTLED_GPMASK = BCM2835_GPSET_MASK;
|
GPSET/GPCLR register mask for ACT LED |
RPIPLUS_GPIO_ACTLED_*
GPIO Pin 47 - A+/B+ Only | |
RPIPLUS_GPIO_ACTLED_GPFSEL = BCM2835_GPFSEL4;
|
GPFSEL register for ACT LED |
RPIPLUS_GPIO_ACTLED_GPSET = BCM2835_GPSET1;
|
GPSET register for ACT LED |
RPIPLUS_GPIO_ACTLED_GPCLR = BCM2835_GPCLR1;
|
GPCLR register for ACT LED |
RPIPLUS_GPIO_ACTLED_GPFSHIFT = 21;
|
GPFSEL register shift for ACT LED |
RPIPLUS_GPIO_ACTLED_GPFMASK = BCM2835_GPFSEL_MASK;
|
GPFSEL register mask for ACT LED |
RPIPLUS_GPIO_ACTLED_GPSHIFT = (47 - 32);
|
GPSET/GPCLR register shift for ACT LED |
RPIPLUS_GPIO_ACTLED_GPMASK = BCM2835_GPSET_MASK;
|
GPSET/GPCLR register mask for ACT LED |
RPI_MAILBOX_*
RPI_MAILBOX_TIMEOUT = 100;
|
Default timeout to wait for mailbox calls to complete (Milliseconds) |
RPI_MAILBOX_TIMEOUT_EX = 1000;
|
Extended timeout to wait for mailbox calls to complete (Milliseconds) |
RPI_FRAMEBUFFER_*
RPI_FRAMEBUFFER_DESCRIPTION = 'BCM2835 Framebuffer';
|
Type definitions
None defined
Public variables
RPi specific Ultibo variables
RPiInitialized:Boolean;
|
Timer variables
TimerRegisters:PBCM2835SystemTimerRegisters;
|
Mailbox variables
Mailbox0Registers:PBCM2835Mailbox0Registers;
|
Mailbox1Registers:PBCM2835Mailbox1Registers;
|
Interrupt variables
InterruptRegisters:PBCM2835InterruptRegisters;
|
InterruptEntries:array[0..(BCM2835_IRQ_COUNT - 1)] of TInterruptEntry;
|
System call
SystemCallEntries:array[0..RPI_SWI_COUNT - 1] of TSystemCallEntry;
|
IRQ/FIQ
IRQEnabled:array[0..2] of LongWord;
|
3 groups of IRQs to Enable/Disable (See: TBCM2835InterruptRegisters) |
FIQEnabled:LongWord;
|
The single IRQ number to Enable as FIQ instead (See: TBCM2835InterruptRegisters) |
Watchdog variables
WatchdogRegisters:PBCM2835PMWatchdogRegisters;
|
Function declarations
Initialization functions
procedure RPiInit;
Note | None documented |
---|
RPi platform functions
procedure RPiBoardInit;
Note | None documented |
---|
procedure RPiMemoryInit;
Note | None documented |
---|
procedure RPiClockInit;
Note | None documented |
---|
procedure RPiPowerInit;
Note | None documented |
---|
procedure RPiMailboxInit;
Note | None documented |
---|
procedure RPiInterruptInit;
Note | None documented |
---|
procedure RPiPeripheralInit;
Note | None documented |
---|
procedure RPiFramebufferInit;
Note | None documented |
---|
procedure RPiPageTableInit;
Note | See page 6-36 of the ARM1176JZF-S Technical Reference Manual |
---|
procedure RPiPowerLEDEnable;
Note | None documented |
---|
procedure RPiPowerLEDOn;
Note | None documented |
---|
procedure RPiPowerLEDOff;
Note | None documented |
---|
procedure RPiActivityLEDEnable;
Note | None documented |
---|
procedure RPiActivityLEDOn;
Note | None documented |
---|
procedure RPiActivityLEDOff;
Note | None documented |
---|
function RPiMailboxReceive(Mailbox,Channel:LongWord):LongWord;
Note | Data = first 28 bits, Channel = last 4 bits |
---|
procedure RPiMailboxSend(Mailbox,Channel,Data:LongWord);
Note | Data = first 28 bits, Channel = last 4 bits |
---|
function RPiMailboxCall(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord;
Note | Data = first 28 bits, Channel = last 4 bits
Data pointer must be 16 byte aligned to allow for the 4 bit channel number |
---|
function RPiMailboxCallEx(Mailbox,Channel,Data:LongWord; var Response:LongWord; Timeout:LongWord):LongWord;
Note | Data = first 28 bits, Channel = last 4 bits
Data pointer must be 16 byte aligned to allow for the 4 bit channel number |
---|
function RPiMailboxPropertyCall(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord):LongWord;
Note | Data = first 28 bits, Channel = last 4 bits
Data pointer must be 16 byte aligned to allow for the 4 bit channel number |
---|
function RPiMailboxPropertyCallEx(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord; Timeout:LongWord):LongWord;
Note | Data = first 28 bits, Channel = last 4 bits
Data pointer must be 16 byte aligned to allow for the 4 bit channel number |
---|
function RPiRequestExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
CPUID | CPU to route IRQ to (Ignored on RPi) |
---|---|
Number | IRQ number to register |
Handler | Interrupt handler function to register |
HandlerEx | Extended Interrupt handler function to register |
Note | Only one of Handler or HandlerEx can be specified |
function RPiReleaseExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Note | None documented |
---|
function RPiRequestExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Note | None documented |
---|
function RPiReleaseExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Note | None documented |
---|
function RPiRegisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;
Note | None documented |
---|
function RPiDeregisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;
Note | None documented |
---|
function RPiRegisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
Note | None documented |
---|
function RPiDeregisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
Note | None documented |
---|
function RPiGetInterruptEntry(Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord;
Note | None documented |
---|
function RPiGetSystemCallEntry(Number:LongWord):TSystemCallEntry;
Note | Get the system call entry for the specified system call number |
---|
function RPiSystemRestart(Delay:LongWord):LongWord;
Note | None documented |
---|
function RPiSystemShutdown(Delay:LongWord):LongWord;
Note | None documented |
---|
function RPiSystemGetCommandLine:String;
Note | None documented |
---|
function RPiCPUGetMemory(var Address:PtrUInt; var Length:UInt64):LongWord;
Note | None documented |
---|
function RPiGPUGetState:LongWord;
Note | None documented |
---|
function RPiGPUGetMemory(var Address:PtrUInt; var Length:UInt64):LongWord;
Note | None documented |
---|
function RPiBoardGetModel:LongWord;
Note | None documented |
---|
function RPiBoardGetSerial:Int64;
Note | None documented |
---|
function RPiBoardGetRevision:LongWord;
Note | None documented |
---|
function RPiBoardGetMACAddress:String;
Note | None documented |
---|
function RPiFirmwareGetRevision:LongWord;
Note | None documented |
---|
function RPiFirmwareGetThrottled:LongWord;
Note | None documented |
---|
function RPiPowerGetWait(PowerId:LongWord):LongWord;
Note | None documented |
---|
function RPiPowerGetState(PowerId:LongWord):LongWord;
Note | None documented |
---|
function RPiPowerSetState(PowerId,State:LongWord; Wait:Boolean):LongWord;
Note | Power Lock not required due to Mailbox Property Call serialization |
---|
function RPiClockGetCount:LongWord;
Note | On the Raspberry Pi this comes from the System Timer free running counter which runs at 1MHz and therefore overflows every 4295 seconds |
---|
function RPiClockGetTotal:Int64;
Note | On the Raspberry Pi this comes from the System Timer free running counter which runs at 1MHz, the clock interrupt also uses this timer to increment the clock every second and therefore keep time. |
---|
function RPiClockGetRate(ClockId:LongWord):LongWord;
Note | None documented |
---|
function RPiClockSetRate(ClockId,Rate:LongWord; Turbo:Boolean):LongWord;
Note | None documented |
---|
function RPiClockGetState(ClockId:LongWord):LongWord;
Note | None documented |
---|
function RPiClockSetState(ClockId,State:LongWord):LongWord;
Note | None documented |
---|
function RPiClockGetMinRate(ClockId:LongWord):LongWord;
Note | None documented |
---|
function RPiClockGetMaxRate(ClockId:LongWord):LongWord;
Note | None documented |
---|
function RPiTurboGetState(TurboId:LongWord):LongWord;
Note | None documented |
---|
function RPiTurboSetState(TurboId,State:LongWord):LongWord;
Note | None documented |
---|
function RPiVoltageGetValue(VoltageId:LongWord):LongWord;
Note | None documented |
---|
function RPiVoltageSetValue(VoltageId,Value:LongWord):LongWord;
Note | None documented |
---|
function RPiVoltageGetMinValue(VoltageId:LongWord):LongWord;
Note | None documented |
---|
function RPiVoltageGetMaxValue(VoltageId:LongWord):LongWord;
Note | None documented |
---|
function RPiTemperatureGetCurrent(TemperatureId:LongWord):LongWord;
Note | None documented |
---|
function RPiTemperatureGetMaximum(TemperatureId:LongWord):LongWord;
Note | None documented |
---|
function RPiGPUMemoryAllocate(Length,Alignment,Flags:LongWord):THandle;
Note | None documented |
---|
function RPiGPUMemoryRelease(Handle:THandle):LongWord;
Note | None documented |
---|
function RPiGPUMemoryLock(Handle:THandle):LongWord;
Note | None documented |
---|
function RPiGPUMemoryUnlock(Handle:THandle):LongWord;
Note | None documented |
---|
function RPiGPUExecuteCode(Address:Pointer; R0,R1,R2,R3,R4,R5:LongWord):LongWord;
Note | None documented |
---|
function RPiDispmanxHandleGet(Resource:THandle):THandle;
Note | None documented |
---|
function RPiEDIDBlockGet(Block:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferAllocate(Alignment:LongWord; var Address,Length:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferRelease:LongWord;
Note | None documented |
---|
function RPiFramebufferSetState(State:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetDimensions(var Width,Height,Top,Bottom,Left,Right:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetPhysical(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetPhysical(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestPhysical(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetVirtual(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetVirtual(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestVirtual(var Width,Height:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetDepth(var Depth:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetDepth(var Depth:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestDepth(var Depth:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetPixelOrder(var Order:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetPixelOrder(var Order:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestPixelOrder(var Order:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetAlphaMode(var Mode:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetAlphaMode(var Mode:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestAlphaMode(var Mode:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetPitch:LongWord;
Note | None documented |
---|
function RPiFramebufferGetOffset(var X,Y:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetOffset(var X,Y:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestOffset(var X,Y:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestOverscan(var Top,Bottom,Left,Right:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetPalette(Buffer:Pointer; Length:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferTestVsync:LongWord;
Note | None documented |
---|
function RPiFramebufferSetVsync:LongWord;
Note | None documented |
---|
function RPiFramebufferSetBacklight(Brightness:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetNumDisplays(var NumDisplays:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetDisplayId(DisplayNum:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferSetDisplayNum(DisplayNum:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferGetDisplaySettings(DisplayNum:LongWord; var DisplaySettings:TDisplaySettings):LongWord;
Note | None documented |
---|
function RPiFramebufferDisplayIdToName(DisplayId:LongWord):String;
Note | None documented |
---|
function RPiTouchGetBuffer(var Address:PtrUInt):LongWord;
Note | None documented |
---|
function RPiTouchSetBuffer(Address:PtrUInt):LongWord;
Note | None documented |
---|
function RPiCursorSetDefault:LongWord;
Note | None documented |
---|
function RPiCursorSetInfo(Width,Height,HotspotX,HotspotY:LongWord; Pixels:Pointer; Length:LongWord):LongWord;
Note | None documented |
---|
function RPiCursorSetState(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord;
Relative | X, Y is relative to Display (Virtual) not Framebuffer (Physical). |
---|
function RPiDMAGetChannels:LongWord;
Note | None documented |
---|
RPi thread functions
procedure RPiSchedulerInit;
Note | None documented |
---|
RPi SWI functions
function RPiDispatchSWI(CPUID:LongWord; Thread:TThreadHandle; Request:PSystemCallRequest):TThreadHandle;
Note | Called by ARMv6SoftwareInterruptHandler in PlatformARMv6
A DataMemoryBarrier is executed before and after calling this function |
---|
RPi clock functions
procedure RPiClockInterrupt(Parameter:Pointer);
Note | This schedules another clock interrupt to occur CLOCK_CYCLES_PER_TICK in the future, then updates ClockTicks and ClockSeconds. |
---|
procedure RPiClockUpdate(Cycles:LongWord; var Last:LongWord);
Cycles | Number of cycles after which the timer interrupt is to be triggered |
---|---|
Note | This refers to native clock cycles as specified by CLOCK_FREQUENCY |
RPi scheduler functions
function RPiSchedulerInterrupt(CPUID:LongWord; Thread:TThreadHandle; Parameter:Pointer):TThreadHandle;
Note | This schedules another scheduler interrupt to occur SCHEDULER_CLOCKS_PER_INTERRUPT in the future, then checks for threads to wakeup and the next thread to schedule. |
---|
procedure RPiSchedulerUpdate(Cycles:LongWord; var Last:LongWord);
Cycles | Number of cycles after which the scheduler interrupt is to be triggered |
---|---|
Note | This refers to native clock cycles as specified by CLOCK_FREQUENCY |
procedure RPiSchedulerSystemCall(Request:PSystemCallRequest);
Note | This is registered to receive requests for the SYSTEM_CALL_CONTEXT_SWITCH and will perform a context switch from within an SWI |
---|
RPi framebuffer functions
function RPiFramebufferDeviceAllocate(Framebuffer:PFramebufferDevice; Properties:PFramebufferProperties):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceAllocateAlt(Framebuffer:PFramebufferDevice; Properties:PFramebufferProperties):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceRelease(Framebuffer:PFramebufferDevice):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceBlank(Framebuffer:PFramebufferDevice; Blank:Boolean):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceCommit(Framebuffer:PFramebufferDevice; Address:PtrUInt; Size,Flags:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceSetBacklight(Framebuffer:PFramebufferDevice; Brightness:LongWord):LongWord;
Note | None documented |
---|
function RPiFramebufferDeviceSetProperties(Framebuffer:PFramebufferDevice; Properties:PFramebufferProperties):LongWord;
Note | None documented |
---|
RPi helper functions
procedure RPiWait; assembler; nostackframe;
Note | None documented |
---|
procedure RPiLongWait; assembler; nostackframe;
Note | None documented |
---|
procedure RPiShortWait; assembler; nostackframe;
Note | None documented |
---|
procedure RPiSlowBlink; assembler; nostackframe;
Note | None documented |
---|
procedure RPiFastBlink; assembler; nostackframe;
Note | None documented |
---|
procedure RPiBootBlink; assembler; nostackframe;
Note | This currently only works for RPiA+/B+ |
---|
procedure RPiBootConsoleStart;
Note | None documented |
---|
procedure RPiBootConsoleWrite(const Value:String);
Note | None documented |
---|
procedure RPiBootConsoleWriteEx(const Value:String; X,Y:LongWord);
Note | None documented |
---|
function RPiBootConsoleGetX:LongWord;
Note | None documented |
---|
function RPiBootConsoleGetY:LongWord;
Note | None documented |
---|
function RPiConvertPowerIdRequest(PowerId:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertPowerStateRequest(PowerState:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertPowerStateResponse(PowerState:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertClockIdRequest(ClockId:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertClockStateRequest(ClockState:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertClockStateResponse(ClockState:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertVoltageIdRequest(VoltageId:LongWord):LongWord;
Note | None documented |
---|
function RPiConvertTemperatureIdRequest(TemperatureId:LongWord):LongWord;
Note | None documented |
---|
Return to Unit Reference