EE445M RTOS
Taken at the University of Texas Spring 2015
uartpp.hpp
Go to the documentation of this file.
1 /* -*- mode: c++; c-basic-offset: 4; -*- */
2 #ifndef __uartpp__
3 #define __uartpp__
4 
5 #include <stdarg.h>
6 #include <stdint.h>
7 #include <stdbool.h>
8 
9 #include "interruptable.hpp"
10 #include "criticalpp.hpp"
11 
17 #define UART_DEFAULT_BAUD_RATE 115200
18 
21 
23 typedef uint32_t memory_address_t;
24 
26 typedef uint32_t frequency_t;
27 
28 class uart : public interruptable, public critical {
29 private:
30  uint32_t baud_rate;
33 
34  void vprintf(const char *pcString, va_list vaArgP);
35 
36 public:
38  static bool LAST_WAS_CR;
39 
41 
42  uart();
43  uart(memory_address_t uart_channel, memory_address_t uart_interrupt,
44  uint32_t uart_baud_rate = UART_DEFAULT_BAUD_RATE);
45 
47  virtual void start(void);
48 
50  virtual void stop(void);
51 
53  virtual uint32_t ack(void);
54 
56  void send_char(const char);
57 
59  void send_string(const char*);
60 
62  void send_newline(void);
63 
65  char get_char(void);
66 
68  char* get_string(const uint32_t length);
69 
71  void printf(const char *pcString, ...);
72 
74  void atomic_printf(const char *pcString, ...);
75 };
76 
77 #endif
78 
uint32_t memory_address_t
Definition: adcpp.hpp:16
Definition: uartpp.hpp:28
virtual void start(void)
Definition: uartpp.cpp:408
memory_address_t interrupt
Definition: uartpp.hpp:32
void atomic_printf(const char *pcString,...)
Definition: uartpp.cpp:348
uint32_t frequency_t
Definition: uartpp.hpp:26
uint32_t memory_address_t
Definition: uartpp.hpp:23
void send_string(const char *)
Definition: uartpp.cpp:49
char get_char(void)
Definition: uartpp.cpp:381
#define UART_DEFAULT_BAUD_RATE
Definition: uartpp.hpp:17
char * get_string(const uint32_t length)
Definition: uartpp.cpp:394
void printf(const char *pcString,...)
Definition: uartpp.cpp:360
static bool LAST_WAS_CR
Definition: uartpp.hpp:38
void send_newline(void)
Definition: uartpp.cpp:376
void vprintf(const char *pcString, va_list vaArgP)
Definition: uartpp.cpp:122
void send_char(const char)
Definition: uartpp.cpp:371
virtual uint32_t ack(void)
Definition: uartpp.cpp:386
uint32_t baud_rate
Definition: uartpp.hpp:30
memory_address_t channel
Definition: uartpp.hpp:31
const uint32_t UART_DEFAULT_MAX_GET_STRING_LENGTH
Definition: uartpp.hpp:20
uart()
Definition: uartpp.cpp:21
virtual void stop(void)
Definition: uartpp.cpp:414