50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
#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__
|