Elara Spacecraft
Source code & API documentation for Elara spacecraft system computers
Loading...
Searching...
No Matches
pl011.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "mem_tools.hpp"
4#include "types.hpp"
5
10typedef enum
11{
12 // The base address for UART.
13 UART0_BASE = 0x4000C000,
14
15 UART0_DR = (UART0_BASE + 0x00),
17 UART0_FR = (UART0_BASE + 0x18),
22 UART0_CR = (UART0_BASE + 0x30),
34
35// Character output
41void pl011_putc(unsigned char msg);
42
48void pl011_puts(const char* msg);
49
55inline void print(const char* msg) { pl011_puts(msg); }
56
62inline void println(const char* msg) { pl011_puts(msg); pl011_puts("\r\n"); }
63
69char pl011_getc();
70
75void pl011_init();
76
82void hexstring(unsigned int num);
83
90void binary(unsigned long long num, unsigned int linebreak = 8);
91
98static void printx(const char* msg, uint32_t num)
99{
100 print(msg);
101 hexstring(num);
102 println("");
103}
104
105
void println(const char *msg)
Outputs a \0 terminated string with a new line.
Definition pl011.hpp:62
void print(const char *msg)
Alias for pl011_puts(const char* msg)
Definition pl011.hpp:55
void binary(unsigned long long num, unsigned int linebreak=8)
Converts d into a binary string and outputs it.
Definition pl011.cpp:35
void hexstring(unsigned int num)
Converts num into a hexadecimal string and outputs it.
Definition pl011.cpp:20
void pl011_puts(const char *msg)
Outputs a \0 terminated string.
Definition pl011.cpp:63
PL011_REGISTER
Register offsets for the PL011 Register.
Definition pl011.hpp:11
@ UART0_IBRD
Definition pl011.hpp:19
@ UART0_FR
Definition pl011.hpp:17
@ UART0_IFLS
Definition pl011.hpp:23
@ UART0_DR
Definition pl011.hpp:15
@ UART0_ICR
Definition pl011.hpp:27
@ UART0_ITIP
Definition pl011.hpp:30
@ UART0_BASE
Definition pl011.hpp:13
@ UART0_ITCR
Definition pl011.hpp:29
@ UART0_FBRD
Definition pl011.hpp:20
@ UART0_TDR
Definition pl011.hpp:32
@ UART0_LCRH
Definition pl011.hpp:21
@ UART0_CR
Definition pl011.hpp:22
@ UART0_IMSC
Definition pl011.hpp:24
@ UART0_RIS
Definition pl011.hpp:25
@ UART0_ITOP
Definition pl011.hpp:31
@ UART0_DMACR
Definition pl011.hpp:28
@ UART0_ILPR
Definition pl011.hpp:18
@ UART0_MIS
Definition pl011.hpp:26
@ UART0_RSRECR
Definition pl011.hpp:16
void pl011_putc(unsigned char msg)
Outputs a single character.
Definition pl011.cpp:57
char pl011_getc()
Returns an inputted character.
Definition pl011.cpp:69
void pl011_init()
Initializes PL011 functionality.
Definition pl011.cpp:3
unsigned int uint32_t
Definition types.hpp:5