#ifndef _RA8875_CPU_H_
#define _RA8875_CPU_H_
/*
CPU based Preprocessor directives file.
RA8875 Library support many MCU's so I wroted this to simplify the overall code.
Part of RA8875 library from https://github.com/sumotoy/RA8875
RA8875 fast SPI library for RAiO SPI RA8875 drived TFT
Copyright (C) 2014 egidio massimo costa sumotoy (a t) gmail.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
/*
--------------------------------------------------------------
ENERGIA BASED BOARDS
Partially supported and actually never tested
--------------------------------------------------------------
*/
#if defined(ENERGIA)
#include "Energia.h"
#undef byte
#define byte uint8_t
#if defined(__TM4C129XNCZAD__) || defined(__TM4C1294NCPDT__)//tiva???
#define NEEDS_SET_MODULE
#define _FASTCPU
#elif defined(__LM4F120H5QR__) || defined(__TM4C123GH6PM__)//stellaris first version
#define NEEDS_SET_MODULE
#define _FASTCPU
#elif defined(__MSP430MCU__)//MSP430???
// don't know
#elif defined(TMS320F28069)//C2000???
// don't know
#elif defined(__CC3200R1M1RGC__)//CC3200???
// don't know
#endif
static uint8_t SPImodule;
static uint8_t SPDR;
#elif defined(__AVR__)
/*
--------------------------------------------------------------
8 BIT AVR BOARDS (UNO,YUN,LEONARDO,ETC.)
Fully supported (tested)
--------------------------------------------------------------
*/
#if !defined(_FORCE_PROGMEM__)
#define _FORCE_PROGMEM__
#endif
#define __PRGMTAG_ PROGMEM
#include "Arduino.h"
#include
#include
#elif defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MKL26Z64__)
/*
--------------------------------------------------------------
TEENSY 3, TEENSY 3.1, TEENSY 3.2, TEENSY LC
Fully supported (tested)
--------------------------------------------------------------
*/
#define ___TEENSYES
#define _FASTCPU
#include "Arduino.h"
#include //Teensy3 and AVR arduinos can use pgmspace.h
#if defined(_FORCE_PROGMEM__)
#undef _FORCE_PROGMEM__
#define PROGMEM __attribute__((section(".progmem.data")))
#endif
#define __PRGMTAG_
#elif defined(__32MX320F128H__) || defined(__32MX795F512L__) //chipkit uno, chipkit max
/*
--------------------------------------------------------------
CHIPKIT UNO, CHIPKIT MAX
Partially supported and never tested
--------------------------------------------------------------
*/
#define ___CHIPKIT
#define _FASTCPU
#include "Arduino.h"
#ifndef __PGMSPACE_H_
#define __PGMSPACE_H_ 1
#define PROGMEM
#define PGM_P const char *
#define PSTR(str) (str)
#define pgm_read_byte_near(addr) pgm_read_byte(addr)
#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
#define pgm_read_word(addr) (*(const unsigned short *)(addr))
#endif
#define __PRGMTAG_
#elif defined (__arm__) && defined(_VARIANT_ARDUINO_DUE_X_)
/*
--------------------------------------------------------------
ARDUINO DUE
Fully supported (tested)
--------------------------------------------------------------
*/
#define ___DUESTUFF
#define _FASTCPU
#include "Arduino.h"
#ifndef __PGMSPACE_H_
#define __PGMSPACE_H_ 1
#define PROGMEM
#define PGM_P const char *
#define PSTR(str) (str)
#define pgm_read_byte_near(addr) pgm_read_byte(addr)
#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
#define pgm_read_word(addr) (*(const unsigned short *)(addr))
#endif
#define __PRGMTAG_
#elif defined (__arm__) && defined(__SAM3X8E__)
/*
--------------------------------------------------------------
ARDUINO DUE COMPATIBLE
Fully supported (as DUE, tested)
--------------------------------------------------------------
*/
#define ___DUESTUFF
#define _FASTCPU
#include "Arduino.h"
#ifndef __PGMSPACE_H_
#define __PGMSPACE_H_ 1
#define PROGMEM
#define PGM_P const char *
#define PSTR(str) (str)
#define pgm_read_byte_near(addr) pgm_read_byte(addr)
#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
#define pgm_read_word(addr) (*(const unsigned short *)(addr))
#endif
#elif defined(STM32F2XX) || defined(STM32F10X_MD) || defined(STM32_SERIES_F1) || defined(STM32_SERIES_F2)
/*
--------------------------------------------------------------
STM32 BOARDS
Initial support and actually won't compile
--------------------------------------------------------------
*/
#define ___STM32STUFF
#include "Arduino.h"
#if defined(_FORCE_PROGMEM__)
#undef _FORCE_PROGMEM__
#endif
#define __PRGMTAG_
#elif defined(__arm__) && !defined(__XTENSA__) && !defined(___TEENSYES)
/*
--------------------------------------------------------------
ARM generic
Mistery....
--------------------------------------------------------------
*/
#if defined(_FORCE_PROGMEM__)
#undef _FORCE_PROGMEM__
#endif
#include "Arduino.h"
#define __PRGMTAG_
#warning "Generic Arm detected, not sure if your board it's compatible!"
#elif defined(__XTENSA__)
/*
--------------------------------------------------------------
XTENSA (ESP)
It compiles but never tested
--------------------------------------------------------------
*/
#include "Arduino.h"
#if defined(_FORCE_PROGMEM__)
#undef _FORCE_PROGMEM__
#define PROGMEM __attribute__((section(".progmem.data")))
#endif
#define __PRGMTAG_
#else
#error "your board it's not supported yet!"
#endif
#include "Print.h"
#endif