summaryrefslogtreecommitdiff
path: root/Source/Serial.h
blob: da2c4cead7bb6c8e9714029e24618b0c55891e98 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef __SERIAL_HEADER__
#define __SERIAL_HEADER__

/* *************************************
 * 	Includes
 * *************************************/

#include "Global_Inc.h"
#include "System.h"
#include "Gfx.h"
#include "Font.h"

/* *************************************
 * 	Defines
 * *************************************/

#define ACK_BYTE_STRING "b"

/* **************************************
 * 	Structs and enums					*
 * *************************************/

typedef enum
{
    SERIAL_STATE_INIT = 0,
    SERIAL_STATE_STANDBY,
    SERIAL_STATE_WRITING_ACK,
    SERIAL_STATE_READING_HEADER,
    SERIAL_STATE_READING_EXE_SIZE,
    SERIAL_STATE_READING_EXE_DATA,
    SERIAL_STATE_WAITING_USER_INPUT,
    SERIAL_STATE_CLEANING_MEMORY,
}SERIAL_STATE;

/* *************************************
 * 	Global prototypes
 * *************************************/

void SerialInit(void);
bool SerialRead(uint8_t* ptrArray, size_t nBytes);
bool SerialWrite(void* ptrArray, size_t nBytes);
void ISR_Serial(void);
void SerialSetState(SERIAL_STATE state);
void SerialSetPCAddress(uint32_t addr);
void SerialSetRAMDestAddress(uint32_t addr);
void SerialSetExeSize(size_t size);
void SerialSetExeBytesReceived(uint32_t bytes_read);

#endif // __SERIAL_HEADER__