Merge pull request #254 from SSYYL/master

Added 2.36inch e-Paper (G) program and some fixes.
This commit is contained in:
Wilson 2022-08-18 11:41:47 +08:00 committed by GitHub
commit dee10ea85d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 3920 additions and 595 deletions

View file

@ -0,0 +1,267 @@
/**
* @filename : epd2in36g.cpp
* @brief : Implements for e-paper library
* @author : Waveshare
*
* Copyright (C) Waveshare 2022/08/17
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <stdlib.h>
#include "epd2in36g.h"
Epd::~Epd() {
};
Epd::Epd() {
reset_pin = RST_PIN;
dc_pin = DC_PIN;
cs_pin = CS_PIN;
busy_pin = BUSY_PIN;
WIDTH = EPD_WIDTH;
HEIGHT = EPD_HEIGHT;
};
int Epd::Init() {
/* this calls the peripheral hardware interface, see epdif */
if (IfInit() != 0) {
return -1;
}
Reset();
SendCommand(0x66);
SendData(0x49);
SendData(0x55);
SendData(0x13);
SendData(0x5D);
SendCommand(0x66);
SendData(0x49);
SendData(0x55);
SendCommand(0xB0);
SendData(0x03);//1 boost 20211113
SendCommand(0x00);
SendData(0x4F);
SendData(0x69);
SendCommand(0x03);
SendData(0x00);
SendCommand(0xF0);
SendData(0xF6);
SendData(0x0D);
SendData(0x00);
SendData(0x00);
SendData(0x00);
SendCommand(0x06); //20211113
SendData(0xCF);
SendData(0xDE);
SendData(0x0F);
SendCommand(0x41);
SendData(0x00);
SendCommand(0x50);
SendData(0x30);
SendCommand(0x60);
SendData(0x0C);
SendData(0x05);
SendCommand(0x61);
SendData(0xA8);
SendData(0x01);
SendData(0x28);
SendCommand(0x84);
SendData(0x01);
return 0;
}
/**
* @brief: basic function for sending commands
*/
void Epd::SendCommand(unsigned char command) {
DigitalWrite(dc_pin, LOW);
SpiTransfer(command);
}
/**
* @brief: basic function for sending data
*/
void Epd::SendData(unsigned char data) {
DigitalWrite(dc_pin, HIGH);
SpiTransfer(data);
}
/**
* @brief: Wait until the busy_pin goes LOW
*/
void Epd::ReadBusyH(void) {
Serial.print("e-Paper busy H\r\n ");
while(DigitalRead(busy_pin) == LOW) { //LOW: busy, HIGH: idle
DelayMs(5);
}
Serial.print("e-Paper busy release H\r\n ");
}
void Epd::ReadBusyL(void) {
Serial.print("e-Paper busy L\r\n ");
while(DigitalRead(busy_pin) == HIGH) { //LOW: idle, HIGH: busy
DelayMs(5);
}
Serial.print("e-Paper busy release L\r\n ");
}
/**
* @brief: module reset.
* often used to awaken the module in deep sleep,
* see Epd::Sleep();
*/
void Epd::Reset(void) {
DigitalWrite(reset_pin, HIGH);
DelayMs(20);
DigitalWrite(reset_pin, LOW); //module reset
DelayMs(2);
DigitalWrite(reset_pin, HIGH);
DelayMs(20);
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
void Epd::TurnOnDisplay(void)
{
SendCommand(0x12); // DISPLAY_REFRESH
SendData(0x00);
ReadBusyH();
SendCommand(0x02); // POWER_OFF
SendData(0X00);
ReadBusyH();
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void Epd::Clear(UBYTE color)
{
UWORD Width, Height;
Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
Height = HEIGHT;
SendCommand(0x68); // POWER_OFF
SendData(0X01);
SendCommand(0x04);
ReadBusyH();
SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
SendData((color<<6) | (color<<4) | (color<<2) | color);
}
}
SendCommand(0x68); // POWER_OFF
SendData(0X00);
TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void Epd::Display(UBYTE *Image)
{
UWORD Width, Height;
Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
Height = HEIGHT;
SendCommand(0x68); // POWER_OFF
SendData(0X01);
SendCommand(0x04);
ReadBusyH();
SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
SendData(pgm_read_byte(&Image[i + j * Width]));
}
}
SendCommand(0x68); // POWER_OFF
SendData(0X00);
TurnOnDisplay();
}
void Epd::Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_height)
{
UWORD Width, Height, i, j;
Width = (WIDTH % 4 == 0)? (WIDTH / 4 ): (WIDTH / 4 + 1);
Height = HEIGHT;
SendCommand(0x68); // POWER_OFF
SendData(0X01);
SendCommand(0x04);
ReadBusyH();
SendCommand(0x10);
for(i=0; i<Height; i++) {
for(j=0; j< Width; j++) {
if(i<image_height+ystart && i>=ystart && j<(image_width+xstart)/4 && j>=xstart/4) {
SendData(pgm_read_byte(&Image[(j-xstart/4) + (image_width/4*(i-ystart))]));
}
else {
SendData(0x55);
}
}
}
SendCommand(0x68); // POWER_OFF
SendData(0X00);
TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void Epd::Sleep(void)
{
SendCommand(0x02); // POWER_OFF
SendData(0X00);
SendCommand(0x07); // DEEP_SLEEP
SendData(0XA5);
}
/* END OF FILE */

View file

@ -0,0 +1,74 @@
/**
* @filename : epd2in36g.h
* @brief : Header file for e-paper display library epd4in37g.cpp
* @author : Waveshare
*
* Copyright (C) Waveshare 2022/08/17
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef EPD2IN36G_H
#define EPD2IN36G_H
#include "epdif.h"
// Display resolution
#define EPD_WIDTH 168
#define EPD_HEIGHT 296
// Color
#define black 0x0
#define white 0x1
#define yellow 0x2
#define red 0x3
#define UWORD unsigned int
#define UBYTE unsigned char
#define UDOUBLE unsigned long
class Epd : EpdIf {
public:
unsigned long WIDTH;
unsigned long HEIGHT;
Epd();
~Epd();
int Init();
void SendCommand(unsigned char command);
void SendData(unsigned char data);
void Reset(void);
void ReadBusyH(void);
void ReadBusyL(void);
void TurnOnDisplay(void);
void Clear(UBYTE color);
void Display(UBYTE *Image);
void Display_part(UBYTE *Image, UWORD xstart, UWORD ystart, UWORD image_width, UWORD image_height);
void Sleep(void);
private:
unsigned int reset_pin;
unsigned int dc_pin;
unsigned int cs_pin;
unsigned int busy_pin;
};
#endif /* EPD4IN37_H */
/* END OF FILE */

View file

@ -0,0 +1,60 @@
/**
* @filename : epd2in36g-demo.ino
* @brief : 2.36inch e-Paper (G) display demo
* @author : Waveshare
*
* Copyright (C) Waveshare 2022/08/17
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <SPI.h>
#include "epd2in36g.h"
#include "imagedata.h"
Epd epd;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.print("e-Paper init \r\n");
if (epd.Init() != 0) {
Serial.print("e-Paper init failed");
return;
}
Serial.print("White \r\n");
epd.Clear(white);
delay(2000);
Serial.print("Small Image \r\n");
epd.Display_part(Image4color, 0, 64, 168, 168);
delay(2000);
Serial.print("Clear...\r\n");
epd.Clear(white);
delay(2000);
Serial.print("Goto Sleep...\r\n");
epd.Sleep();
}
void loop() {
}

View file

@ -0,0 +1,64 @@
/**
* @filename : epdif.cpp
* @brief : Implements EPD interface functions
* Users have to implement all the functions in epdif.cpp
* @author : Yehui from Waveshare
*
* Copyright (C) Waveshare August 10 2017
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "epdif.h"
#include <spi.h>
EpdIf::EpdIf() {
};
EpdIf::~EpdIf() {
};
void EpdIf::DigitalWrite(int pin, int value) {
digitalWrite(pin, value);
}
int EpdIf::DigitalRead(int pin) {
return digitalRead(pin);
}
void EpdIf::DelayMs(unsigned int delaytime) {
delay(delaytime);
}
void EpdIf::SpiTransfer(unsigned char data) {
digitalWrite(CS_PIN, LOW);
SPI.transfer(data);
digitalWrite(CS_PIN, HIGH);
}
int EpdIf::IfInit(void) {
pinMode(CS_PIN, OUTPUT);
pinMode(RST_PIN, OUTPUT);
pinMode(DC_PIN, OUTPUT);
pinMode(BUSY_PIN, INPUT);
SPI.begin();
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
return 0;
}

51
Arduino/epd2in36g/epdif.h Normal file
View file

@ -0,0 +1,51 @@
/**
* @filename : epdif.h
* @brief : Header file of epdif.cpp providing EPD interface functions
* Users have to implement all the functions in epdif.cpp
* @author : Yehui from Waveshare
*
* Copyright (C) Waveshare August 10 2017
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef EPDIF_H
#define EPDIF_H
#include <arduino.h>
// Pin definition
#define RST_PIN 8
#define DC_PIN 9
#define CS_PIN 10
#define BUSY_PIN 7
class EpdIf {
public:
EpdIf(void);
~EpdIf(void);
static int IfInit(void);
static void DigitalWrite(int pin, int value);
static int DigitalRead(int pin);
static void DelayMs(unsigned int delaytime);
static void SpiTransfer(unsigned char data);
};
#endif

View file

@ -0,0 +1,474 @@
/**
* @filename : imagedata.cpp
* @brief : data file for epd demo
*
* Copyright (C) Waveshare 2022/08/16
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "imagedata.h"
#include <avr/pgmspace.h>
// 4 Color Image Data 168*168
const unsigned char Image4color[7056] PROGMEM = {
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,
0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,
0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0x80,0x00,
0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFC,
0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,0x80,0x0A,0xAA,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x0A,0xAA,0x80,0x0A,0xAA,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,0x80,0x0A,0xAA,0xA0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFC,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0xAA,0x80,0x02,0x8A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,
0x80,0x00,0x02,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x80,0x00,0x0A,0xA8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x2A,0x80,0x00,0x3A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x2A,0x80,0x00,
0x2A,0xA0,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFD,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x01,0x50,0x00,0x00,0x00,0x00,0x00,0x2A,0x80,0x00,0xAA,0x80,0x00,0x00,0x00,0x00,
0x15,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,
0x00,0x2A,0x80,0x02,0xAA,0x00,0x00,0x00,0x00,0x00,0x55,0x50,0x00,0x00,0x00,0x3F,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,
0xF0,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x2A,0x80,0x0A,0xAB,0x00,
0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xF5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x15,0x55,
0x00,0x00,0x00,0x00,0x00,0x2A,0x80,0x2A,0xA8,0x00,0x00,0x00,0x00,0x01,0x55,0x50,
0x00,0x00,0x00,0x03,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x2A,
0x80,0x2A,0xAA,0xA8,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x3F,0xFF,
0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xF0,0x00,0x00,
0x00,0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,0x2A,0x80,0x2A,0xAA,0xA8,0x00,0x00,
0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,
0x00,0x00,0x00,0x2A,0x80,0x2A,0xAA,0xA8,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,
0xFF,0xC0,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,
0xAA,0xA8,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xF5,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,
0x54,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF5,0x55,0x55,0x55,
0x55,0x55,0x55,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x50,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,
0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
0x55,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xD5,
0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x5F,0xFF,
0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xF5,0x55,0x55,0x55,0x55,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFD,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xF0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x04,0x00,0x00,0x0F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x7F,0xFF,0xC0,0x00,
0x01,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x03,
0xFF,0xFD,0x55,0x55,0x55,0x55,0xFF,0xFF,0xC0,0x00,0x01,0x55,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x03,0xFF,0xFF,0x55,0x55,0x55,0x55,
0xFF,0xFF,0x00,0x00,0x05,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
0x55,0x40,0x00,0x00,0xFF,0xFF,0x55,0x55,0x55,0x57,0xFF,0xFF,0x00,0x00,0x15,0x55,
0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x50,0x00,0x00,0xFF,0xFF,
0xD5,0x55,0x55,0x57,0xFF,0xFF,0x00,0x00,0x05,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x15,0x55,0x55,0x40,0x00,0x00,0xFF,0xFF,0xD5,0x55,0x55,0x5F,0xFF,0xFC,
0x00,0x00,0x01,0x55,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x00,
0x00,0x00,0x3F,0xFF,0xF5,0x55,0x55,0x5F,0xFF,0xFC,0x00,0x00,0x00,0x15,0x55,0x55,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x50,0x00,0x00,0x00,0x3F,0xFF,0xF5,0x55,
0x55,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x01,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
0x55,0x55,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x55,0x55,0x7F,0xFF,0xF0,0x00,0x00,
0x00,0x00,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x54,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x54,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFD,0x55,0x55,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x05,0x55,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x55,0x40,0x00,0x00,0x00,0x00,0x03,0xFF,0xFD,0x55,0x55,0x7F,
0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54,0x00,
0x00,0x00,0x00,0x00,0x03,0xFF,0xFD,0x55,0x55,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x55,0x55,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x55,0x55,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x55,0x55,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x55,
0x57,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xD5,0x57,0xFF,0xFC,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xD5,0x57,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xD5,0x57,0xFF,
0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xD5,0x5F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x50,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,
0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x35,0x55,0x55,0x5C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF5,
0x55,0x55,0x5F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF5,0x55,0x55,0x5F,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,
0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xF5,0x55,0x55,0x5F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xD5,0x55,0x55,
0x57,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xD5,0x55,0x55,0x57,0xFF,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x7F,0xFF,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0xFF,0xD5,0x55,0x55,0x57,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x00,0xAA,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xD5,0x55,0x55,0x57,0xFF,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xA8,0x00,0x00,0x00,0x03,
0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x02,0xAA,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0x55,0x55,0x55,0x55,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x2A,0xAA,0x80,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,
0x00,0x0A,0xAA,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0x55,
0x55,0x55,0x55,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,
0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x0A,0xA0,0xA8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFD,0x55,0x55,0x55,0x55,0x7F,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,0xA0,0x00,0x00,0x03,0xFF,0xFD,
0x7F,0xFF,0xC0,0x00,0x00,0x0A,0x80,0xAB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFD,0x55,0x55,0x55,0x55,0x7F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x02,0x0A,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x0A,
0x80,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF5,0x55,0x55,0x55,
0x55,0x5F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xA0,0x00,
0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x0A,0x80,0xAA,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xF5,0x55,0x55,0x55,0x55,0x5F,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,
0xC0,0x00,0x00,0x0A,0xA2,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xF5,0x55,0x55,0x55,0x55,0x5F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0xAA,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x0A,0xAA,0xAA,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF5,0x55,0x55,0x55,0x55,0x5F,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0x80,0x00,0x00,0x03,
0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x02,0xAA,0xAB,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xF5,0x55,0x55,0x55,0x55,0x5B,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0xAA,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,
0x00,0x00,0xAA,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF5,0x55,
0x55,0x55,0x55,0x55,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,
0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x02,0xA8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x7F,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xA0,0x00,0x00,0x03,0xFF,0xFD,
0x7F,0xFF,0xC0,0x00,0x00,0x00,0x0E,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xFD,0x55,0x55,0x55,0x55,0x55,0x5C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x02,0x0A,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x00,
0xAA,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF5,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,0xA0,0x00,
0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xC0,0x00,0x00,0x00,0xAA,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0xAA,0xA0,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,
0xC0,0x00,0x00,0x00,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x2A,0xAA,0x80,0x00,0x00,0x03,0xFF,0xFD,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0x00,0x00,0x00,0x0F,
0xFF,0xFD,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x15,0x55,0x57,0xD5,0x57,0xF5,0x55,0x55,0x55,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x5F,
0xFF,0xFF,0xFF,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xF5,0x55,0x55,
0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,
0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x05,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xF1,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x53,0xFF,0xFF,0xFF,
0xFF,0xC0,0x15,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xF5,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x55,0x40,0x3F,0xFF,0xFF,0xFC,0x00,0x01,0x55,0x55,0x50,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x5F,0xFF,
0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x54,
0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x15,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xF5,0x57,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x55,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,
0xFF,0xD5,0x57,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x15,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x50,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xD5,0x57,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x54,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xD5,0x57,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x05,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xD5,
0x55,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x40,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x55,0x55,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0x55,0x55,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,
0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x05,0x54,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x55,0x55,0xFF,
0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x05,0x55,0x40,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x40,0x01,0x54,0x00,
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x55,0x55,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x00,
0x05,0x55,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x05,0x50,0x01,0x55,0x40,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFD,0x55,0x55,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x55,0x55,0x40,0x00,0x00,0x55,
0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x54,0x05,0x55,0x54,0x00,0x00,0x00,0x00,0x03,0xFF,0xFD,0x55,0x55,0x7F,0xFF,0xF0,
0x00,0x00,0x00,0x01,0x55,0x55,0x50,0x00,0x01,0x55,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x55,0x55,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFD,0x55,0x55,0x5F,0xFF,0xF0,0x00,0x00,0x00,0x15,0x55,0x55,
0x40,0x00,0x05,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x45,0x55,0x55,0x50,0x00,0x00,0x00,0x0F,0xFF,0xF5,0x55,
0x55,0x5F,0xFF,0xFC,0x00,0x00,0x01,0x55,0x55,0x54,0x00,0x00,0x15,0x50,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
0x55,0x55,0x55,0x00,0x00,0x00,0x3F,0xFF,0xF5,0x55,0x55,0x5F,0xFF,0xFC,0x00,0x00,
0x05,0x55,0x55,0x50,0x00,0x00,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x55,0x40,0x00,0x00,
0x3F,0xFF,0xF5,0x55,0x55,0x57,0xFF,0xFF,0x00,0x00,0x15,0x55,0x55,0x00,0x00,0x01,
0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x55,0x55,0x50,0x00,0x00,0xFF,0xFF,0xD5,0x55,0x55,0x57,
0xFF,0xFF,0x00,0x00,0x05,0x55,0x50,0x00,0x00,0x15,0x50,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,
0x55,0x40,0x00,0x00,0xFF,0xFF,0xD5,0x55,0x55,0x55,0xFF,0xFF,0x00,0x00,0x01,0x55,
0x00,0x00,0x00,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0xFF,0xFF,
0x55,0x55,0x55,0x55,0xFF,0xFF,0xC0,0x00,0x01,0x54,0x00,0x00,0x01,0x54,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x00,0x00,0x03,0xFF,0xFF,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xC0,0x00,0x00,0x40,0x00,0x00,0x05,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,
0x00,0x03,0xFF,0xFD,0x55,0x55,0x55,0x55,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,
0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFD,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,
0xFF,0xF5,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x05,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,
0x57,0xFF,0xFF,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xC0,0x00,0x00,
0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x55,
0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xF0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xF0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFD,0x55,0x55,0x55,
0x55,0x55,0x55,0x5F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x40,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x55,0x40,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFD,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x5F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x00,
0x02,0xA8,0x00,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xF0,0x00,0x00,
0x00,0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,0x00,0x2A,0xA8,0x00,0x00,0x00,0x00,
0x00,0x05,0x55,0x40,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,
0x00,0x00,0x00,0x00,0xAA,0xA8,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,
0xFF,0xFC,0x00,0x00,0x00,0x00,0x15,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xA0,
0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x50,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFD,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,
0x55,0x54,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x55,0x54,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x5F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,
0x00,0x02,0xAA,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x50,0x00,0x00,0x00,0x0F,
0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,
0xFC,0x00,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0xA8,0x00,0x00,
0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x40,
0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
0xAA,0xAA,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFD,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0xAA,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x02,0xA8,0x2A,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xA8,0x2A,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xA8,0xAA,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x02,0xAA,0xAA,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xAA,0xAA,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0A,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xF5,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,
0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,
0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,
0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,
0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,
0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
};

View file

@ -0,0 +1,30 @@
/**
* @filename : imagedata.h
* @brief : head file for imagedata.cpp
*
* Copyright (C) Waveshare 2022/08/16
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
extern const unsigned char Image4color[];
/* FILE END */

View file

@ -0,0 +1,165 @@
/*****************************************************************************
* | File : EPD_2in36g_test.c
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G) test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-18
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_Test.h"
#include "EPD_2in36g.h"
#include "time.h"
int EPD_2in36g_test(void)
{
printf("EPD_2IN36G_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN36G_Init();
struct timespec start={0,0}, finish={0,0};
clock_gettime(CLOCK_REALTIME, &start);
EPD_2IN36G_Clear(EPD_2IN36G_WHITE); // White
clock_gettime(CLOCK_REALTIME, &finish);
printf("%ld S\r\n", finish.tv_sec-start.tv_sec);
DEV_Delay_ms(2000);
//Create a new image cache
UBYTE *BlackImage;
/* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
UWORD Imagesize = ((EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1)) * EPD_2IN36G_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
printf("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN36G_WIDTH, EPD_2IN36G_HEIGHT, 0, WHITE);
Paint_SetScale(4);
#if 1 // show bmp
printf("show window BMP-----------------\r\n");
Paint_SelectImage(BlackImage);
GUI_ReadBmp_RGB_4Color("./pic/2.36inch-1.bmp", 0, 0);
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(2000);
printf("show bmp------------------------\r\n");
Paint_SelectImage(BlackImage);
GUI_ReadBmp_RGB_4Color("./pic/2.36inch-2.bmp", 0, 0);
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(2000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawPoint(10, 80, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
Paint_DrawPoint(10, 90, EPD_2IN36G_WHITE, DOT_PIXEL_2X2, DOT_STYLE_DFT);
Paint_DrawPoint(10, 100, EPD_2IN36G_RED, DOT_PIXEL_3X3, DOT_STYLE_DFT);
Paint_DrawLine(20, 70, 70, 120, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawLine(70, 70, 20, 120, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawRectangle(20, 70, 70, 120, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawRectangle(80, 70, 130, 120, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawCircle(45, 95, 20, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(105, 95, 20, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawLine(85, 95, 125, 95, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawLine(105, 75, 105, 115, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, EPD_2IN36G_BLACK, EPD_2IN36G_WHITE);
Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, EPD_2IN36G_WHITE, EPD_2IN36G_RED);
Paint_DrawString_CN(10, 125, "΢ѩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", &Font24CN, EPD_2IN36G_BLACK, EPD_2IN36G_YELLOW);
Paint_DrawNum(10, 50, 123456, &Font12, EPD_2IN36G_BLACK, EPD_2IN36G_YELLOW);
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawRectangle(1, 1, 168, 86, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(1, 210, 167, 295, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(59, 1, 109, 295, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
int hNumber, hWidth, vNumber, vWidth;
hNumber = 16;
hWidth = EPD_2IN36G_HEIGHT/hNumber; // 368/16=23
vNumber = 16;
vWidth = EPD_2IN36G_WIDTH/vNumber; // 512/16=32
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
for(int i=0; i<hNumber; i++) { // horizontal
Paint_DrawRectangle(1, 1+i*hWidth, EPD_2IN36G_WIDTH, hWidth*(1+i), EPD_2IN36G_BLACK + (i % 2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
for(int i=0; i<vNumber; i++) { // vertical
if(i%2) {
Paint_DrawRectangle(1+i*vWidth, 1, vWidth*(i+1), EPD_2IN36G_HEIGHT, EPD_2IN36G_YELLOW + (i/2%2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
}
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
printf("Clear...\r\n");
EPD_2IN36G_Clear(EPD_2IN36G_WHITE);
printf("Goto Sleep...\r\n");
EPD_2IN36G_Sleep();
free(BlackImage);
BlackImage = NULL;
DEV_Delay_ms(2000);//important, at least 2s
// close 5V
printf("close 5V, Module enters 0 power consumption ...\r\n");
DEV_Module_Exit();
return 0;
}

View file

@ -38,7 +38,9 @@
#include <stdlib.h> // malloc() free() #include <stdlib.h> // malloc() free()
int EPD_1in64g_test(void); int EPD_1in64g_test(void);
int EPD_2in36g_test(void);
int EPD_3in0g_test(void); int EPD_3in0g_test(void);
int EPD_4in37g_test(void);
int EPD_7in3g_test(void); int EPD_7in3g_test(void);
int EPD_1in54_DES_test(void); int EPD_1in54_DES_test(void);

View file

@ -17,6 +17,7 @@ int main(void)
signal(SIGINT, Handler); signal(SIGINT, Handler);
// EPD_1in64g_test(); // EPD_1in64g_test();
// EPD_2in36g_test();
// EPD_3in0g_test(); // EPD_3in0g_test();
// EPD_4in37g_test(); // EPD_4in37g_test();
// EPD_7in3g_test(); // EPD_7in3g_test();

View file

@ -0,0 +1,238 @@
/*****************************************************************************
* | File : EPD_2in36g.c
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-17
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_2in36g.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN36G_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN36G_SendCommand(UBYTE Reg)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Reg);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : send data
parameter:
Data : Write data
******************************************************************************/
static void EPD_2IN36G_SendData(UBYTE Data)
{
DEV_Digital_Write(EPD_DC_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Data);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : Wait until the busy_pin goes LOW
parameter:
******************************************************************************/
static void EPD_2IN36G_ReadBusyH(void)
{
Debug("e-Paper busy H\r\n");
while(!DEV_Digital_Read(EPD_BUSY_PIN)) { //LOW: idle, HIGH: busy
DEV_Delay_ms(5);
}
Debug("e-Paper busy H release\r\n");
}
static void EPD_2IN36G_ReadBusyL(void)
{
Debug("e-Paper busy L\r\n");
while(DEV_Digital_Read(EPD_BUSY_PIN)) { //LOW: idle, HIGH: busy
DEV_Delay_ms(5);
}
Debug("e-Paper busy L release\r\n");
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_2IN36G_TurnOnDisplay(void)
{
EPD_2IN36G_SendCommand(0x12); // DISPLAY_REFRESH
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x02); // POWER_OFF
EPD_2IN36G_SendData(0X00);
EPD_2IN36G_ReadBusyH();
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN36G_Init(void)
{
EPD_2IN36G_Reset();
EPD_2IN36G_SendCommand(0x66);
EPD_2IN36G_SendData(0x49);
EPD_2IN36G_SendData(0x55);
EPD_2IN36G_SendData(0x13);
EPD_2IN36G_SendData(0x5D);
EPD_2IN36G_SendCommand(0x66);
EPD_2IN36G_SendData(0x49);
EPD_2IN36G_SendData(0x55);
EPD_2IN36G_SendCommand(0xB0);
EPD_2IN36G_SendData(0x03);//1 boost 20211113
EPD_2IN36G_SendCommand(0x00);
EPD_2IN36G_SendData(0x4F);
EPD_2IN36G_SendData(0x69);
EPD_2IN36G_SendCommand(0x03);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0xF0);
EPD_2IN36G_SendData(0xF6);
EPD_2IN36G_SendData(0x0D);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0x06); //20211113
EPD_2IN36G_SendData(0xCF);
EPD_2IN36G_SendData(0xDE);
EPD_2IN36G_SendData(0x0F);
EPD_2IN36G_SendCommand(0x41);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0x50);
EPD_2IN36G_SendData(0x30);
EPD_2IN36G_SendCommand(0x60);
EPD_2IN36G_SendData(0x0C);
EPD_2IN36G_SendData(0x05);
EPD_2IN36G_SendCommand(0x61);
EPD_2IN36G_SendData(0xA8);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendData(0x28);
EPD_2IN36G_SendCommand(0x84);
EPD_2IN36G_SendData(0x01);
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN36G_Clear(UBYTE color)
{
UWORD Width, Height;
Width = (EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1);
Height = EPD_2IN36G_HEIGHT;
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendCommand(0x04);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN36G_SendData((color << 6) | (color << 4) | (color << 2) | color);
}
}
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN36G_Display(UBYTE *Image)
{
UWORD Width, Height;
Width = (EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1);
Height = EPD_2IN36G_HEIGHT;
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendCommand(0x04);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN36G_SendData(Image[i + j * Width]);
}
}
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN36G_Sleep(void)
{
EPD_2IN36G_SendCommand(0x02); // POWER_OFF
EPD_2IN36G_SendData(0X00);
EPD_2IN36G_SendCommand(0x07); // DEEP_SLEEP
EPD_2IN36G_SendData(0XA5);
}

View file

@ -0,0 +1,51 @@
/*****************************************************************************
* | File : EPD_2in36g.h
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-17
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#ifndef __EPD_2IN36G_H_
#define __EPD_2IN36G_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN36G_WIDTH 168
#define EPD_2IN36G_HEIGHT 296
// Color
#define EPD_2IN36G_BLACK 0x0
#define EPD_2IN36G_WHITE 0x1
#define EPD_2IN36G_YELLOW 0x2
#define EPD_2IN36G_RED 0x3
void EPD_2IN36G_Init(void);
void EPD_2IN36G_Clear(UBYTE color);
void EPD_2IN36G_Display(UBYTE *Image);
void EPD_2IN36G_Sleep(void);
#endif

View file

@ -1,5 +1,5 @@
/***************************************************************************** /*****************************************************************************
* | File : EPD_4in37g.h * | File : EPD_4in37g.c
* | Author : Waveshare team * | Author : Waveshare team
* | Function : 4.37inch e-Paper (G) * | Function : 4.37inch e-Paper (G)
* | Info : * | Info :

View file

@ -1,5 +1,5 @@
/***************************************************************************** /*****************************************************************************
* | File : EPD_4in37g.c * | File : EPD_4in37g.h
* | Author : Waveshare team * | Author : Waveshare team
* | Function : 4.37inch e-Paper (G) * | Function : 4.37inch e-Paper (G)
* | Info : * | Info :

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View file

@ -45,7 +45,7 @@ try:
# time.sleep(3) # time.sleep(3)
# # read bmp file # # read bmp file
# logging.info("3.read bmp file") # logging.info("2.read bmp file")
# Himage = Image.open(os.path.join(picdir, '1.64inch-1.bmp')) # Himage = Image.open(os.path.join(picdir, '1.64inch-1.bmp'))
# epd.display(epd.getbuffer(Himage)) # epd.display(epd.getbuffer(Himage))
# time.sleep(3) # time.sleep(3)

View file

@ -0,0 +1,73 @@
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os
picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
sys.path.append(libdir)
import logging
from waveshare_epd import epd2in36g
import time
from PIL import Image,ImageDraw,ImageFont
import traceback
logging.basicConfig(level=logging.DEBUG)
try:
logging.info("epd2in36g Demo")
epd = epd2in36g.EPD()
logging.info("init and Clear")
epd.init()
epd.Clear()
font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
# Drawing on the image
logging.info("1.Drawing on the image...")
Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE)
draw = ImageDraw.Draw(Himage)
draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
draw.text((5, 20), '2.36inch e-Paper', font = font18, fill = epd.YELLOW)
draw.text((5, 40), u'微雪电子', font = font40, fill = epd.BLACK)
draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
draw.line((5, 175, 45, 245), fill = epd.RED)
draw.line((45, 175, 5, 245), fill = epd.YELLOW)
draw.rectangle((5, 175, 45, 245), outline = epd.BLACK)
draw.rectangle((55, 175, 95, 245), fill = epd.BLACK)
draw.arc((115, 175, 150, 210), 0, 360, fill = epd.BLACK)
draw.chord((115, 215, 150, 250), 0, 360, fill = epd.BLACK)
draw.chord((10, 252, 50, 295), 0, 360, fill = epd.YELLOW)
draw.chord((110, 252, 150, 295), 0, 360, fill = epd.RED)
epd.display(epd.getbuffer(Himage))
time.sleep(3)
# read bmp file
logging.info("2.read bmp file")
Himage = Image.open(os.path.join(picdir, '2.36inch-1.bmp'))
epd.display(epd.getbuffer(Himage))
time.sleep(3)
logging.info("3.read bmp file")
Himage = Image.open(os.path.join(picdir, '2.36inch-2.bmp'))
epd.display(epd.getbuffer(Himage))
time.sleep(3)
logging.info("Clear...")
epd.Clear()
logging.info("Goto Sleep...")
epd.sleep()
except IOError as e:
logging.info(e)
except KeyboardInterrupt:
logging.info("ctrl + c:")
epd2in36g.epdconfig.module_exit()
exit()

View file

@ -47,7 +47,7 @@ try:
# Switch width and height for landscape display # Switch width and height for landscape display
epd.init() epd.init()
logging.info("1.Drawing on the image...") logging.info("2.Drawing on the image...")
Himage = Image.new('RGB', (epd.height, epd.width), epd.WHITE) Himage = Image.new('RGB', (epd.height, epd.width), epd.WHITE)
draw = ImageDraw.Draw(Himage) draw = ImageDraw.Draw(Himage)
draw.text((5, 0), 'hello world', font = font18, fill = epd.RED) draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
@ -72,13 +72,13 @@ try:
time.sleep(3) time.sleep(3)
epd.init() epd.init()
logging.info("3.read bmp file") logging.info("4.read bmp file")
Himage = Image.open(os.path.join(picdir, '3inch-2.bmp')) Himage = Image.open(os.path.join(picdir, '3inch-2.bmp'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)
epd.init() epd.init()
logging.info("3.read bmp file") logging.info("5.read bmp file")
Himage = Image.open(os.path.join(picdir, '3inch-3.bmp')) Himage = Image.open(os.path.join(picdir, '3inch-3.bmp'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)

View file

@ -31,7 +31,7 @@ try:
Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE) # 255: clear the frame Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE) # 255: clear the frame
draw = ImageDraw.Draw(Himage) draw = ImageDraw.Draw(Himage)
draw.text((5, 0), 'hello world', font = font18, fill = epd.RED) draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
draw.text((5, 20), '7.3inch e-Paper', font = font24, fill = epd.YELLOW) draw.text((5, 20), '4.37inch e-Paper', font = font24, fill = epd.YELLOW)
draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK) draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK)
draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW) draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED) draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
@ -46,7 +46,7 @@ try:
time.sleep(3) time.sleep(3)
# read bmp file # read bmp file
logging.info("3.read image file") logging.info("2.read image file")
Himage = Image.open(os.path.join(picdir, '4in37g0.jpg')) Himage = Image.open(os.path.join(picdir, '4in37g0.jpg'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)
@ -56,7 +56,7 @@ try:
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)
logging.info("3.read image file") logging.info("4.read image file")
Himage = Image.open(os.path.join(picdir, '4in37g2.jpg')) Himage = Image.open(os.path.join(picdir, '4in37g2.jpg'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)

View file

@ -46,7 +46,7 @@ try:
time.sleep(3) time.sleep(3)
# read bmp file # read bmp file
logging.info("3.read bmp file") logging.info("2.read bmp file")
Himage = Image.open(os.path.join(picdir, '7.3inch-1.bmp')) Himage = Image.open(os.path.join(picdir, '7.3inch-1.bmp'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)
@ -56,7 +56,7 @@ try:
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)
logging.info("3.read bmp file") logging.info("4.read bmp file")
Himage = Image.open(os.path.join(picdir, '7.3inch-3.bmp')) Himage = Image.open(os.path.join(picdir, '7.3inch-3.bmp'))
epd.display(epd.getbuffer(Himage)) epd.display(epd.getbuffer(Himage))
time.sleep(3) time.sleep(3)

View file

@ -0,0 +1,240 @@
# *****************************************************************************
# * | File : epd2in36g.py
# * | Author : Waveshare team
# * | Function : Electronic paper driver
# * | Info :
# *----------------
# * | This version: V1.0
# * | Date : 2022-08-17
# # | Info : python demo
# -----------------------------------------------------------------------------
# ******************************************************************************/
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
import logging
from . import epdconfig
import PIL
from PIL import Image
import io
# Display resolution
EPD_WIDTH = 168
EPD_HEIGHT = 296
logger = logging.getLogger(__name__)
class EPD:
def __init__(self):
self.reset_pin = epdconfig.RST_PIN
self.dc_pin = epdconfig.DC_PIN
self.busy_pin = epdconfig.BUSY_PIN
self.cs_pin = epdconfig.CS_PIN
self.width = EPD_WIDTH
self.height = EPD_HEIGHT
self.BLACK = 0x000000 # 00 BGR
self.WHITE = 0xffffff # 01
self.YELLOW = 0x00ffff # 10
self.RED = 0x0000ff # 11
# Hardware reset
def reset(self):
epdconfig.digital_write(self.reset_pin, 1)
epdconfig.delay_ms(200)
epdconfig.digital_write(self.reset_pin, 0) # module reset
epdconfig.delay_ms(2)
epdconfig.digital_write(self.reset_pin, 1)
epdconfig.delay_ms(200)
def send_command(self, command):
epdconfig.digital_write(self.dc_pin, 0)
epdconfig.digital_write(self.cs_pin, 0)
epdconfig.spi_writebyte([command])
epdconfig.digital_write(self.cs_pin, 1)
def send_data(self, data):
epdconfig.digital_write(self.dc_pin, 1)
epdconfig.digital_write(self.cs_pin, 0)
epdconfig.spi_writebyte([data])
epdconfig.digital_write(self.cs_pin, 1)
def ReadBusyH(self):
logger.debug("e-Paper busy H")
while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy
epdconfig.delay_ms(5)
logger.debug("e-Paper busy H release")
def ReadBusyL(self):
logger.debug("e-Paper busy L")
while(epdconfig.digital_read(self.busy_pin) == 1): # 0: busy, 1: idle
epdconfig.delay_ms(5)
logger.debug("e-Paper busy L release")
def TurnOnDisplay(self):
self.send_command(0x12) # DISPLAY_REFRESH
self.send_data(0x01)
self.ReadBusyH()
self.send_command(0x02) # POWER_OFF
self.send_data(0X00)
self.ReadBusyH()
def init(self):
if (epdconfig.module_init() != 0):
return -1
# EPD hardware init start
self.reset()
self.send_command(0x66)
self.send_data(0x49)
self.send_data(0x55)
self.send_data(0x13)
self.send_data(0x5D)
self.send_command(0x66)
self.send_data(0x49)
self.send_data(0x55)
self.send_command(0xB0)
self.send_data(0x03)
self.send_command(0x00)
self.send_data(0x4F)
self.send_data(0x69)
self.send_command(0x03)
self.send_data(0x00)
self.send_command(0xF0)
self.send_data(0xF6)
self.send_data(0x0D)
self.send_data(0x00)
self.send_data(0x00)
self.send_data(0x00)
self.send_command(0x06)
self.send_data(0xCF)
self.send_data(0xDE)
self.send_data(0x0F)
self.send_command(0x41)
self.send_data(0x00)
self.send_command(0x50)
self.send_data(0x30)
self.send_command(0x60)
self.send_data(0x0C)
self.send_data(0x05)
self.send_command(0x61)
self.send_data(0xA8)
self.send_data(0x01)
self.send_data(0x28)
self.send_command(0x84)
self.send_data(0x01)
return 0
def getbuffer(self, image):
# Create a pallette with the 4 colors supported by the panel
pal_image = Image.new("P", (1,1))
pal_image.putpalette( (0,0,0, 255,255,255, 255,255,0, 255,0,0) + (0,0,0)*252)
# Check if we need to rotate the image
imwidth, imheight = image.size
if(imwidth == self.width and imheight == self.height):
image_temp = image
elif(imwidth == self.height and imheight == self.width):
image_temp = image.rotate(90, expand=True)
else:
logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
# Convert the soruce image to the 4 colors, dithering if needed
image_4color = image_temp.convert("RGB").quantize(palette=pal_image)
buf_4color = bytearray(image_4color.tobytes('raw'))
# into a single byte to transfer to the panel
buf = [0x00] * int(self.width * self.height / 4)
idx = 0
for i in range(0, len(buf_4color), 4):
buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
idx += 1
return buf
def display(self, image):
if self.width % 4 == 0 :
Width = self.width // 4
else :
Width = self.width // 4 + 1
Height = self.height
self.send_command(0x68)
self.send_data(0x01)
self.send_command(0x04)
self.ReadBusyH()
self.send_command(0x10)
for j in range(0, Height):
for i in range(0, Width):
self.send_data(image[i + j * Width])
self.send_command(0x68)
self.send_data(0x00)
self.TurnOnDisplay()
def Clear(self, color=0x55):
if self.width % 4 == 0 :
Width = self.width // 4
else :
Width = self.width // 4 + 1
Height = self.height
self.send_command(0x68)
self.send_data(0x01)
self.send_command(0x04)
self.ReadBusyH()
self.send_command(0x10)
for j in range(0, Height):
for i in range(0, Width):
self.send_data(color)
self.send_command(0x68)
self.send_data(0x00)
self.TurnOnDisplay()
def sleep(self):
self.send_command(0x02) # POWER_OFF
self.send_data(0x00)
self.send_command(0x07) # DEEP_SLEEP
self.send_data(0XA5)
epdconfig.delay_ms(2000)
epdconfig.module_exit()
### END OF FILE ###

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

File diff suppressed because one or more lines are too long

View file

@ -145,7 +145,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key> <Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U50FF6E066675545724371487 -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)</Name> <Name>-U49FF6F066572485414310687 -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint> <Breakpoint>
@ -234,6 +234,7 @@
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>10000000</DbgClock> <DbgClock>10000000</DbgClock>
@ -263,7 +264,7 @@
<Group> <Group>
<GroupName>Application/User</GroupName> <GroupName>Application/User</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -343,7 +344,7 @@
<Group> <Group>
<GroupName>Examples</GroupName> <GroupName>Examples</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -899,17 +900,29 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\Examples\EPD_2in36g_test.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in36g_test.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
<GroupName>e-Paper</GroupName> <GroupName>e-Paper</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>54</FileNumber> <FileNumber>55</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -921,7 +934,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>55</FileNumber> <FileNumber>56</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -933,7 +946,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>56</FileNumber> <FileNumber>57</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -945,7 +958,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>57</FileNumber> <FileNumber>58</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -957,7 +970,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>58</FileNumber> <FileNumber>59</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -969,7 +982,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>59</FileNumber> <FileNumber>60</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -981,7 +994,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>60</FileNumber> <FileNumber>61</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -993,7 +1006,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>61</FileNumber> <FileNumber>62</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1005,7 +1018,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>62</FileNumber> <FileNumber>63</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1017,7 +1030,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>63</FileNumber> <FileNumber>64</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1029,7 +1042,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>64</FileNumber> <FileNumber>65</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1041,7 +1054,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>65</FileNumber> <FileNumber>66</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1053,7 +1066,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>66</FileNumber> <FileNumber>67</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1065,7 +1078,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>67</FileNumber> <FileNumber>68</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1077,7 +1090,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>68</FileNumber> <FileNumber>69</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1089,7 +1102,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>69</FileNumber> <FileNumber>70</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1101,7 +1114,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>70</FileNumber> <FileNumber>71</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1113,7 +1126,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>71</FileNumber> <FileNumber>72</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1125,7 +1138,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>72</FileNumber> <FileNumber>73</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1137,7 +1150,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>73</FileNumber> <FileNumber>74</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1149,7 +1162,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>74</FileNumber> <FileNumber>75</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1161,7 +1174,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>75</FileNumber> <FileNumber>76</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1173,7 +1186,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>76</FileNumber> <FileNumber>77</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1185,7 +1198,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>77</FileNumber> <FileNumber>78</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1197,7 +1210,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>78</FileNumber> <FileNumber>79</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1209,7 +1222,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>79</FileNumber> <FileNumber>80</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1221,7 +1234,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>80</FileNumber> <FileNumber>81</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1233,7 +1246,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>81</FileNumber> <FileNumber>82</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1245,7 +1258,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>82</FileNumber> <FileNumber>83</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1257,7 +1270,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>83</FileNumber> <FileNumber>84</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1269,7 +1282,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>84</FileNumber> <FileNumber>85</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1281,7 +1294,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>85</FileNumber> <FileNumber>86</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1293,7 +1306,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>86</FileNumber> <FileNumber>87</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1305,7 +1318,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>87</FileNumber> <FileNumber>88</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1317,7 +1330,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>88</FileNumber> <FileNumber>89</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1329,7 +1342,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>89</FileNumber> <FileNumber>90</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1341,7 +1354,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>90</FileNumber> <FileNumber>91</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1353,7 +1366,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>91</FileNumber> <FileNumber>92</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1365,7 +1378,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>92</FileNumber> <FileNumber>93</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1377,7 +1390,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>93</FileNumber> <FileNumber>94</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1389,7 +1402,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>94</FileNumber> <FileNumber>95</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1401,7 +1414,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>95</FileNumber> <FileNumber>96</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1413,7 +1426,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>96</FileNumber> <FileNumber>97</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1425,7 +1438,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>97</FileNumber> <FileNumber>98</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1435,6 +1448,18 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\e-Paper\EPD_2in36g.c</PathWithFileName>
<FilenameWithoutPath>EPD_2in36g.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -1445,7 +1470,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>98</FileNumber> <FileNumber>100</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1465,7 +1490,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>99</FileNumber> <FileNumber>101</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1485,7 +1510,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>100</FileNumber> <FileNumber>102</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1497,7 +1522,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>101</FileNumber> <FileNumber>103</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1509,7 +1534,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>102</FileNumber> <FileNumber>104</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1521,7 +1546,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>103</FileNumber> <FileNumber>105</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1533,7 +1558,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>104</FileNumber> <FileNumber>106</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1545,7 +1570,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>105</FileNumber> <FileNumber>107</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1557,7 +1582,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>106</FileNumber> <FileNumber>108</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1577,7 +1602,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>107</FileNumber> <FileNumber>109</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1589,7 +1614,7 @@
</File> </File>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>108</FileNumber> <FileNumber>110</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1609,7 +1634,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>9</GroupNumber> <GroupNumber>9</GroupNumber>
<FileNumber>109</FileNumber> <FileNumber>111</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1629,7 +1654,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>110</FileNumber> <FileNumber>112</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1641,7 +1666,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>111</FileNumber> <FileNumber>113</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1653,7 +1678,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>112</FileNumber> <FileNumber>114</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1665,7 +1690,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>113</FileNumber> <FileNumber>115</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1677,7 +1702,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>114</FileNumber> <FileNumber>116</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1689,7 +1714,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>115</FileNumber> <FileNumber>117</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1701,7 +1726,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>116</FileNumber> <FileNumber>118</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1713,7 +1738,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>117</FileNumber> <FileNumber>119</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1725,7 +1750,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>118</FileNumber> <FileNumber>120</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1737,7 +1762,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>119</FileNumber> <FileNumber>121</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1749,7 +1774,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>120</FileNumber> <FileNumber>122</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1761,7 +1786,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>121</FileNumber> <FileNumber>123</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1773,7 +1798,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>122</FileNumber> <FileNumber>124</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1785,7 +1810,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>123</FileNumber> <FileNumber>125</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -1797,7 +1822,7 @@
</File> </File>
<File> <File>
<GroupNumber>10</GroupNumber> <GroupNumber>10</GroupNumber>
<FileNumber>124</FileNumber> <FileNumber>126</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View file

@ -16,7 +16,7 @@
<TargetCommonOption> <TargetCommonOption>
<Device>STM32F103ZE</Device> <Device>STM32F103ZE</Device>
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.3.0</PackID> <PackID>Keil.STM32F1xx_DFP.2.1.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x807FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu> <Cpu>IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x807FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
@ -184,6 +184,7 @@
<hadXRAM>0</hadXRAM> <hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@ -656,6 +657,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\User\Examples\EPD_7in3g_test.c</FilePath> <FilePath>..\User\Examples\EPD_7in3g_test.c</FilePath>
</File> </File>
<File>
<FileName>EPD_2in36g_test.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\Examples\EPD_2in36g_test.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@ -881,6 +887,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_7in3g.c</FilePath> <FilePath>..\User\e-Paper\EPD_7in3g.c</FilePath>
</File> </File>
<File>
<FileName>EPD_2in36g.c</FileName>
<FileType>1</FileType>
<FilePath>..\User\e-Paper\EPD_2in36g.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

View file

@ -3,58 +3,202 @@
<pre> <pre>
<h1>µVision Build Log</h1> <h1>µVision Build Log</h1>
<h2>Tool Versions:</h2> <h2>Tool Versions:</h2>
IDE-Version: ¦ÌVision V5.25.2.0 IDE-Version: ¦ÌVision V5.26.2.0
Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved. Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
License Information: ass ass, ass, LIC=JL2UH-W872P-CJR6Z-JYZTW-ESB48-R6YF4 License Information: , , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
Tool Versions: Tool Versions:
Toolchain: MDK-ARM Plus Version: 5.25.2.0 Toolchain: MDK-ARM Plus Version: 5.26.2.0
Toolchain Path: D:\Program Files\keil5\ARM\ARMCC\Bin Toolchain Path: D:\KEIL\azwz\ARM\ARMCC\Bin
C Compiler: Armcc.exe V5.06 update 6 (build 750) C Compiler: Armcc.exe V5.06 update 6 (build 750)
Assembler: Armasm.exe V5.06 update 6 (build 750) Assembler: Armasm.exe V5.06 update 6 (build 750)
Linker/Locator: ArmLink.exe V5.06 update 6 (build 750) Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
Library Manager: ArmAr.exe V5.06 update 6 (build 750) Library Manager: ArmAr.exe V5.06 update 6 (build 750)
Hex Converter: FromElf.exe V5.06 update 6 (build 750) Hex Converter: FromElf.exe V5.06 update 6 (build 750)
CPU DLL: SARMCM3.DLL V5.25.2.0 CPU DLL: SARMCM3.DLL V5.26.2.0
Dialog DLL: DCM.DLL V1.17.1.0 Dialog DLL: DCM.DLL V1.17.2.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0 Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
Dialog DLL: TCM.DLL V1.35.1.0 Dialog DLL: TCM.DLL V1.36.1.0
<h2>Project:</h2> <h2>Project:</h2>
E:\github\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx E:\ÏîÄ¿\e-Paper\Code\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
Project File Date: 08/16/2022 Project File Date: 08/17/2022
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
Build target 'epd-demo' Build target 'epd-demo'
assembling startup_stm32f103xe.s...
compiling gpio.c...
compiling usart.c...
compiling spi.c...
compiling main.c...
compiling stm32f1xx_it.c...
compiling ImageData2.c...
..\User\Examples\ImageData2.c(11767): warning: #1-D: last line of file ends without a newline
};
..\User\Examples\ImageData2.c: 1 warning, 0 errors
compiling ImageData.c...
compiling stm32f1xx_hal_msp.c...
compiling EPD_1in54_V2_test.c...
compiling EPD_1in02_test.c...
compiling EPD_1in54_test.c...
compiling EPD_1in54b_test.c...
compiling EPD_2in7b_V2_test.c...
compiling EPD_1in54b_V2_test.c...
compiling EPD_2in7b_test.c...
compiling EPD_1in54c_test.c...
compiling EPD_2in7_test.c...
compiling EPD_2in9d_test.c...
compiling EPD_2in9bc_test.c...
compiling EPD_2in9b_V3_test.c...
compiling EPD_2in9_V2_test.c...
compiling EPD_2in9_test.c...
compiling EPD_2in13_test.c...
compiling EPD_2in13_V3_test.c...
compiling EPD_2in13_V2_test.c...
compiling EPD_2in13b_V3_test.c...
compiling EPD_2in13b_V4_test.c...
compiling EPD_3in52_test.c...
compiling EPD_2in13d_test.c...
compiling EPD_2in13bc_test.c...
compiling EPD_2in66_test.c...
compiling EPD_2in66b_test.c...
compiling EPD_3in7_test.c...
compiling EPD_4in2bc_test.c...
compiling EPD_4in2b_V2_test.c...
compiling EPD_4in2_test.c...
compiling EPD_4in01f_test.c...
compiling EPD_5in83_V2_test.c...
compiling EPD_5in83_test.c...
compiling EPD_5in65f_test.c...
compiling EPD_5in83b_V2_test.c...
compiling EPD_5in83bc_test.c...
compiling EPD_7in5b_V2_test.c...
compiling EPD_7in5_V2_test.c...
compiling EPD_7in5bc_test.c...
compiling EPD_7in5_test.c...
compiling EPD_7in5b_HD_test.c...
compiling EPD_7in5_HD_test.c...
compiling EPD_7in3g_test.c...
compiling EPD_3in0g_test.c...
compiling EPD_1in64g_test.c...
compiling EPD_4in37g_test.c... compiling EPD_4in37g_test.c...
compiling EPD_1in02d.c...
compiling EPD_1in54b.c...
compiling EPD_1in54.c...
compiling EPD_1in54_V2.c...
compiling EPD_2in36g_test.c...
compiling EPD_2in7.c...
compiling EPD_2in7b_V2.c...
compiling EPD_2in7b.c...
compiling EPD_1in54b_V2.c...
compiling EPD_1in54c.c...
compiling EPD_2in9.c...
compiling EPD_2in9d.c...
compiling EPD_2in9bc.c...
compiling EPD_2in9_V2.c...
compiling EPD_2in9b_V3.c...
compiling EPD_2in13_V2.c...
compiling EPD_2in13.c...
compiling EPD_2in13bc.c...
compiling EPD_2in13b_V3.c...
compiling EPD_2in13_V3.c...
compiling EPD_2in13b_V4.c...
compiling EPD_2in13d.c...
compiling EPD_2in66b.c...
compiling EPD_2in66.c...
compiling EPD_3in52.c...
compiling EPD_3in7.c...
compiling EPD_4in2.c...
..\User\e-Paper\EPD_4in2.c(612): warning: #550-D: variable "Height" was set but never used
UWORD Width, Height;
..\User\e-Paper\EPD_4in2.c: 1 warning, 0 errors
compiling EPD_4in2bc.c...
compiling EPD_4in2b_V2.c...
compiling EPD_4in01f.c...
compiling EPD_5in83bc.c...
compiling EPD_5in83b_V2.c...
compiling EPD_5in65f.c...
compiling EPD_5in83_V2.c...
compiling EPD_5in83.c...
compiling EPD_7in5_V2.c...
compiling EPD_7in5bc.c...
compiling EPD_7in5b_V2.c...
compiling EPD_7in5_HD.c...
compiling EPD_7in5.c...
compiling EPD_1in64g.c...
..\User\e-Paper\EPD_1in64g.c(86): warning: #177-D: function "EPD_1IN64G_ReadBusyL" was declared but never referenced
static void EPD_1IN64G_ReadBusyL(void)
..\User\e-Paper\EPD_1in64g.c: 1 warning, 0 errors
compiling EPD_7in5b_HD.c...
compiling EPD_3in0g.c...
..\User\e-Paper\EPD_3in0g.c(86): warning: #177-D: function "EPD_3IN0G_ReadBusyL" was declared but never referenced
static void EPD_3IN0G_ReadBusyL(void)
..\User\e-Paper\EPD_3in0g.c: 1 warning, 0 errors
compiling EPD_7in3g.c...
..\User\e-Paper\EPD_7in3g.c(86): warning: #177-D: function "EPD_7IN3G_ReadBusyL" was declared but never referenced
static void EPD_7IN3G_ReadBusyL(void)
..\User\e-Paper\EPD_7in3g.c: 1 warning, 0 errors
compiling EPD_4in37g.c...
..\User\e-Paper\EPD_4in37g.c(86): warning: #177-D: function "EPD_4IN37G_ReadBusyL" was declared but never referenced
static void EPD_4IN37G_ReadBusyL(void)
..\User\e-Paper\EPD_4in37g.c: 1 warning, 0 errors
compiling font8.c...
compiling font12.c...
compiling font12CN.c...
compiling font16.c...
compiling font20.c...
compiling font24.c...
compiling font24CN.c...
compiling DEV_Config.c...
compiling stm32f1xx_hal_gpio_ex.c...
compiling EPD_2in36g.c...
..\User\e-Paper\EPD_2in36g.c(86): warning: #177-D: function "EPD_2IN36G_ReadBusyL" was declared but never referenced
static void EPD_2IN36G_ReadBusyL(void)
..\User\e-Paper\EPD_2in36g.c: 1 warning, 0 errors
compiling system_stm32f1xx.c...
compiling GUI_Paint.c...
compiling stm32f1xx_hal.c...
compiling stm32f1xx_hal_gpio.c...
compiling stm32f1xx_hal_rcc_ex.c...
compiling stm32f1xx_hal_rcc.c...
compiling stm32f1xx_hal_spi.c...
compiling stm32f1xx_hal_flash.c...
compiling stm32f1xx_hal_cortex.c...
compiling stm32f1xx_hal_flash_ex.c...
compiling stm32f1xx_hal_pwr.c...
compiling stm32f1xx_hal_dma.c...
compiling stm32f1xx_hal_tim.c...
compiling stm32f1xx_hal_exti.c...
compiling stm32f1xx_hal_tim_ex.c...
compiling stm32f1xx_hal_uart.c...
linking... linking...
Program Size: Code=24416 RO-data=57124 RW-data=56 ZI-data=53424 Program Size: Code=24680 RO-data=21692 RW-data=56 ZI-data=53424
FromELF: creating hex file... FromELF: creating hex file...
"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s). "epd-demo\epd-demo.axf" - 0 Error(s), 7 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
Package Vendor: ARM Package Vendor: ARM
http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack http://www.keil.com/pack/ARM.CMSIS.5.9.0.pack
ARM.CMSIS.5.7.0 ARM.CMSIS.5.9.0
CMSIS (Cortex Microcontroller Software Interface Standard) CMSIS (Common Microcontroller Software Interface Standard)
* Component: CORE Version: 5.4.0 * Component: CORE Version: 5.6.0
Package Vendor: Keil Package Vendor: Keil
http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.3.0.pack http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
Keil.STM32F1xx_DFP.2.3.0 Keil.STM32F1xx_DFP.2.1.0
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
<h2>Collection of Component include folders:</h2> <h2>Collection of Component include folders:</h2>
.\RTE\_epd-demo .\RTE\_epd-demo
D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\Include D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include
D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.4.0 * Component: ARM::CMSIS:CORE:5.6.0
Build Time Elapsed: 00:00:02 Build Time Elapsed: 00:00:56
</pre> </pre>
</body> </body>
</html> </html>

View file

@ -3,11 +3,11 @@
<title>Static Call Graph - [epd-demo\epd-demo.axf]</title></head> <title>Static Call Graph - [epd-demo\epd-demo.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image epd-demo\epd-demo.axf</H1><HR> <H1>Static Call Graph for image epd-demo\epd-demo.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Aug 16 16:55:17 2022 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Wed Aug 17 17:17:30 2022
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 760 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 760 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
main &rArr; EPD_4in37g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf main &rArr; EPD_2in36g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
<P> <P>
<H3> <H3>
Mutually Recursive functions Mutually Recursive functions
@ -365,14 +365,14 @@ Global Symbols
</UL> </UL>
<P><STRONG><a name="[46]"></a>main</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, main.o(.text)) <P><STRONG><a name="[46]"></a>main</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, main.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 760<LI>Call Chain = main &rArr; EPD_4in37g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf <BR><BR>[Stack]<UL><LI>Max Depth = 760<LI>Call Chain = main &rArr; EPD_2in36g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init <BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init <LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init <LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B) <BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
@ -493,11 +493,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init <BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
</UL> </UL>
<P><STRONG><a name="[74]"></a>EPD_4in37g_test</STRONG> (Thumb, 688 bytes, Stack size 56 bytes, epd_4in37g_test.o(.text)) <P><STRONG><a name="[74]"></a>EPD_2in36g_test</STRONG> (Thumb, 966 bytes, Stack size 56 bytes, epd_2in36g_test.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 760<LI>Call Chain = EPD_4in37g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf <BR><BR>[Stack]<UL><LI>Max Depth = 760<LI>Call Chain = EPD_2in36g_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetScale <BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetScale
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawBitMap <LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawBitMap
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SelectImage <LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SelectImage
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_NewImage <LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_NewImage
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN <LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
@ -507,14 +507,14 @@ Global Symbols
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum <LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine <LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle <LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_Clear <LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_Clear
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit <LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Sleep <LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Sleep
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Init <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Init
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Display <LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Display
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Clear <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Clear
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc <LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free <LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
@ -522,46 +522,46 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[82]"></a>EPD_4IN37G_Init</STRONG> (Thumb, 344 bytes, Stack size 8 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[82]"></a>EPD_2IN36G_Init</STRONG> (Thumb, 284 bytes, Stack size 8 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_4IN37G_Init &rArr; EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN36G_Init &rArr; EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[83]"></a>EPD_4IN37G_Clear</STRONG> (Thumb, 74 bytes, Stack size 24 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[83]"></a>EPD_2IN36G_Clear</STRONG> (Thumb, 98 bytes, Stack size 24 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = EPD_4IN37G_Clear &rArr; EPD_4IN37G_TurnOnDisplay &rArr; EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = EPD_2IN36G_Clear &rArr; EPD_2IN36G_TurnOnDisplay &rArr; EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_TurnOnDisplay <BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_TurnOnDisplay
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[8a]"></a>EPD_4IN37G_Display</STRONG> (Thumb, 72 bytes, Stack size 32 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[89]"></a>EPD_2IN36G_Display</STRONG> (Thumb, 84 bytes, Stack size 32 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_4IN37G_Display &rArr; EPD_4IN37G_TurnOnDisplay &rArr; EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_2IN36G_Display &rArr; EPD_2IN36G_TurnOnDisplay &rArr; EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_TurnOnDisplay <BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_TurnOnDisplay
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[92]"></a>EPD_4IN37G_Sleep</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[92]"></a>EPD_2IN36G_Sleep</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_4IN37G_Sleep &rArr; EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN36G_Sleep &rArr; EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[9a]"></a>DEV_SPI_WriteByte</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, dev_config.o(.text)) <P><STRONG><a name="[9a]"></a>DEV_SPI_WriteByte</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, dev_config.o(.text))
@ -569,8 +569,8 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit <BR>[Calls]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <BR>[Called By]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
</UL> </UL>
<P><STRONG><a name="[81]"></a>DEV_Module_Init</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text)) <P><STRONG><a name="[81]"></a>DEV_Module_Init</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
@ -578,7 +578,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[94]"></a>DEV_Module_Exit</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text)) <P><STRONG><a name="[94]"></a>DEV_Module_Exit</STRONG> (Thumb, 38 bytes, Stack size 8 bytes, dev_config.o(.text))
@ -586,17 +586,17 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[85]"></a>Paint_NewImage</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, gui_paint.o(.text)) <P><STRONG><a name="[85]"></a>Paint_NewImage</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_NewImage <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_NewImage
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[87]"></a>Paint_SelectImage</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, gui_paint.o(.text)) <P><STRONG><a name="[87]"></a>Paint_SelectImage</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, gui_paint.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR><BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[9c]"></a>Paint_SetRotate</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED) <P><STRONG><a name="[9c]"></a>Paint_SetRotate</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
@ -608,7 +608,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[9d]"></a>Paint_SetMirroring</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED) <P><STRONG><a name="[9d]"></a>Paint_SetMirroring</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
@ -627,10 +627,10 @@ Global Symbols
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar <LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
</UL> </UL>
<P><STRONG><a name="[88]"></a>Paint_Clear</STRONG> (Thumb, 156 bytes, Stack size 12 bytes, gui_paint.o(.text)) <P><STRONG><a name="[8a]"></a>Paint_Clear</STRONG> (Thumb, 156 bytes, Stack size 12 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = Paint_Clear <BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = Paint_Clear
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[9f]"></a>Paint_ClearWindows</STRONG> (Thumb, 52 bytes, Stack size 32 bytes, gui_paint.o(.text), UNUSED) <P><STRONG><a name="[9f]"></a>Paint_ClearWindows</STRONG> (Thumb, 52 bytes, Stack size 32 bytes, gui_paint.o(.text), UNUSED)
@ -645,7 +645,7 @@ Global Symbols
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine <BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle <LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[8c]"></a>Paint_DrawLine</STRONG> (Thumb, 662 bytes, Stack size 48 bytes, gui_paint.o(.text)) <P><STRONG><a name="[8c]"></a>Paint_DrawLine</STRONG> (Thumb, 662 bytes, Stack size 48 bytes, gui_paint.o(.text))
@ -655,7 +655,7 @@ Global Symbols
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle <BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[8d]"></a>Paint_DrawRectangle</STRONG> (Thumb, 170 bytes, Stack size 48 bytes, gui_paint.o(.text)) <P><STRONG><a name="[8d]"></a>Paint_DrawRectangle</STRONG> (Thumb, 170 bytes, Stack size 48 bytes, gui_paint.o(.text))
@ -664,7 +664,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine <BR>[Calls]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[8e]"></a>Paint_DrawCircle</STRONG> (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text)) <P><STRONG><a name="[8e]"></a>Paint_DrawCircle</STRONG> (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text))
@ -673,7 +673,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint <BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[a0]"></a>Paint_DrawChar</STRONG> (Thumb, 172 bytes, Stack size 40 bytes, gui_paint.o(.text)) <P><STRONG><a name="[a0]"></a>Paint_DrawChar</STRONG> (Thumb, 172 bytes, Stack size 40 bytes, gui_paint.o(.text))
@ -693,7 +693,7 @@ Global Symbols
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum <BR>[Called By]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[90]"></a>Paint_DrawString_CN</STRONG> (Thumb, 518 bytes, Stack size 40 bytes, gui_paint.o(.text)) <P><STRONG><a name="[90]"></a>Paint_DrawString_CN</STRONG> (Thumb, 518 bytes, Stack size 40 bytes, gui_paint.o(.text))
@ -701,7 +701,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel <BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[91]"></a>Paint_DrawNum</STRONG> (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text)) <P><STRONG><a name="[91]"></a>Paint_DrawNum</STRONG> (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text))
@ -711,17 +711,17 @@ Global Symbols
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4 <LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[a1]"></a>Paint_DrawTime</STRONG> (Thumb, 282 bytes, Stack size 72 bytes, gui_paint.o(.text), UNUSED) <P><STRONG><a name="[a1]"></a>Paint_DrawTime</STRONG> (Thumb, 282 bytes, Stack size 72 bytes, gui_paint.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar <BR><BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
</UL> </UL>
<P><STRONG><a name="[89]"></a>Paint_DrawBitMap</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, gui_paint.o(.text)) <P><STRONG><a name="[88]"></a>Paint_DrawBitMap</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, gui_paint.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_DrawBitMap <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_DrawBitMap
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[a2]"></a>Paint_DrawBitMap_Paste</STRONG> (Thumb, 110 bytes, Stack size 56 bytes, gui_paint.o(.text), UNUSED) <P><STRONG><a name="[a2]"></a>Paint_DrawBitMap_Paste</STRONG> (Thumb, 110 bytes, Stack size 56 bytes, gui_paint.o(.text), UNUSED)
@ -935,10 +935,10 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Init <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Init
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<P><STRONG><a name="[10e]"></a>HAL_SuspendTick</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED) <P><STRONG><a name="[10e]"></a>HAL_SuspendTick</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
@ -1055,16 +1055,16 @@ Global Symbols
</UL> </UL>
<P><STRONG><a name="[96]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text)) <P><STRONG><a name="[96]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <BR><BR>[Called By]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<P><STRONG><a name="[76]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text)) <P><STRONG><a name="[76]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init <BR><BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit <LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Init <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Init
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
</UL> </UL>
<P><STRONG><a name="[120]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED) <P><STRONG><a name="[120]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
@ -1387,13 +1387,13 @@ Global Symbols
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine <LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle <LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
<LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler <LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetMirroring <LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetMirroring
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar <LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel <LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetRotate <LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetRotate
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<P><STRONG><a name="[143]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) <P><STRONG><a name="[143]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
@ -1405,65 +1405,65 @@ Global Symbols
<P><STRONG><a name="[93]"></a>free</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, malloc.o(i.free)) <P><STRONG><a name="[93]"></a>free</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, malloc.o(i.free))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = free <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = free
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P><STRONG><a name="[84]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc)) <P><STRONG><a name="[84]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4in37g_test <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2in36g_test
</UL> </UL>
<P> <P>
<H3> <H3>
Local Symbols Local Symbols
</H3> </H3>
<P><STRONG><a name="[95]"></a>EPD_4IN37G_ReadBusyH</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[95]"></a>EPD_2IN36G_ReadBusyH</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = EPD_4IN37G_ReadBusyH &rArr; __2printf <BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = EPD_2IN36G_ReadBusyH &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin <LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Display <BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Display
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Clear <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Clear
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_TurnOnDisplay <LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_TurnOnDisplay
</UL> </UL>
<P><STRONG><a name="[97]"></a>EPD_4IN37G_SendCommand</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[97]"></a>EPD_2IN36G_SendCommand</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_4IN37G_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_2IN36G_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte <LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Sleep <BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Sleep
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Init <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Init
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Display <LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Display
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Clear <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Clear
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_TurnOnDisplay <LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_TurnOnDisplay
</UL> </UL>
<P><STRONG><a name="[98]"></a>EPD_4IN37G_SendData</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[98]"></a>EPD_2IN36G_SendData</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte <LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Sleep <BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Sleep
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Init <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Init
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Display <LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Display
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Clear <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Clear
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_TurnOnDisplay <LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_TurnOnDisplay
</UL> </UL>
<P><STRONG><a name="[99]"></a>EPD_4IN37G_TurnOnDisplay</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, epd_4in37g.o(.text)) <P><STRONG><a name="[99]"></a>EPD_2IN36G_TurnOnDisplay</STRONG> (Thumb, 36 bytes, Stack size 8 bytes, epd_2in36g.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_4IN37G_TurnOnDisplay &rArr; EPD_4IN37G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN36G_TurnOnDisplay &rArr; EPD_2IN36G_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendData <BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendData
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_SendCommand <LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_SendCommand
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_ReadBusyH <LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_ReadBusyH
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Display <BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Display
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_4IN37G_Clear <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN36G_Clear
</UL> </UL>
<P><STRONG><a name="[a4]"></a>SPI_WaitFlagStateUntilTimeout</STRONG> (Thumb, 210 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(.text)) <P><STRONG><a name="[a4]"></a>SPI_WaitFlagStateUntilTimeout</STRONG> (Thumb, 210 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(.text))

View file

@ -16,7 +16,7 @@ Section Cross References
main.o(.text) refers to gpio.o(.text) for MX_GPIO_Init main.o(.text) refers to gpio.o(.text) for MX_GPIO_Init
main.o(.text) refers to usart.o(.text) for MX_USART1_UART_Init main.o(.text) refers to usart.o(.text) for MX_USART1_UART_Init
main.o(.text) refers to spi.o(.text) for MX_SPI1_Init main.o(.text) refers to spi.o(.text) for MX_SPI1_Init
main.o(.text) refers to epd_4in37g_test.o(.text) for EPD_4in37g_test main.o(.text) refers to epd_2in36g_test.o(.text) for EPD_2in36g_test
gpio.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin gpio.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
spi.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Init spi.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Init
spi.o(.text) refers to main.o(.text) for Error_Handler spi.o(.text) refers to main.o(.text) for Error_Handler
@ -569,6 +569,17 @@ Section Cross References
epd_7in3g_test.o(.text) refers to font16.o(.data) for Font16 epd_7in3g_test.o(.text) refers to font16.o(.data) for Font16
epd_7in3g_test.o(.text) refers to font12.o(.data) for Font12 epd_7in3g_test.o(.text) refers to font12.o(.data) for Font12
epd_7in3g_test.o(.text) refers to font24cn.o(.data) for Font24CN epd_7in3g_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_2in36g_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in36g_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
epd_2in36g_test.o(.text) refers to epd_2in36g.o(.text) for EPD_2IN36G_Init
epd_2in36g_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in36g_test.o(.text) refers to malloc.o(i.malloc) for malloc
epd_2in36g_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
epd_2in36g_test.o(.text) refers to malloc.o(i.free) for free
epd_2in36g_test.o(.text) refers to imagedata2.o(.constdata) for gImage_2in36g
epd_2in36g_test.o(.text) refers to font16.o(.data) for Font16
epd_2in36g_test.o(.text) refers to font12.o(.data) for Font12
epd_2in36g_test.o(.text) refers to font24cn.o(.data) for Font24CN
epd_1in02d.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin epd_1in02d.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
epd_1in02d.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay epd_1in02d.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_1in02d.o(.text) refers to printf3.o(i.__0printf$3) for __2printf epd_1in02d.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
@ -762,6 +773,10 @@ Section Cross References
epd_7in3g.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay epd_7in3g.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_7in3g.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin epd_7in3g.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_7in3g.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte epd_7in3g.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
epd_2in36g.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
epd_2in36g.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
epd_2in36g.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_ReadPin
epd_2in36g.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
dev_config.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Transmit dev_config.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Transmit
dev_config.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin dev_config.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
dev_config.o(.text) refers to spi.o(.bss) for hspi1 dev_config.o(.text) refers to spi.o(.bss) for hspi1
@ -1174,6 +1189,7 @@ Removing Unused input sections from the image.
Removing imagedata2.o(.constdata), (7056 bytes). Removing imagedata2.o(.constdata), (7056 bytes).
Removing imagedata2.o(.constdata), (16800 bytes). Removing imagedata2.o(.constdata), (16800 bytes).
Removing imagedata2.o(.constdata), (96000 bytes). Removing imagedata2.o(.constdata), (96000 bytes).
Removing imagedata2.o(.constdata), (47104 bytes).
Removing epd_1in02_test.o(.rev16_text), (4 bytes). Removing epd_1in02_test.o(.rev16_text), (4 bytes).
Removing epd_1in02_test.o(.revsh_text), (4 bytes). Removing epd_1in02_test.o(.revsh_text), (4 bytes).
Removing epd_1in02_test.o(.rrx_text), (6 bytes). Removing epd_1in02_test.o(.rrx_text), (6 bytes).
@ -1346,10 +1362,14 @@ Removing Unused input sections from the image.
Removing epd_4in37g_test.o(.rev16_text), (4 bytes). Removing epd_4in37g_test.o(.rev16_text), (4 bytes).
Removing epd_4in37g_test.o(.revsh_text), (4 bytes). Removing epd_4in37g_test.o(.revsh_text), (4 bytes).
Removing epd_4in37g_test.o(.rrx_text), (6 bytes). Removing epd_4in37g_test.o(.rrx_text), (6 bytes).
Removing epd_4in37g_test.o(.text), (1052 bytes).
Removing epd_7in3g_test.o(.rev16_text), (4 bytes). Removing epd_7in3g_test.o(.rev16_text), (4 bytes).
Removing epd_7in3g_test.o(.revsh_text), (4 bytes). Removing epd_7in3g_test.o(.revsh_text), (4 bytes).
Removing epd_7in3g_test.o(.rrx_text), (6 bytes). Removing epd_7in3g_test.o(.rrx_text), (6 bytes).
Removing epd_7in3g_test.o(.text), (924 bytes). Removing epd_7in3g_test.o(.text), (924 bytes).
Removing epd_2in36g_test.o(.rev16_text), (4 bytes).
Removing epd_2in36g_test.o(.revsh_text), (4 bytes).
Removing epd_2in36g_test.o(.rrx_text), (6 bytes).
Removing epd_1in02d.o(.rev16_text), (4 bytes). Removing epd_1in02d.o(.rev16_text), (4 bytes).
Removing epd_1in02d.o(.revsh_text), (4 bytes). Removing epd_1in02d.o(.revsh_text), (4 bytes).
Removing epd_1in02d.o(.rrx_text), (6 bytes). Removing epd_1in02d.o(.rrx_text), (6 bytes).
@ -1541,10 +1561,14 @@ Removing Unused input sections from the image.
Removing epd_4in37g.o(.rev16_text), (4 bytes). Removing epd_4in37g.o(.rev16_text), (4 bytes).
Removing epd_4in37g.o(.revsh_text), (4 bytes). Removing epd_4in37g.o(.revsh_text), (4 bytes).
Removing epd_4in37g.o(.rrx_text), (6 bytes). Removing epd_4in37g.o(.rrx_text), (6 bytes).
Removing epd_4in37g.o(.text), (748 bytes).
Removing epd_7in3g.o(.rev16_text), (4 bytes). Removing epd_7in3g.o(.rev16_text), (4 bytes).
Removing epd_7in3g.o(.revsh_text), (4 bytes). Removing epd_7in3g.o(.revsh_text), (4 bytes).
Removing epd_7in3g.o(.rrx_text), (6 bytes). Removing epd_7in3g.o(.rrx_text), (6 bytes).
Removing epd_7in3g.o(.text), (884 bytes). Removing epd_7in3g.o(.text), (884 bytes).
Removing epd_2in36g.o(.rev16_text), (4 bytes).
Removing epd_2in36g.o(.revsh_text), (4 bytes).
Removing epd_2in36g.o(.rrx_text), (6 bytes).
Removing dev_config.o(.rev16_text), (4 bytes). Removing dev_config.o(.rev16_text), (4 bytes).
Removing dev_config.o(.revsh_text), (4 bytes). Removing dev_config.o(.revsh_text), (4 bytes).
Removing dev_config.o(.rrx_text), (6 bytes). Removing dev_config.o(.rrx_text), (6 bytes).
@ -1555,8 +1579,8 @@ Removing Unused input sections from the image.
Removing font8.o(.data), (8 bytes). Removing font8.o(.data), (8 bytes).
Removing font12cn.o(.constdata), (1494 bytes). Removing font12cn.o(.constdata), (1494 bytes).
Removing font12cn.o(.data), (12 bytes). Removing font12cn.o(.data), (12 bytes).
Removing font16.o(.constdata), (3040 bytes). Removing font20.o(.constdata), (3800 bytes).
Removing font16.o(.data), (8 bytes). Removing font20.o(.data), (8 bytes).
Removing font24.o(.constdata), (6840 bytes). Removing font24.o(.constdata), (6840 bytes).
Removing font24.o(.data), (8 bytes). Removing font24.o(.data), (8 bytes).
Removing system_stm32f1xx.o(.rev16_text), (4 bytes). Removing system_stm32f1xx.o(.rev16_text), (4 bytes).
@ -1621,7 +1645,7 @@ Removing Unused input sections from the image.
Removing cdrcmple.o(.text), (48 bytes). Removing cdrcmple.o(.text), (48 bytes).
Removing depilogue.o(.text), (186 bytes). Removing depilogue.o(.text), (186 bytes).
514 unused section(s) (total 1075618 bytes) removed from the image. 523 unused section(s) (total 1125310 bytes) removed from the image.
============================================================================== ==============================================================================
@ -1653,44 +1677,44 @@ Image Symbol Table
../Src/stm32f1xx_it.c 0x00000000 Number 0 stm32f1xx_it.o ABSOLUTE ../Src/stm32f1xx_it.c 0x00000000 Number 0 stm32f1xx_it.o ABSOLUTE
../Src/system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE ../Src/system_stm32f1xx.c 0x00000000 Number 0 system_stm32f1xx.o ABSOLUTE
../Src/usart.c 0x00000000 Number 0 usart.o ABSOLUTE ../Src/usart.c 0x00000000 Number 0 usart.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE ../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE ../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@ -1735,6 +1759,7 @@ Image Symbol Table
..\User\Examples\EPD_2in13b_V4_test.c 0x00000000 Number 0 epd_2in13b_v4_test.o ABSOLUTE ..\User\Examples\EPD_2in13b_V4_test.c 0x00000000 Number 0 epd_2in13b_v4_test.o ABSOLUTE
..\User\Examples\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE ..\User\Examples\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE
..\User\Examples\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE ..\User\Examples\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE
..\User\Examples\EPD_2in36g_test.c 0x00000000 Number 0 epd_2in36g_test.o ABSOLUTE
..\User\Examples\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE ..\User\Examples\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE
..\User\Examples\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE ..\User\Examples\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE
..\User\Examples\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE ..\User\Examples\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE
@ -1789,6 +1814,7 @@ Image Symbol Table
..\User\e-Paper\EPD_2in13b_V4.c 0x00000000 Number 0 epd_2in13b_v4.o ABSOLUTE ..\User\e-Paper\EPD_2in13b_V4.c 0x00000000 Number 0 epd_2in13b_v4.o ABSOLUTE
..\User\e-Paper\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE ..\User\e-Paper\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE
..\User\e-Paper\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE ..\User\e-Paper\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE
..\User\e-Paper\EPD_2in36g.c 0x00000000 Number 0 epd_2in36g.o ABSOLUTE
..\User\e-Paper\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE ..\User\e-Paper\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE
..\User\e-Paper\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE ..\User\e-Paper\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE
..\User\e-Paper\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE ..\User\e-Paper\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE
@ -1834,6 +1860,7 @@ Image Symbol Table
..\\User\\Examples\\EPD_2in13b_V4_test.c 0x00000000 Number 0 epd_2in13b_v4_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in13b_V4_test.c 0x00000000 Number 0 epd_2in13b_v4_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in13bc_test.c 0x00000000 Number 0 epd_2in13bc_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in13d_test.c 0x00000000 Number 0 epd_2in13d_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in36g_test.c 0x00000000 Number 0 epd_2in36g_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in66_test.c 0x00000000 Number 0 epd_2in66_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in66b_test.c 0x00000000 Number 0 epd_2in66b_test.o ABSOLUTE
..\\User\\Examples\\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE ..\\User\\Examples\\EPD_2in7_test.c 0x00000000 Number 0 epd_2in7_test.o ABSOLUTE
@ -1879,6 +1906,7 @@ Image Symbol Table
..\\User\\e-Paper\\EPD_2in13b_V4.c 0x00000000 Number 0 epd_2in13b_v4.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in13b_V4.c 0x00000000 Number 0 epd_2in13b_v4.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in13bc.c 0x00000000 Number 0 epd_2in13bc.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in13d.c 0x00000000 Number 0 epd_2in13d.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in36g.c 0x00000000 Number 0 epd_2in36g.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in66.c 0x00000000 Number 0 epd_2in66.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in66b.c 0x00000000 Number 0 epd_2in66b.o ABSOLUTE
..\\User\\e-Paper\\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE ..\\User\\e-Paper\\EPD_2in7.c 0x00000000 Number 0 epd_2in7.o ABSOLUTE
@ -1932,87 +1960,87 @@ Image Symbol Table
.text 0x0800031c Section 0 usart.o(.text) .text 0x0800031c Section 0 usart.o(.text)
.text 0x080003f4 Section 0 stm32f1xx_it.o(.text) .text 0x080003f4 Section 0 stm32f1xx_it.o(.text)
.text 0x08000424 Section 0 stm32f1xx_hal_msp.o(.text) .text 0x08000424 Section 0 stm32f1xx_hal_msp.o(.text)
.text 0x08000460 Section 0 epd_4in37g_test.o(.text) .text 0x08000460 Section 0 epd_2in36g_test.o(.text)
.text 0x08000890 Section 0 epd_4in37g.o(.text) .text 0x080009b0 Section 0 epd_2in36g.o(.text)
EPD_4IN37G_ReadBusyH 0x08000891 Thumb Code 40 epd_4in37g.o(.text) EPD_2IN36G_ReadBusyH 0x080009b1 Thumb Code 40 epd_2in36g.o(.text)
EPD_4IN37G_SendCommand 0x08000ac1 Thumb Code 46 epd_4in37g.o(.text) EPD_2IN36G_SendCommand 0x08000bc9 Thumb Code 46 epd_2in36g.o(.text)
EPD_4IN37G_SendData 0x08000aef Thumb Code 46 epd_4in37g.o(.text) EPD_2IN36G_SendData 0x08000bf7 Thumb Code 46 epd_2in36g.o(.text)
EPD_4IN37G_TurnOnDisplay 0x08000b1d Thumb Code 36 epd_4in37g.o(.text) EPD_2IN36G_TurnOnDisplay 0x08000c25 Thumb Code 36 epd_2in36g.o(.text)
.text 0x08000b7c Section 0 dev_config.o(.text) .text 0x08000c84 Section 0 dev_config.o(.text)
.text 0x08000be4 Section 0 gui_paint.o(.text) .text 0x08000cec Section 0 gui_paint.o(.text)
.text 0x08001a90 Section 0 system_stm32f1xx.o(.text) .text 0x08001b98 Section 0 system_stm32f1xx.o(.text)
.text 0x08001b54 Section 0 stm32f1xx_hal_spi.o(.text) .text 0x08001c5c Section 0 stm32f1xx_hal_spi.o(.text)
SPI_WaitFlagStateUntilTimeout 0x08001c3d Thumb Code 210 stm32f1xx_hal_spi.o(.text) SPI_WaitFlagStateUntilTimeout 0x08001d45 Thumb Code 210 stm32f1xx_hal_spi.o(.text)
SPI_EndRxTxTransaction 0x08001d0f Thumb Code 36 stm32f1xx_hal_spi.o(.text) SPI_EndRxTxTransaction 0x08001e17 Thumb Code 36 stm32f1xx_hal_spi.o(.text)
SPI_EndRxTransaction 0x08001ecf Thumb Code 112 stm32f1xx_hal_spi.o(.text) SPI_EndRxTransaction 0x08001fd7 Thumb Code 112 stm32f1xx_hal_spi.o(.text)
SPI_CloseTx_ISR 0x080022af Thumb Code 130 stm32f1xx_hal_spi.o(.text) SPI_CloseTx_ISR 0x080023b7 Thumb Code 130 stm32f1xx_hal_spi.o(.text)
SPI_TxISR_8BIT 0x08002331 Thumb Code 30 stm32f1xx_hal_spi.o(.text) SPI_TxISR_8BIT 0x08002439 Thumb Code 30 stm32f1xx_hal_spi.o(.text)
SPI_TxISR_16BIT 0x0800234f Thumb Code 30 stm32f1xx_hal_spi.o(.text) SPI_TxISR_16BIT 0x08002457 Thumb Code 30 stm32f1xx_hal_spi.o(.text)
SPI_CloseRx_ISR 0x08002411 Thumb Code 76 stm32f1xx_hal_spi.o(.text) SPI_CloseRx_ISR 0x08002519 Thumb Code 76 stm32f1xx_hal_spi.o(.text)
SPI_RxISR_8BIT 0x0800245d Thumb Code 30 stm32f1xx_hal_spi.o(.text) SPI_RxISR_8BIT 0x08002565 Thumb Code 30 stm32f1xx_hal_spi.o(.text)
SPI_RxISR_16BIT 0x0800247b Thumb Code 30 stm32f1xx_hal_spi.o(.text) SPI_RxISR_16BIT 0x08002583 Thumb Code 30 stm32f1xx_hal_spi.o(.text)
SPI_CloseRxTx_ISR 0x0800249b Thumb Code 158 stm32f1xx_hal_spi.o(.text) SPI_CloseRxTx_ISR 0x080025a3 Thumb Code 158 stm32f1xx_hal_spi.o(.text)
SPI_2linesTxISR_8BIT 0x08002539 Thumb Code 46 stm32f1xx_hal_spi.o(.text) SPI_2linesTxISR_8BIT 0x08002641 Thumb Code 46 stm32f1xx_hal_spi.o(.text)
SPI_2linesRxISR_8BIT 0x08002567 Thumb Code 46 stm32f1xx_hal_spi.o(.text) SPI_2linesRxISR_8BIT 0x0800266f Thumb Code 46 stm32f1xx_hal_spi.o(.text)
SPI_2linesTxISR_16BIT 0x08002595 Thumb Code 46 stm32f1xx_hal_spi.o(.text) SPI_2linesTxISR_16BIT 0x0800269d Thumb Code 46 stm32f1xx_hal_spi.o(.text)
SPI_2linesRxISR_16BIT 0x080025c3 Thumb Code 46 stm32f1xx_hal_spi.o(.text) SPI_2linesRxISR_16BIT 0x080026cb Thumb Code 46 stm32f1xx_hal_spi.o(.text)
SPI_DMAError 0x0800275d Thumb Code 34 stm32f1xx_hal_spi.o(.text) SPI_DMAError 0x08002865 Thumb Code 34 stm32f1xx_hal_spi.o(.text)
SPI_DMATransmitCplt 0x0800277f Thumb Code 102 stm32f1xx_hal_spi.o(.text) SPI_DMATransmitCplt 0x08002887 Thumb Code 102 stm32f1xx_hal_spi.o(.text)
SPI_DMAHalfTransmitCplt 0x080027e7 Thumb Code 10 stm32f1xx_hal_spi.o(.text) SPI_DMAHalfTransmitCplt 0x080028ef Thumb Code 10 stm32f1xx_hal_spi.o(.text)
SPI_DMAReceiveCplt 0x080028c1 Thumb Code 110 stm32f1xx_hal_spi.o(.text) SPI_DMAReceiveCplt 0x080029c9 Thumb Code 110 stm32f1xx_hal_spi.o(.text)
SPI_DMAHalfReceiveCplt 0x08002931 Thumb Code 10 stm32f1xx_hal_spi.o(.text) SPI_DMAHalfReceiveCplt 0x08002a39 Thumb Code 10 stm32f1xx_hal_spi.o(.text)
SPI_DMATransmitReceiveCplt 0x0800293b Thumb Code 92 stm32f1xx_hal_spi.o(.text) SPI_DMATransmitReceiveCplt 0x08002a43 Thumb Code 92 stm32f1xx_hal_spi.o(.text)
SPI_DMAHalfTransmitReceiveCplt 0x08002999 Thumb Code 10 stm32f1xx_hal_spi.o(.text) SPI_DMAHalfTransmitReceiveCplt 0x08002aa1 Thumb Code 10 stm32f1xx_hal_spi.o(.text)
SPI_AbortRx_ISR 0x08002be7 Thumb Code 82 stm32f1xx_hal_spi.o(.text) SPI_AbortRx_ISR 0x08002cef Thumb Code 82 stm32f1xx_hal_spi.o(.text)
SPI_AbortTx_ISR 0x08002c39 Thumb Code 28 stm32f1xx_hal_spi.o(.text) SPI_AbortTx_ISR 0x08002d41 Thumb Code 28 stm32f1xx_hal_spi.o(.text)
SPI_DMARxAbortCallback 0x08002d79 Thumb Code 98 stm32f1xx_hal_spi.o(.text) SPI_DMARxAbortCallback 0x08002e81 Thumb Code 98 stm32f1xx_hal_spi.o(.text)
SPI_DMATxAbortCallback 0x08002ddb Thumb Code 114 stm32f1xx_hal_spi.o(.text) SPI_DMATxAbortCallback 0x08002ee3 Thumb Code 114 stm32f1xx_hal_spi.o(.text)
SPI_DMAAbortOnError 0x08003025 Thumb Code 16 stm32f1xx_hal_spi.o(.text) SPI_DMAAbortOnError 0x0800312d Thumb Code 16 stm32f1xx_hal_spi.o(.text)
.text 0x0800313c Section 0 stm32f1xx_hal.o(.text) .text 0x08003244 Section 0 stm32f1xx_hal.o(.text)
.text 0x080032c4 Section 0 stm32f1xx_hal_rcc.o(.text) .text 0x080033cc Section 0 stm32f1xx_hal_rcc.o(.text)
RCC_Delay 0x080033bf Thumb Code 32 stm32f1xx_hal_rcc.o(.text) RCC_Delay 0x080034c7 Thumb Code 32 stm32f1xx_hal_rcc.o(.text)
.text 0x08003b8c Section 0 stm32f1xx_hal_gpio.o(.text) .text 0x08003c94 Section 0 stm32f1xx_hal_gpio.o(.text)
.text 0x08003f60 Section 0 stm32f1xx_hal_dma.o(.text) .text 0x08004068 Section 0 stm32f1xx_hal_dma.o(.text)
DMA_SetConfig 0x0800406f Thumb Code 56 stm32f1xx_hal_dma.o(.text) DMA_SetConfig 0x08004177 Thumb Code 56 stm32f1xx_hal_dma.o(.text)
.text 0x08004ba8 Section 0 stm32f1xx_hal_cortex.o(.text) .text 0x08004cb0 Section 0 stm32f1xx_hal_cortex.o(.text)
.text 0x08004dcc Section 0 stm32f1xx_hal_uart.o(.text) .text 0x08004ed4 Section 0 stm32f1xx_hal_uart.o(.text)
UART_SetConfig 0x08004dcd Thumb Code 194 stm32f1xx_hal_uart.o(.text) UART_SetConfig 0x08004ed5 Thumb Code 194 stm32f1xx_hal_uart.o(.text)
UART_WaitOnFlagUntilTimeout 0x080050ad Thumb Code 120 stm32f1xx_hal_uart.o(.text) UART_WaitOnFlagUntilTimeout 0x080051b5 Thumb Code 120 stm32f1xx_hal_uart.o(.text)
UART_EndRxTransfer 0x0800535d Thumb Code 28 stm32f1xx_hal_uart.o(.text) UART_EndRxTransfer 0x08005465 Thumb Code 28 stm32f1xx_hal_uart.o(.text)
UART_EndTxTransfer 0x08005379 Thumb Code 18 stm32f1xx_hal_uart.o(.text) UART_EndTxTransfer 0x08005481 Thumb Code 18 stm32f1xx_hal_uart.o(.text)
UART_DMAError 0x0800538b Thumb Code 74 stm32f1xx_hal_uart.o(.text) UART_DMAError 0x08005493 Thumb Code 74 stm32f1xx_hal_uart.o(.text)
UART_DMATxHalfCplt 0x080053d7 Thumb Code 10 stm32f1xx_hal_uart.o(.text) UART_DMATxHalfCplt 0x080054df Thumb Code 10 stm32f1xx_hal_uart.o(.text)
UART_DMATransmitCplt 0x080053e3 Thumb Code 48 stm32f1xx_hal_uart.o(.text) UART_DMATransmitCplt 0x080054eb Thumb Code 48 stm32f1xx_hal_uart.o(.text)
UART_DMARxHalfCplt 0x0800549f Thumb Code 10 stm32f1xx_hal_uart.o(.text) UART_DMARxHalfCplt 0x080055a7 Thumb Code 10 stm32f1xx_hal_uart.o(.text)
UART_DMAReceiveCplt 0x080054ab Thumb Code 62 stm32f1xx_hal_uart.o(.text) UART_DMAReceiveCplt 0x080055b3 Thumb Code 62 stm32f1xx_hal_uart.o(.text)
UART_DMARxAbortCallback 0x080057df Thumb Code 44 stm32f1xx_hal_uart.o(.text) UART_DMARxAbortCallback 0x080058e7 Thumb Code 44 stm32f1xx_hal_uart.o(.text)
UART_DMATxAbortCallback 0x0800580b Thumb Code 66 stm32f1xx_hal_uart.o(.text) UART_DMATxAbortCallback 0x08005913 Thumb Code 66 stm32f1xx_hal_uart.o(.text)
UART_DMATxOnlyAbortCallback 0x08005901 Thumb Code 20 stm32f1xx_hal_uart.o(.text) UART_DMATxOnlyAbortCallback 0x08005a09 Thumb Code 20 stm32f1xx_hal_uart.o(.text)
UART_DMARxOnlyAbortCallback 0x08005975 Thumb Code 20 stm32f1xx_hal_uart.o(.text) UART_DMARxOnlyAbortCallback 0x08005a7d Thumb Code 20 stm32f1xx_hal_uart.o(.text)
UART_EndTransmit_IT 0x080059f1 Thumb Code 26 stm32f1xx_hal_uart.o(.text) UART_EndTransmit_IT 0x08005af9 Thumb Code 26 stm32f1xx_hal_uart.o(.text)
UART_Transmit_IT 0x08005a0b Thumb Code 94 stm32f1xx_hal_uart.o(.text) UART_Transmit_IT 0x08005b13 Thumb Code 94 stm32f1xx_hal_uart.o(.text)
UART_DMAAbortOnError 0x08005a69 Thumb Code 16 stm32f1xx_hal_uart.o(.text) UART_DMAAbortOnError 0x08005b71 Thumb Code 16 stm32f1xx_hal_uart.o(.text)
UART_Receive_IT 0x08005a79 Thumb Code 146 stm32f1xx_hal_uart.o(.text) UART_Receive_IT 0x08005b81 Thumb Code 146 stm32f1xx_hal_uart.o(.text)
.text 0x08005d68 Section 0 memseta.o(.text) .text 0x08005e70 Section 0 memseta.o(.text)
.text 0x08005d8c Section 0 uidiv.o(.text) .text 0x08005e94 Section 0 uidiv.o(.text)
.text 0x08005db8 Section 36 init.o(.text) .text 0x08005ec0 Section 36 init.o(.text)
i.__0printf$3 0x08005ddc Section 0 printf3.o(i.__0printf$3) i.__0printf$3 0x08005ee4 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08005dfc Section 14 handlers.o(i.__scatterload_copy) i.__scatterload_copy 0x08005f04 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08005e0a Section 2 handlers.o(i.__scatterload_null) i.__scatterload_null 0x08005f12 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08005e0c Section 14 handlers.o(i.__scatterload_zeroinit) i.__scatterload_zeroinit 0x08005f14 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08005e1c Section 0 printf3.o(i._printf_core) i._printf_core 0x08005f24 Section 0 printf3.o(i._printf_core)
_printf_core 0x08005e1d Thumb Code 436 printf3.o(i._printf_core) _printf_core 0x08005f25 Thumb Code 436 printf3.o(i._printf_core)
i.free 0x08005fd4 Section 0 malloc.o(i.free) i.free 0x080060dc Section 0 malloc.o(i.free)
i.malloc 0x08006024 Section 0 malloc.o(i.malloc) i.malloc 0x0800612c Section 0 malloc.o(i.malloc)
.constdata 0x08006090 Section 47104 imagedata2.o(.constdata) .constdata 0x08006198 Section 12432 imagedata2.o(.constdata)
.constdata 0x08011890 Section 1140 font12.o(.constdata) .constdata 0x08009228 Section 1140 font12.o(.constdata)
.constdata 0x08011d04 Section 3800 font20.o(.constdata) .constdata 0x0800969c Section 3040 font16.o(.constdata)
.constdata 0x08012bdc Section 4482 font24cn.o(.constdata) .constdata 0x0800a27c Section 4482 font24cn.o(.constdata)
.constdata 0x08013d5e Section 16 system_stm32f1xx.o(.constdata) .constdata 0x0800b3fe Section 16 system_stm32f1xx.o(.constdata)
.constdata 0x08013d6e Section 8 system_stm32f1xx.o(.constdata) .constdata 0x0800b40e Section 8 system_stm32f1xx.o(.constdata)
.conststring 0x08013d78 Section 233 gui_paint.o(.conststring) .conststring 0x0800b418 Section 233 gui_paint.o(.conststring)
.data 0x20000000 Section 8 font12.o(.data) .data 0x20000000 Section 8 font12.o(.data)
.data 0x20000008 Section 8 font20.o(.data) .data 0x20000008 Section 8 font16.o(.data)
.data 0x20000010 Section 12 font24cn.o(.data) .data 0x20000010 Section 12 font24cn.o(.data)
.data 0x2000001c Section 4 system_stm32f1xx.o(.data) .data 0x2000001c Section 4 system_stm32f1xx.o(.data)
.data 0x20000020 Section 12 stm32f1xx_hal.o(.data) .data 0x20000020 Section 12 stm32f1xx_hal.o(.data)
@ -2171,201 +2199,201 @@ Image Symbol Table
PendSV_Handler 0x08000409 Thumb Code 2 stm32f1xx_it.o(.text) PendSV_Handler 0x08000409 Thumb Code 2 stm32f1xx_it.o(.text)
SysTick_Handler 0x0800040b Thumb Code 4 stm32f1xx_it.o(.text) SysTick_Handler 0x0800040b Thumb Code 4 stm32f1xx_it.o(.text)
HAL_MspInit 0x08000425 Thumb Code 52 stm32f1xx_hal_msp.o(.text) HAL_MspInit 0x08000425 Thumb Code 52 stm32f1xx_hal_msp.o(.text)
EPD_4in37g_test 0x08000461 Thumb Code 688 epd_4in37g_test.o(.text) EPD_2in36g_test 0x08000461 Thumb Code 966 epd_2in36g_test.o(.text)
EPD_4IN37G_Init 0x080008b9 Thumb Code 344 epd_4in37g.o(.text) EPD_2IN36G_Init 0x080009d9 Thumb Code 284 epd_2in36g.o(.text)
EPD_4IN37G_Clear 0x08000a11 Thumb Code 74 epd_4in37g.o(.text) EPD_2IN36G_Clear 0x08000af5 Thumb Code 98 epd_2in36g.o(.text)
EPD_4IN37G_Display 0x08000a5b Thumb Code 72 epd_4in37g.o(.text) EPD_2IN36G_Display 0x08000b57 Thumb Code 84 epd_2in36g.o(.text)
EPD_4IN37G_Sleep 0x08000aa3 Thumb Code 30 epd_4in37g.o(.text) EPD_2IN36G_Sleep 0x08000bab Thumb Code 30 epd_2in36g.o(.text)
DEV_SPI_WriteByte 0x08000b7d Thumb Code 18 dev_config.o(.text) DEV_SPI_WriteByte 0x08000c85 Thumb Code 18 dev_config.o(.text)
DEV_Module_Init 0x08000b8f Thumb Code 38 dev_config.o(.text) DEV_Module_Init 0x08000c97 Thumb Code 38 dev_config.o(.text)
DEV_Module_Exit 0x08000bb5 Thumb Code 38 dev_config.o(.text) DEV_Module_Exit 0x08000cbd Thumb Code 38 dev_config.o(.text)
Paint_NewImage 0x08000be5 Thumb Code 56 gui_paint.o(.text) Paint_NewImage 0x08000ced Thumb Code 56 gui_paint.o(.text)
Paint_SelectImage 0x08000c1d Thumb Code 6 gui_paint.o(.text) Paint_SelectImage 0x08000d25 Thumb Code 6 gui_paint.o(.text)
Paint_SetRotate 0x08000c23 Thumb Code 44 gui_paint.o(.text) Paint_SetRotate 0x08000d2b Thumb Code 44 gui_paint.o(.text)
Paint_SetScale 0x08000c4f Thumb Code 80 gui_paint.o(.text) Paint_SetScale 0x08000d57 Thumb Code 80 gui_paint.o(.text)
Paint_SetMirroring 0x08000c9f Thumb Code 62 gui_paint.o(.text) Paint_SetMirroring 0x08000da7 Thumb Code 62 gui_paint.o(.text)
Paint_SetPixel 0x08000cdd Thumb Code 238 gui_paint.o(.text) Paint_SetPixel 0x08000de5 Thumb Code 238 gui_paint.o(.text)
Paint_Clear 0x08000dcb Thumb Code 156 gui_paint.o(.text) Paint_Clear 0x08000ed3 Thumb Code 156 gui_paint.o(.text)
Paint_ClearWindows 0x08000e67 Thumb Code 52 gui_paint.o(.text) Paint_ClearWindows 0x08000f6f Thumb Code 52 gui_paint.o(.text)
Paint_DrawPoint 0x08000e9b Thumb Code 180 gui_paint.o(.text) Paint_DrawPoint 0x08000fa3 Thumb Code 180 gui_paint.o(.text)
Paint_DrawLine 0x08000f4f Thumb Code 662 gui_paint.o(.text) Paint_DrawLine 0x08001057 Thumb Code 662 gui_paint.o(.text)
Paint_DrawRectangle 0x080011e5 Thumb Code 170 gui_paint.o(.text) Paint_DrawRectangle 0x080012ed Thumb Code 170 gui_paint.o(.text)
Paint_DrawCircle 0x0800128f Thumb Code 528 gui_paint.o(.text) Paint_DrawCircle 0x08001397 Thumb Code 528 gui_paint.o(.text)
Paint_DrawChar 0x0800149f Thumb Code 172 gui_paint.o(.text) Paint_DrawChar 0x080015a7 Thumb Code 172 gui_paint.o(.text)
Paint_DrawString_EN 0x0800154b Thumb Code 116 gui_paint.o(.text) Paint_DrawString_EN 0x08001653 Thumb Code 116 gui_paint.o(.text)
Paint_DrawString_CN 0x080015bf Thumb Code 518 gui_paint.o(.text) Paint_DrawString_CN 0x080016c7 Thumb Code 518 gui_paint.o(.text)
Paint_DrawNum 0x080017c5 Thumb Code 140 gui_paint.o(.text) Paint_DrawNum 0x080018cd Thumb Code 140 gui_paint.o(.text)
Paint_DrawTime 0x08001851 Thumb Code 282 gui_paint.o(.text) Paint_DrawTime 0x08001959 Thumb Code 282 gui_paint.o(.text)
Paint_DrawBitMap 0x0800196b Thumb Code 46 gui_paint.o(.text) Paint_DrawBitMap 0x08001a73 Thumb Code 46 gui_paint.o(.text)
Paint_DrawBitMap_Paste 0x08001999 Thumb Code 110 gui_paint.o(.text) Paint_DrawBitMap_Paste 0x08001aa1 Thumb Code 110 gui_paint.o(.text)
Paint_DrawBitMap_Block 0x08001a07 Thumb Code 54 gui_paint.o(.text) Paint_DrawBitMap_Block 0x08001b0f Thumb Code 54 gui_paint.o(.text)
SystemInit 0x08001a91 Thumb Code 60 system_stm32f1xx.o(.text) SystemInit 0x08001b99 Thumb Code 60 system_stm32f1xx.o(.text)
SystemCoreClockUpdate 0x08001acd Thumb Code 108 system_stm32f1xx.o(.text) SystemCoreClockUpdate 0x08001bd5 Thumb Code 108 system_stm32f1xx.o(.text)
HAL_SPI_Init 0x08001b57 Thumb Code 180 stm32f1xx_hal_spi.o(.text) HAL_SPI_Init 0x08001c5f Thumb Code 180 stm32f1xx_hal_spi.o(.text)
HAL_SPI_DeInit 0x08001c0d Thumb Code 48 stm32f1xx_hal_spi.o(.text) HAL_SPI_DeInit 0x08001d15 Thumb Code 48 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Transmit 0x08001d33 Thumb Code 412 stm32f1xx_hal_spi.o(.text) HAL_SPI_Transmit 0x08001e3b Thumb Code 412 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TransmitReceive 0x08001f3f Thumb Code 510 stm32f1xx_hal_spi.o(.text) HAL_SPI_TransmitReceive 0x08002047 Thumb Code 510 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Receive 0x0800213d Thumb Code 366 stm32f1xx_hal_spi.o(.text) HAL_SPI_Receive 0x08002245 Thumb Code 366 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TxCpltCallback 0x080022ab Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_TxCpltCallback 0x080023b3 Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_ErrorCallback 0x080022ad Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_ErrorCallback 0x080023b5 Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Transmit_IT 0x0800236d Thumb Code 162 stm32f1xx_hal_spi.o(.text) HAL_SPI_Transmit_IT 0x08002475 Thumb Code 162 stm32f1xx_hal_spi.o(.text)
HAL_SPI_RxCpltCallback 0x0800240f Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_RxCpltCallback 0x08002517 Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TxRxCpltCallback 0x08002499 Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_TxRxCpltCallback 0x080025a1 Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TransmitReceive_IT 0x080025f1 Thumb Code 188 stm32f1xx_hal_spi.o(.text) HAL_SPI_TransmitReceive_IT 0x080026f9 Thumb Code 188 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Receive_IT 0x080026ad Thumb Code 176 stm32f1xx_hal_spi.o(.text) HAL_SPI_Receive_IT 0x080027b5 Thumb Code 176 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TxHalfCpltCallback 0x080027e5 Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_TxHalfCpltCallback 0x080028ed Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Transmit_DMA 0x080027f1 Thumb Code 208 stm32f1xx_hal_spi.o(.text) HAL_SPI_Transmit_DMA 0x080028f9 Thumb Code 208 stm32f1xx_hal_spi.o(.text)
HAL_SPI_RxHalfCpltCallback 0x0800292f Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_RxHalfCpltCallback 0x08002a37 Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TxRxHalfCpltCallback 0x08002997 Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_TxRxHalfCpltCallback 0x08002a9f Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_TransmitReceive_DMA 0x080029a3 Thumb Code 302 stm32f1xx_hal_spi.o(.text) HAL_SPI_TransmitReceive_DMA 0x08002aab Thumb Code 302 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Receive_DMA 0x08002ad1 Thumb Code 278 stm32f1xx_hal_spi.o(.text) HAL_SPI_Receive_DMA 0x08002bd9 Thumb Code 278 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Abort 0x08002c55 Thumb Code 290 stm32f1xx_hal_spi.o(.text) HAL_SPI_Abort 0x08002d5d Thumb Code 290 stm32f1xx_hal_spi.o(.text)
HAL_SPI_AbortCpltCallback 0x08002d77 Thumb Code 2 stm32f1xx_hal_spi.o(.text) HAL_SPI_AbortCpltCallback 0x08002e7f Thumb Code 2 stm32f1xx_hal_spi.o(.text)
HAL_SPI_Abort_IT 0x08002e4d Thumb Code 328 stm32f1xx_hal_spi.o(.text) HAL_SPI_Abort_IT 0x08002f55 Thumb Code 328 stm32f1xx_hal_spi.o(.text)
HAL_SPI_DMAPause 0x08002f95 Thumb Code 38 stm32f1xx_hal_spi.o(.text) HAL_SPI_DMAPause 0x0800309d Thumb Code 38 stm32f1xx_hal_spi.o(.text)
HAL_SPI_DMAResume 0x08002fbb Thumb Code 38 stm32f1xx_hal_spi.o(.text) HAL_SPI_DMAResume 0x080030c3 Thumb Code 38 stm32f1xx_hal_spi.o(.text)
HAL_SPI_DMAStop 0x08002fe1 Thumb Code 68 stm32f1xx_hal_spi.o(.text) HAL_SPI_DMAStop 0x080030e9 Thumb Code 68 stm32f1xx_hal_spi.o(.text)
HAL_SPI_IRQHandler 0x08003035 Thumb Code 250 stm32f1xx_hal_spi.o(.text) HAL_SPI_IRQHandler 0x0800313d Thumb Code 250 stm32f1xx_hal_spi.o(.text)
HAL_SPI_GetState 0x0800312f Thumb Code 6 stm32f1xx_hal_spi.o(.text) HAL_SPI_GetState 0x08003237 Thumb Code 6 stm32f1xx_hal_spi.o(.text)
HAL_SPI_GetError 0x08003135 Thumb Code 4 stm32f1xx_hal_spi.o(.text) HAL_SPI_GetError 0x0800323d Thumb Code 4 stm32f1xx_hal_spi.o(.text)
HAL_InitTick 0x0800313f Thumb Code 58 stm32f1xx_hal.o(.text) HAL_InitTick 0x08003247 Thumb Code 58 stm32f1xx_hal.o(.text)
HAL_Init 0x08003179 Thumb Code 32 stm32f1xx_hal.o(.text) HAL_Init 0x08003281 Thumb Code 32 stm32f1xx_hal.o(.text)
HAL_MspDeInit 0x08003199 Thumb Code 2 stm32f1xx_hal.o(.text) HAL_MspDeInit 0x080032a1 Thumb Code 2 stm32f1xx_hal.o(.text)
HAL_DeInit 0x0800319b Thumb Code 26 stm32f1xx_hal.o(.text) HAL_DeInit 0x080032a3 Thumb Code 26 stm32f1xx_hal.o(.text)
HAL_IncTick 0x080031b5 Thumb Code 12 stm32f1xx_hal.o(.text) HAL_IncTick 0x080032bd Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_GetTick 0x080031c1 Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetTick 0x080032c9 Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_GetTickPrio 0x080031c7 Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetTickPrio 0x080032cf Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_SetTickFreq 0x080031cd Thumb Code 30 stm32f1xx_hal.o(.text) HAL_SetTickFreq 0x080032d5 Thumb Code 30 stm32f1xx_hal.o(.text)
HAL_GetTickFreq 0x080031eb Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetTickFreq 0x080032f3 Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_Delay 0x080031f1 Thumb Code 34 stm32f1xx_hal.o(.text) HAL_Delay 0x080032f9 Thumb Code 34 stm32f1xx_hal.o(.text)
HAL_SuspendTick 0x08003213 Thumb Code 14 stm32f1xx_hal.o(.text) HAL_SuspendTick 0x0800331b Thumb Code 14 stm32f1xx_hal.o(.text)
HAL_ResumeTick 0x08003221 Thumb Code 14 stm32f1xx_hal.o(.text) HAL_ResumeTick 0x08003329 Thumb Code 14 stm32f1xx_hal.o(.text)
HAL_GetHalVersion 0x0800322f Thumb Code 4 stm32f1xx_hal.o(.text) HAL_GetHalVersion 0x08003337 Thumb Code 4 stm32f1xx_hal.o(.text)
HAL_GetREVID 0x08003233 Thumb Code 8 stm32f1xx_hal.o(.text) HAL_GetREVID 0x0800333b Thumb Code 8 stm32f1xx_hal.o(.text)
HAL_GetDEVID 0x0800323b Thumb Code 10 stm32f1xx_hal.o(.text) HAL_GetDEVID 0x08003343 Thumb Code 10 stm32f1xx_hal.o(.text)
HAL_GetUIDw0 0x08003245 Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetUIDw0 0x0800334d Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_GetUIDw1 0x0800324b Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetUIDw1 0x08003353 Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_GetUIDw2 0x08003251 Thumb Code 6 stm32f1xx_hal.o(.text) HAL_GetUIDw2 0x08003359 Thumb Code 6 stm32f1xx_hal.o(.text)
HAL_DBGMCU_EnableDBGSleepMode 0x08003257 Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_EnableDBGSleepMode 0x0800335f Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_DBGMCU_DisableDBGSleepMode 0x08003263 Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_DisableDBGSleepMode 0x0800336b Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_DBGMCU_EnableDBGStopMode 0x0800326f Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_EnableDBGStopMode 0x08003377 Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_DBGMCU_DisableDBGStopMode 0x0800327b Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_DisableDBGStopMode 0x08003383 Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_DBGMCU_EnableDBGStandbyMode 0x08003287 Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_EnableDBGStandbyMode 0x0800338f Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_DBGMCU_DisableDBGStandbyMode 0x08003293 Thumb Code 12 stm32f1xx_hal.o(.text) HAL_DBGMCU_DisableDBGStandbyMode 0x0800339b Thumb Code 12 stm32f1xx_hal.o(.text)
HAL_RCC_DeInit 0x080032c5 Thumb Code 250 stm32f1xx_hal_rcc.o(.text) HAL_RCC_DeInit 0x080033cd Thumb Code 250 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_OscConfig 0x080033df Thumb Code 1080 stm32f1xx_hal_rcc.o(.text) HAL_RCC_OscConfig 0x080034e7 Thumb Code 1080 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetSysClockFreq 0x08003817 Thumb Code 88 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetSysClockFreq 0x0800391f Thumb Code 88 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_ClockConfig 0x0800386f Thumb Code 364 stm32f1xx_hal_rcc.o(.text) HAL_RCC_ClockConfig 0x08003977 Thumb Code 364 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_MCOConfig 0x080039db Thumb Code 64 stm32f1xx_hal_rcc.o(.text) HAL_RCC_MCOConfig 0x08003ae3 Thumb Code 64 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_EnableCSS 0x08003a1b Thumb Code 8 stm32f1xx_hal_rcc.o(.text) HAL_RCC_EnableCSS 0x08003b23 Thumb Code 8 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_DisableCSS 0x08003a23 Thumb Code 8 stm32f1xx_hal_rcc.o(.text) HAL_RCC_DisableCSS 0x08003b2b Thumb Code 8 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetHCLKFreq 0x08003a2b Thumb Code 6 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetHCLKFreq 0x08003b33 Thumb Code 6 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetPCLK1Freq 0x08003a31 Thumb Code 22 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetPCLK1Freq 0x08003b39 Thumb Code 22 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetPCLK2Freq 0x08003a47 Thumb Code 22 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetPCLK2Freq 0x08003b4f Thumb Code 22 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetOscConfig 0x08003a5d Thumb Code 168 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetOscConfig 0x08003b65 Thumb Code 168 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_GetClockConfig 0x08003b05 Thumb Code 52 stm32f1xx_hal_rcc.o(.text) HAL_RCC_GetClockConfig 0x08003c0d Thumb Code 52 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_CSSCallback 0x08003b39 Thumb Code 2 stm32f1xx_hal_rcc.o(.text) HAL_RCC_CSSCallback 0x08003c41 Thumb Code 2 stm32f1xx_hal_rcc.o(.text)
HAL_RCC_NMI_IRQHandler 0x08003b3b Thumb Code 22 stm32f1xx_hal_rcc.o(.text) HAL_RCC_NMI_IRQHandler 0x08003c43 Thumb Code 22 stm32f1xx_hal_rcc.o(.text)
HAL_GPIO_Init 0x08003b8d Thumb Code 524 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_Init 0x08003c95 Thumb Code 524 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_DeInit 0x08003d99 Thumb Code 320 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_DeInit 0x08003ea1 Thumb Code 320 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_ReadPin 0x08003ed9 Thumb Code 14 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_ReadPin 0x08003fe1 Thumb Code 14 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_WritePin 0x08003ee7 Thumb Code 14 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_WritePin 0x08003fef Thumb Code 14 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_TogglePin 0x08003ef5 Thumb Code 16 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_TogglePin 0x08003ffd Thumb Code 16 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_LockPin 0x08003f05 Thumb Code 42 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_LockPin 0x0800400d Thumb Code 42 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_EXTI_Callback 0x08003f2f Thumb Code 2 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_EXTI_Callback 0x08004037 Thumb Code 2 stm32f1xx_hal_gpio.o(.text)
HAL_GPIO_EXTI_IRQHandler 0x08003f31 Thumb Code 18 stm32f1xx_hal_gpio.o(.text) HAL_GPIO_EXTI_IRQHandler 0x08004039 Thumb Code 18 stm32f1xx_hal_gpio.o(.text)
HAL_DMA_Init 0x08003f61 Thumb Code 144 stm32f1xx_hal_dma.o(.text) HAL_DMA_Init 0x08004069 Thumb Code 144 stm32f1xx_hal_dma.o(.text)
HAL_DMA_DeInit 0x08003ff1 Thumb Code 126 stm32f1xx_hal_dma.o(.text) HAL_DMA_DeInit 0x080040f9 Thumb Code 126 stm32f1xx_hal_dma.o(.text)
HAL_DMA_Start 0x080040a7 Thumb Code 88 stm32f1xx_hal_dma.o(.text) HAL_DMA_Start 0x080041af Thumb Code 88 stm32f1xx_hal_dma.o(.text)
HAL_DMA_Start_IT 0x080040ff Thumb Code 124 stm32f1xx_hal_dma.o(.text) HAL_DMA_Start_IT 0x08004207 Thumb Code 124 stm32f1xx_hal_dma.o(.text)
HAL_DMA_Abort 0x0800417b Thumb Code 72 stm32f1xx_hal_dma.o(.text) HAL_DMA_Abort 0x08004283 Thumb Code 72 stm32f1xx_hal_dma.o(.text)
HAL_DMA_Abort_IT 0x080041c3 Thumb Code 318 stm32f1xx_hal_dma.o(.text) HAL_DMA_Abort_IT 0x080042cb Thumb Code 318 stm32f1xx_hal_dma.o(.text)
HAL_DMA_PollForTransfer 0x08004301 Thumb Code 1316 stm32f1xx_hal_dma.o(.text) HAL_DMA_PollForTransfer 0x08004409 Thumb Code 1316 stm32f1xx_hal_dma.o(.text)
HAL_DMA_IRQHandler 0x08004825 Thumb Code 672 stm32f1xx_hal_dma.o(.text) HAL_DMA_IRQHandler 0x0800492d Thumb Code 672 stm32f1xx_hal_dma.o(.text)
HAL_DMA_RegisterCallback 0x08004ac5 Thumb Code 80 stm32f1xx_hal_dma.o(.text) HAL_DMA_RegisterCallback 0x08004bcd Thumb Code 80 stm32f1xx_hal_dma.o(.text)
HAL_DMA_UnRegisterCallback 0x08004b15 Thumb Code 86 stm32f1xx_hal_dma.o(.text) HAL_DMA_UnRegisterCallback 0x08004c1d Thumb Code 86 stm32f1xx_hal_dma.o(.text)
HAL_DMA_GetState 0x08004b6b Thumb Code 6 stm32f1xx_hal_dma.o(.text) HAL_DMA_GetState 0x08004c73 Thumb Code 6 stm32f1xx_hal_dma.o(.text)
HAL_DMA_GetError 0x08004b71 Thumb Code 4 stm32f1xx_hal_dma.o(.text) HAL_DMA_GetError 0x08004c79 Thumb Code 4 stm32f1xx_hal_dma.o(.text)
HAL_NVIC_SetPriorityGrouping 0x08004ba9 Thumb Code 30 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_SetPriorityGrouping 0x08004cb1 Thumb Code 30 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_SetPriority 0x08004bc7 Thumb Code 98 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_SetPriority 0x08004ccf Thumb Code 98 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_EnableIRQ 0x08004c29 Thumb Code 28 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_EnableIRQ 0x08004d31 Thumb Code 28 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_DisableIRQ 0x08004c45 Thumb Code 36 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_DisableIRQ 0x08004d4d Thumb Code 36 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_SystemReset 0x08004c69 Thumb Code 26 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_SystemReset 0x08004d71 Thumb Code 26 stm32f1xx_hal_cortex.o(.text)
HAL_SYSTICK_Config 0x08004c83 Thumb Code 36 stm32f1xx_hal_cortex.o(.text) HAL_SYSTICK_Config 0x08004d8b Thumb Code 36 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_GetPriorityGrouping 0x08004ca7 Thumb Code 10 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_GetPriorityGrouping 0x08004daf Thumb Code 10 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_GetPriority 0x08004cb1 Thumb Code 94 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_GetPriority 0x08004db9 Thumb Code 94 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_SetPendingIRQ 0x08004d0f Thumb Code 28 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_SetPendingIRQ 0x08004e17 Thumb Code 28 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_GetPendingIRQ 0x08004d2b Thumb Code 42 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_GetPendingIRQ 0x08004e33 Thumb Code 42 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_ClearPendingIRQ 0x08004d55 Thumb Code 28 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_ClearPendingIRQ 0x08004e5d Thumb Code 28 stm32f1xx_hal_cortex.o(.text)
HAL_NVIC_GetActive 0x08004d71 Thumb Code 42 stm32f1xx_hal_cortex.o(.text) HAL_NVIC_GetActive 0x08004e79 Thumb Code 42 stm32f1xx_hal_cortex.o(.text)
HAL_SYSTICK_CLKSourceConfig 0x08004d9b Thumb Code 28 stm32f1xx_hal_cortex.o(.text) HAL_SYSTICK_CLKSourceConfig 0x08004ea3 Thumb Code 28 stm32f1xx_hal_cortex.o(.text)
HAL_SYSTICK_Callback 0x08004db7 Thumb Code 2 stm32f1xx_hal_cortex.o(.text) HAL_SYSTICK_Callback 0x08004ebf Thumb Code 2 stm32f1xx_hal_cortex.o(.text)
HAL_SYSTICK_IRQHandler 0x08004db9 Thumb Code 8 stm32f1xx_hal_cortex.o(.text) HAL_SYSTICK_IRQHandler 0x08004ec1 Thumb Code 8 stm32f1xx_hal_cortex.o(.text)
HAL_UART_Init 0x08004e91 Thumb Code 100 stm32f1xx_hal_uart.o(.text) HAL_UART_Init 0x08004f99 Thumb Code 100 stm32f1xx_hal_uart.o(.text)
HAL_HalfDuplex_Init 0x08004ef5 Thumb Code 110 stm32f1xx_hal_uart.o(.text) HAL_HalfDuplex_Init 0x08004ffd Thumb Code 110 stm32f1xx_hal_uart.o(.text)
HAL_LIN_Init 0x08004f63 Thumb Code 130 stm32f1xx_hal_uart.o(.text) HAL_LIN_Init 0x0800506b Thumb Code 130 stm32f1xx_hal_uart.o(.text)
HAL_MultiProcessor_Init 0x08004fe5 Thumb Code 146 stm32f1xx_hal_uart.o(.text) HAL_MultiProcessor_Init 0x080050ed Thumb Code 146 stm32f1xx_hal_uart.o(.text)
HAL_UART_DeInit 0x08005079 Thumb Code 52 stm32f1xx_hal_uart.o(.text) HAL_UART_DeInit 0x08005181 Thumb Code 52 stm32f1xx_hal_uart.o(.text)
HAL_UART_Transmit 0x08005125 Thumb Code 202 stm32f1xx_hal_uart.o(.text) HAL_UART_Transmit 0x0800522d Thumb Code 202 stm32f1xx_hal_uart.o(.text)
HAL_UART_Receive 0x080051ef Thumb Code 212 stm32f1xx_hal_uart.o(.text) HAL_UART_Receive 0x080052f7 Thumb Code 212 stm32f1xx_hal_uart.o(.text)
HAL_UART_Transmit_IT 0x080052c3 Thumb Code 66 stm32f1xx_hal_uart.o(.text) HAL_UART_Transmit_IT 0x080053cb Thumb Code 66 stm32f1xx_hal_uart.o(.text)
HAL_UART_Receive_IT 0x08005305 Thumb Code 86 stm32f1xx_hal_uart.o(.text) HAL_UART_Receive_IT 0x0800540d Thumb Code 86 stm32f1xx_hal_uart.o(.text)
HAL_UART_ErrorCallback 0x0800535b Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_ErrorCallback 0x08005463 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_TxHalfCpltCallback 0x080053d5 Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_TxHalfCpltCallback 0x080054dd Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_TxCpltCallback 0x080053e1 Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_TxCpltCallback 0x080054e9 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_Transmit_DMA 0x08005413 Thumb Code 138 stm32f1xx_hal_uart.o(.text) HAL_UART_Transmit_DMA 0x0800551b Thumb Code 138 stm32f1xx_hal_uart.o(.text)
HAL_UART_RxHalfCpltCallback 0x0800549d Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_RxHalfCpltCallback 0x080055a5 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_RxCpltCallback 0x080054a9 Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_RxCpltCallback 0x080055b1 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_Receive_DMA 0x080054e9 Thumb Code 150 stm32f1xx_hal_uart.o(.text) HAL_UART_Receive_DMA 0x080055f1 Thumb Code 150 stm32f1xx_hal_uart.o(.text)
HAL_UART_DMAPause 0x0800557f Thumb Code 102 stm32f1xx_hal_uart.o(.text) HAL_UART_DMAPause 0x08005687 Thumb Code 102 stm32f1xx_hal_uart.o(.text)
HAL_UART_DMAResume 0x080055e5 Thumb Code 98 stm32f1xx_hal_uart.o(.text) HAL_UART_DMAResume 0x080056ed Thumb Code 98 stm32f1xx_hal_uart.o(.text)
HAL_UART_DMAStop 0x08005647 Thumb Code 88 stm32f1xx_hal_uart.o(.text) HAL_UART_DMAStop 0x0800574f Thumb Code 88 stm32f1xx_hal_uart.o(.text)
HAL_UART_Abort 0x0800569f Thumb Code 148 stm32f1xx_hal_uart.o(.text) HAL_UART_Abort 0x080057a7 Thumb Code 148 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortTransmit 0x08005733 Thumb Code 80 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortTransmit 0x0800583b Thumb Code 80 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortReceive 0x08005783 Thumb Code 90 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortReceive 0x0800588b Thumb Code 90 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortCpltCallback 0x080057dd Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortCpltCallback 0x080058e5 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_Abort_IT 0x0800584d Thumb Code 178 stm32f1xx_hal_uart.o(.text) HAL_UART_Abort_IT 0x08005955 Thumb Code 178 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortTransmitCpltCallback 0x080058ff Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortTransmitCpltCallback 0x08005a07 Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortTransmit_IT 0x08005915 Thumb Code 94 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortTransmit_IT 0x08005a1d Thumb Code 94 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortReceiveCpltCallback 0x08005973 Thumb Code 2 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortReceiveCpltCallback 0x08005a7b Thumb Code 2 stm32f1xx_hal_uart.o(.text)
HAL_UART_AbortReceive_IT 0x08005989 Thumb Code 104 stm32f1xx_hal_uart.o(.text) HAL_UART_AbortReceive_IT 0x08005a91 Thumb Code 104 stm32f1xx_hal_uart.o(.text)
HAL_UART_IRQHandler 0x08005b0b Thumb Code 312 stm32f1xx_hal_uart.o(.text) HAL_UART_IRQHandler 0x08005c13 Thumb Code 312 stm32f1xx_hal_uart.o(.text)
HAL_LIN_SendBreak 0x08005c43 Thumb Code 70 stm32f1xx_hal_uart.o(.text) HAL_LIN_SendBreak 0x08005d4b Thumb Code 70 stm32f1xx_hal_uart.o(.text)
HAL_MultiProcessor_EnterMuteMode 0x08005c89 Thumb Code 50 stm32f1xx_hal_uart.o(.text) HAL_MultiProcessor_EnterMuteMode 0x08005d91 Thumb Code 50 stm32f1xx_hal_uart.o(.text)
HAL_MultiProcessor_ExitMuteMode 0x08005cbb Thumb Code 50 stm32f1xx_hal_uart.o(.text) HAL_MultiProcessor_ExitMuteMode 0x08005dc3 Thumb Code 50 stm32f1xx_hal_uart.o(.text)
HAL_HalfDuplex_EnableTransmitter 0x08005ced Thumb Code 54 stm32f1xx_hal_uart.o(.text) HAL_HalfDuplex_EnableTransmitter 0x08005df5 Thumb Code 54 stm32f1xx_hal_uart.o(.text)
HAL_HalfDuplex_EnableReceiver 0x08005d23 Thumb Code 54 stm32f1xx_hal_uart.o(.text) HAL_HalfDuplex_EnableReceiver 0x08005e2b Thumb Code 54 stm32f1xx_hal_uart.o(.text)
HAL_UART_GetState 0x08005d59 Thumb Code 12 stm32f1xx_hal_uart.o(.text) HAL_UART_GetState 0x08005e61 Thumb Code 12 stm32f1xx_hal_uart.o(.text)
HAL_UART_GetError 0x08005d65 Thumb Code 4 stm32f1xx_hal_uart.o(.text) HAL_UART_GetError 0x08005e6d Thumb Code 4 stm32f1xx_hal_uart.o(.text)
__aeabi_memset 0x08005d69 Thumb Code 14 memseta.o(.text) __aeabi_memset 0x08005e71 Thumb Code 14 memseta.o(.text)
__aeabi_memset4 0x08005d69 Thumb Code 0 memseta.o(.text) __aeabi_memset4 0x08005e71 Thumb Code 0 memseta.o(.text)
__aeabi_memset8 0x08005d69 Thumb Code 0 memseta.o(.text) __aeabi_memset8 0x08005e71 Thumb Code 0 memseta.o(.text)
__aeabi_memclr 0x08005d77 Thumb Code 4 memseta.o(.text) __aeabi_memclr 0x08005e7f Thumb Code 4 memseta.o(.text)
__aeabi_memclr4 0x08005d77 Thumb Code 0 memseta.o(.text) __aeabi_memclr4 0x08005e7f Thumb Code 0 memseta.o(.text)
__aeabi_memclr8 0x08005d77 Thumb Code 0 memseta.o(.text) __aeabi_memclr8 0x08005e7f Thumb Code 0 memseta.o(.text)
_memset$wrapper 0x08005d7b Thumb Code 18 memseta.o(.text) _memset$wrapper 0x08005e83 Thumb Code 18 memseta.o(.text)
__aeabi_uidiv 0x08005d8d Thumb Code 0 uidiv.o(.text) __aeabi_uidiv 0x08005e95 Thumb Code 0 uidiv.o(.text)
__aeabi_uidivmod 0x08005d8d Thumb Code 44 uidiv.o(.text) __aeabi_uidivmod 0x08005e95 Thumb Code 44 uidiv.o(.text)
__scatterload 0x08005db9 Thumb Code 28 init.o(.text) __scatterload 0x08005ec1 Thumb Code 28 init.o(.text)
__scatterload_rt2 0x08005db9 Thumb Code 0 init.o(.text) __scatterload_rt2 0x08005ec1 Thumb Code 0 init.o(.text)
__0printf$3 0x08005ddd Thumb Code 22 printf3.o(i.__0printf$3) __0printf$3 0x08005ee5 Thumb Code 22 printf3.o(i.__0printf$3)
__1printf$3 0x08005ddd Thumb Code 0 printf3.o(i.__0printf$3) __1printf$3 0x08005ee5 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08005ddd Thumb Code 0 printf3.o(i.__0printf$3) __2printf 0x08005ee5 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08005dfd Thumb Code 14 handlers.o(i.__scatterload_copy) __scatterload_copy 0x08005f05 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08005e0b Thumb Code 2 handlers.o(i.__scatterload_null) __scatterload_null 0x08005f13 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08005e0d Thumb Code 14 handlers.o(i.__scatterload_zeroinit) __scatterload_zeroinit 0x08005f15 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
free 0x08005fd5 Thumb Code 76 malloc.o(i.free) free 0x080060dd Thumb Code 76 malloc.o(i.free)
malloc 0x08006025 Thumb Code 92 malloc.o(i.malloc) malloc 0x0800612d Thumb Code 92 malloc.o(i.malloc)
Image4color 0x08006090 Data 47104 imagedata2.o(.constdata) gImage_2in36g 0x08006198 Data 12432 imagedata2.o(.constdata)
Font12_Table 0x08011890 Data 1140 font12.o(.constdata) Font12_Table 0x08009228 Data 1140 font12.o(.constdata)
Font20_Table 0x08011d04 Data 3800 font20.o(.constdata) Font16_Table 0x0800969c Data 3040 font16.o(.constdata)
Font24CN_Table 0x08012bdc Data 4482 font24cn.o(.constdata) Font24CN_Table 0x0800a27c Data 4482 font24cn.o(.constdata)
AHBPrescTable 0x08013d5e Data 16 system_stm32f1xx.o(.constdata) AHBPrescTable 0x0800b3fe Data 16 system_stm32f1xx.o(.constdata)
APBPrescTable 0x08013d6e Data 8 system_stm32f1xx.o(.constdata) APBPrescTable 0x0800b40e Data 8 system_stm32f1xx.o(.constdata)
Region$$Table$$Base 0x08013e64 Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Base 0x0800b504 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08013e84 Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Limit 0x0800b524 Number 0 anon$$obj.o(Region$$Table)
Font12 0x20000000 Data 8 font12.o(.data) Font12 0x20000000 Data 8 font12.o(.data)
Font20 0x20000008 Data 8 font20.o(.data) Font16 0x20000008 Data 8 font16.o(.data)
Font24CN 0x20000010 Data 12 font24cn.o(.data) Font24CN 0x20000010 Data 12 font24cn.o(.data)
SystemCoreClock 0x2000001c Data 4 system_stm32f1xx.o(.data) SystemCoreClock 0x2000001c Data 4 system_stm32f1xx.o(.data)
uwTickFreq 0x20000020 Data 1 stm32f1xx_hal.o(.data) uwTickFreq 0x20000020 Data 1 stm32f1xx_hal.o(.data)
@ -2389,22 +2417,22 @@ Memory Map of the image
Image Entry point : 0x08000131 Image Entry point : 0x08000131
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00013ebc, Max: 0x00080000, ABSOLUTE) Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000b55c, Max: 0x00080000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00013e84, Max: 0x00080000, ABSOLUTE) Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000b524, Max: 0x00080000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x00000130 Data RO 3 RESET startup_stm32f103xe.o 0x08000000 0x08000000 0x00000130 Data RO 3 RESET startup_stm32f103xe.o
0x08000130 0x08000130 0x00000000 Code RO 3251 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) 0x08000130 0x08000130 0x00000000 Code RO 3303 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x08000130 0x00000004 Code RO 3551 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) 0x08000130 0x08000130 0x00000004 Code RO 3603 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x08000134 0x08000134 0x00000004 Code RO 3554 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) 0x08000134 0x08000134 0x00000004 Code RO 3606 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x08000138 0x08000138 0x00000000 Code RO 3556 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) 0x08000138 0x08000138 0x00000000 Code RO 3608 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x08000138 0x08000138 0x00000000 Code RO 3558 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) 0x08000138 0x08000138 0x00000000 Code RO 3610 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x08000138 0x08000138 0x00000008 Code RO 3559 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) 0x08000138 0x08000138 0x00000008 Code RO 3611 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x08000140 0x08000140 0x00000000 Code RO 3561 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) 0x08000140 0x08000140 0x00000000 Code RO 3613 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o)
0x08000140 0x08000140 0x00000000 Code RO 3563 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) 0x08000140 0x08000140 0x00000000 Code RO 3615 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o)
0x08000140 0x08000140 0x00000004 Code RO 3552 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) 0x08000140 0x08000140 0x00000004 Code RO 3604 .ARM.Collect$$$$00002712 mc_w.l(entry2.o)
0x08000144 0x08000144 0x00000024 Code RO 4 .text startup_stm32f103xe.o 0x08000144 0x08000144 0x00000024 Code RO 4 .text startup_stm32f103xe.o
0x08000168 0x08000168 0x00000098 Code RO 13 .text main.o 0x08000168 0x08000168 0x00000098 Code RO 13 .text main.o
0x08000200 0x08000200 0x00000060 Code RO 162 .text gpio.o 0x08000200 0x08000200 0x00000060 Code RO 162 .text gpio.o
@ -2412,56 +2440,56 @@ Memory Map of the image
0x0800031c 0x0800031c 0x000000d8 Code RO 216 .text usart.o 0x0800031c 0x0800031c 0x000000d8 Code RO 216 .text usart.o
0x080003f4 0x080003f4 0x00000030 Code RO 246 .text stm32f1xx_it.o 0x080003f4 0x080003f4 0x00000030 Code RO 246 .text stm32f1xx_it.o
0x08000424 0x08000424 0x0000003c Code RO 273 .text stm32f1xx_hal_msp.o 0x08000424 0x08000424 0x0000003c Code RO 273 .text stm32f1xx_hal_msp.o
0x08000460 0x08000460 0x00000430 Code RO 1514 .text epd_4in37g_test.o 0x08000460 0x08000460 0x00000550 Code RO 1569 .text epd_2in36g_test.o
0x08000890 0x08000890 0x000002ec Code RO 2653 .text epd_4in37g.o 0x080009b0 0x080009b0 0x000002d4 Code RO 2729 .text epd_2in36g.o
0x08000b7c 0x08000b7c 0x00000068 Code RO 2701 .text dev_config.o 0x08000c84 0x08000c84 0x00000068 Code RO 2753 .text dev_config.o
0x08000be4 0x08000be4 0x00000eac Code RO 2726 .text gui_paint.o 0x08000cec 0x08000cec 0x00000eac Code RO 2778 .text gui_paint.o
0x08001a90 0x08001a90 0x000000c4 Code RO 2860 .text system_stm32f1xx.o 0x08001b98 0x08001b98 0x000000c4 Code RO 2912 .text system_stm32f1xx.o
0x08001b54 0x08001b54 0x000015e8 Code RO 2916 .text stm32f1xx_hal_spi.o 0x08001c5c 0x08001c5c 0x000015e8 Code RO 2968 .text stm32f1xx_hal_spi.o
0x0800313c 0x0800313c 0x00000188 Code RO 2940 .text stm32f1xx_hal.o 0x08003244 0x08003244 0x00000188 Code RO 2992 .text stm32f1xx_hal.o
0x080032c4 0x080032c4 0x000008c8 Code RO 2970 .text stm32f1xx_hal_rcc.o 0x080033cc 0x080033cc 0x000008c8 Code RO 3022 .text stm32f1xx_hal_rcc.o
0x08003b8c 0x08003b8c 0x000003d4 Code RO 3018 .text stm32f1xx_hal_gpio.o 0x08003c94 0x08003c94 0x000003d4 Code RO 3070 .text stm32f1xx_hal_gpio.o
0x08003f60 0x08003f60 0x00000c48 Code RO 3042 .text stm32f1xx_hal_dma.o 0x08004068 0x08004068 0x00000c48 Code RO 3094 .text stm32f1xx_hal_dma.o
0x08004ba8 0x08004ba8 0x00000224 Code RO 3066 .text stm32f1xx_hal_cortex.o 0x08004cb0 0x08004cb0 0x00000224 Code RO 3118 .text stm32f1xx_hal_cortex.o
0x08004dcc 0x08004dcc 0x00000f9c Code RO 3230 .text stm32f1xx_hal_uart.o 0x08004ed4 0x08004ed4 0x00000f9c Code RO 3282 .text stm32f1xx_hal_uart.o
0x08005d68 0x08005d68 0x00000024 Code RO 3258 .text mc_w.l(memseta.o) 0x08005e70 0x08005e70 0x00000024 Code RO 3310 .text mc_w.l(memseta.o)
0x08005d8c 0x08005d8c 0x0000002c Code RO 3566 .text mc_w.l(uidiv.o) 0x08005e94 0x08005e94 0x0000002c Code RO 3618 .text mc_w.l(uidiv.o)
0x08005db8 0x08005db8 0x00000024 Code RO 3583 .text mc_w.l(init.o) 0x08005ec0 0x08005ec0 0x00000024 Code RO 3635 .text mc_w.l(init.o)
0x08005ddc 0x08005ddc 0x00000020 Code RO 3351 i.__0printf$3 mc_w.l(printf3.o) 0x08005ee4 0x08005ee4 0x00000020 Code RO 3403 i.__0printf$3 mc_w.l(printf3.o)
0x08005dfc 0x08005dfc 0x0000000e Code RO 3593 i.__scatterload_copy mc_w.l(handlers.o) 0x08005f04 0x08005f04 0x0000000e Code RO 3645 i.__scatterload_copy mc_w.l(handlers.o)
0x08005e0a 0x08005e0a 0x00000002 Code RO 3594 i.__scatterload_null mc_w.l(handlers.o) 0x08005f12 0x08005f12 0x00000002 Code RO 3646 i.__scatterload_null mc_w.l(handlers.o)
0x08005e0c 0x08005e0c 0x0000000e Code RO 3595 i.__scatterload_zeroinit mc_w.l(handlers.o) 0x08005f14 0x08005f14 0x0000000e Code RO 3647 i.__scatterload_zeroinit mc_w.l(handlers.o)
0x08005e1a 0x08005e1a 0x00000002 PAD 0x08005f22 0x08005f22 0x00000002 PAD
0x08005e1c 0x08005e1c 0x000001b8 Code RO 3358 i._printf_core mc_w.l(printf3.o) 0x08005f24 0x08005f24 0x000001b8 Code RO 3410 i._printf_core mc_w.l(printf3.o)
0x08005fd4 0x08005fd4 0x00000050 Code RO 3523 i.free mc_w.l(malloc.o) 0x080060dc 0x080060dc 0x00000050 Code RO 3575 i.free mc_w.l(malloc.o)
0x08006024 0x08006024 0x0000006c Code RO 3524 i.malloc mc_w.l(malloc.o) 0x0800612c 0x0800612c 0x0000006c Code RO 3576 i.malloc mc_w.l(malloc.o)
0x08006090 0x08006090 0x0000b800 Data RO 356 .constdata imagedata2.o 0x08006198 0x08006198 0x00003090 Data RO 354 .constdata imagedata2.o
0x08011890 0x08011890 0x00000474 Data RO 2773 .constdata font12.o 0x08009228 0x08009228 0x00000474 Data RO 2825 .constdata font12.o
0x08011d04 0x08011d04 0x00000ed8 Data RO 2815 .constdata font20.o 0x0800969c 0x0800969c 0x00000be0 Data RO 2853 .constdata font16.o
0x08012bdc 0x08012bdc 0x00001182 Data RO 2843 .constdata font24cn.o 0x0800a27c 0x0800a27c 0x00001182 Data RO 2895 .constdata font24cn.o
0x08013d5e 0x08013d5e 0x00000010 Data RO 2861 .constdata system_stm32f1xx.o 0x0800b3fe 0x0800b3fe 0x00000010 Data RO 2913 .constdata system_stm32f1xx.o
0x08013d6e 0x08013d6e 0x00000008 Data RO 2862 .constdata system_stm32f1xx.o 0x0800b40e 0x0800b40e 0x00000008 Data RO 2914 .constdata system_stm32f1xx.o
0x08013d76 0x08013d76 0x00000002 PAD 0x0800b416 0x0800b416 0x00000002 PAD
0x08013d78 0x08013d78 0x000000e9 Data RO 2728 .conststring gui_paint.o 0x0800b418 0x0800b418 0x000000e9 Data RO 2780 .conststring gui_paint.o
0x08013e61 0x08013e61 0x00000003 PAD 0x0800b501 0x0800b501 0x00000003 PAD
0x08013e64 0x08013e64 0x00000020 Data RO 3591 Region$$Table anon$$obj.o 0x0800b504 0x0800b504 0x00000020 Data RO 3643 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08013e84, Size: 0x0000d0e8, Max: 0x00010000, ABSOLUTE) Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800b524, Size: 0x0000d0e8, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08013e84 0x00000008 Data RW 2774 .data font12.o 0x20000000 0x0800b524 0x00000008 Data RW 2826 .data font12.o
0x20000008 0x08013e8c 0x00000008 Data RW 2816 .data font20.o 0x20000008 0x0800b52c 0x00000008 Data RW 2854 .data font16.o
0x20000010 0x08013e94 0x0000000c Data RW 2844 .data font24cn.o 0x20000010 0x0800b534 0x0000000c Data RW 2896 .data font24cn.o
0x2000001c 0x08013ea0 0x00000004 Data RW 2863 .data system_stm32f1xx.o 0x2000001c 0x0800b540 0x00000004 Data RW 2915 .data system_stm32f1xx.o
0x20000020 0x08013ea4 0x0000000c Data RW 2941 .data stm32f1xx_hal.o 0x20000020 0x0800b544 0x0000000c Data RW 2993 .data stm32f1xx_hal.o
0x2000002c 0x08013eb0 0x00000004 Data RW 3565 .data mc_w.l(stdout.o) 0x2000002c 0x0800b550 0x00000004 Data RW 3617 .data mc_w.l(stdout.o)
0x20000030 0x08013eb4 0x00000004 Data RW 3570 .data mc_w.l(mvars.o) 0x20000030 0x0800b554 0x00000004 Data RW 3622 .data mc_w.l(mvars.o)
0x20000034 0x08013eb8 0x00000004 Data RW 3571 .data mc_w.l(mvars.o) 0x20000034 0x0800b558 0x00000004 Data RW 3623 .data mc_w.l(mvars.o)
0x20000038 - 0x00000058 Zero RW 187 .bss spi.o 0x20000038 - 0x00000058 Zero RW 187 .bss spi.o
0x20000090 - 0x00000040 Zero RW 217 .bss usart.o 0x20000090 - 0x00000040 Zero RW 217 .bss usart.o
0x200000d0 - 0x00000018 Zero RW 2727 .bss gui_paint.o 0x200000d0 - 0x00000018 Zero RW 2779 .bss gui_paint.o
0x200000e8 - 0x0000c000 Zero RW 2 HEAP startup_stm32f103xe.o 0x200000e8 - 0x0000c000 Zero RW 2 HEAP startup_stm32f103xe.o
0x2000c0e8 - 0x00001000 Zero RW 1 STACK startup_stm32f103xe.o 0x2000c0e8 - 0x00001000 Zero RW 1 STACK startup_stm32f103xe.o
@ -2473,32 +2501,32 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name Code (inc. data) RO Data RW Data ZI Data Debug Object Name
104 10 0 0 0 780 dev_config.o 104 10 0 0 0 792 dev_config.o
748 60 0 0 0 2703 epd_4in37g.o 724 60 0 0 0 2711 epd_2in36g.o
1072 384 0 0 0 1478 epd_4in37g_test.o 1360 394 0 0 0 1718 epd_2in36g_test.o
0 0 1140 8 0 1353 font12.o 0 0 1140 8 0 1389 font12.o
0 0 3800 8 0 1353 font20.o 0 0 3040 8 0 1389 font16.o
0 0 4482 12 0 1363 font24cn.o 0 0 4482 12 0 1391 font24cn.o
96 10 0 0 0 803 gpio.o 96 10 0 0 0 827 gpio.o
3756 662 233 0 24 14608 gui_paint.o 3756 662 233 0 24 14644 gui_paint.o
0 0 47104 0 0 842 imagedata2.o 0 0 12432 0 0 920 imagedata2.o
152 20 0 0 0 461928 main.o 152 20 0 0 0 462020 main.o
188 18 0 0 88 1429 spi.o 188 18 0 0 88 1473 spi.o
36 8 304 0 53248 796 startup_stm32f103xe.o 36 8 304 0 53248 804 startup_stm32f103xe.o
392 38 0 12 0 7649 stm32f1xx_hal.o 392 38 0 12 0 7697 stm32f1xx_hal.o
548 12 0 0 0 30674 stm32f1xx_hal_cortex.o 548 12 0 0 0 30706 stm32f1xx_hal_cortex.o
3144 164 0 0 0 7109 stm32f1xx_hal_dma.o 3144 164 0 0 0 7133 stm32f1xx_hal_dma.o
980 30 0 0 0 4391 stm32f1xx_hal_gpio.o 980 30 0 0 0 4415 stm32f1xx_hal_gpio.o
60 8 0 0 0 826 stm32f1xx_hal_msp.o 60 8 0 0 0 854 stm32f1xx_hal_msp.o
2248 88 0 0 0 6559 stm32f1xx_hal_rcc.o 2248 88 0 0 0 6583 stm32f1xx_hal_rcc.o
5608 106 0 0 0 19625 stm32f1xx_hal_spi.o 5608 106 0 0 0 19649 stm32f1xx_hal_spi.o
3996 46 0 0 0 17432 stm32f1xx_hal_uart.o 3996 46 0 0 0 17460 stm32f1xx_hal_uart.o
48 22 0 0 0 1246 stm32f1xx_it.o 48 22 0 0 0 1258 stm32f1xx_it.o
196 28 24 4 0 1509 system_stm32f1xx.o 196 28 24 4 0 1553 system_stm32f1xx.o
216 18 0 0 64 1753 usart.o 216 18 0 0 64 1777 usart.o
---------------------------------------------------------------------- ----------------------------------------------------------------------
23588 1732 57124 44 53424 588209 Object Totals 23852 1742 21692 44 53424 589163 Object Totals
0 0 32 0 0 0 (incl. Generated) 0 0 32 0 0 0 (incl. Generated)
0 0 5 0 0 0 (incl. Padding) 0 0 5 0 0 0 (incl. Padding)
@ -2543,15 +2571,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Code (inc. data) RO Data RW Data ZI Data Debug
24416 1782 57124 56 53424 587089 Grand Totals 24680 1792 21692 56 53424 588043 Grand Totals
24416 1782 57124 56 53424 587089 ELF Image Totals 24680 1792 21692 56 53424 588043 ELF Image Totals
24416 1782 57124 56 0 0 ROM Totals 24680 1792 21692 56 0 0 ROM Totals
============================================================================== ==============================================================================
Total RO Size (Code + RO Data) 81540 ( 79.63kB) Total RO Size (Code + RO Data) 46372 ( 45.29kB)
Total RW Size (RW Data + ZI Data) 53480 ( 52.23kB) Total RW Size (RW Data + ZI Data) 53480 ( 52.23kB)
Total ROM Size (Code + RO Data + RW Data) 81596 ( 79.68kB) Total ROM Size (Code + RO Data + RW Data) 46428 ( 45.34kB)
============================================================================== ==============================================================================

View file

@ -580,17 +580,17 @@ ARM Macro Assembler Page 9
00000000 00000000
Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
ork --depend=epd-demo\startup_stm32f103xe.d -oepd-demo\startup_stm32f103xe.o -I ork --depend=epd-demo\startup_stm32f103xe.d -oepd-demo\startup_stm32f103xe.o -I
.\RTE\_epd-demo -I"D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\I .\RTE\_epd-demo -ID:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include -ID:
nclude" -I"D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Incl \KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --predefine="__MICR
ude" --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 525" - OLIB SETA 1" --predefine="__UVISION_VERSION SETA 526" --predefine="_RTE_ SETA 1
ARM Macro Assembler Page 10 ARM Macro Assembler Page 10
-predefine="_RTE_ SETA 1" --predefine="STM32F10X_HD SETA 1" --list=startup_stm3 " --predefine="STM32F10X_HD SETA 1" --list=startup_stm32f103xe.lst startup_stm3
2f103xe.lst startup_stm32f103xe.s 2f103xe.s

View file

@ -95,6 +95,7 @@ int main(void)
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
// EPD_1in64g_test(); // EPD_1in64g_test();
// EPD_2in36g_test();
// EPD_3in0g_test(); // EPD_3in0g_test();
// EPD_4in37g_test(); // EPD_4in37g_test();
// EPD_7in3g_test(); // EPD_7in3g_test();

View file

@ -0,0 +1,154 @@
/*****************************************************************************
* | File : EPD_2in36g_test.c
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G) test demo
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-18
* | Info :
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_Test.h"
#include "EPD_2in36g.h"
#include "time.h"
int EPD_2in36g_test(void)
{
printf("EPD_2IN36G_test Demo\r\n");
if(DEV_Module_Init()!=0){
return -1;
}
printf("e-Paper Init and Clear...\r\n");
EPD_2IN36G_Init();
EPD_2IN36G_Clear(EPD_2IN36G_WHITE); // White
DEV_Delay_ms(2000);
//Create a new image cache
UBYTE *BlackImage;
/* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
UWORD Imagesize = ((EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1)) * EPD_2IN36G_HEIGHT;
if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
printf("Failed to apply for black memory...\r\n");
return -1;
}
printf("Paint_NewImage\r\n");
Paint_NewImage(BlackImage, EPD_2IN36G_WIDTH, EPD_2IN36G_HEIGHT, 0, WHITE);
Paint_SetScale(4);
#if 1 // show bmp
printf("show window BMP-----------------\r\n");
Paint_SelectImage(BlackImage);
Paint_DrawBitMap(gImage_2in36g);
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(2000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawPoint(10, 80, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
Paint_DrawPoint(10, 90, EPD_2IN36G_WHITE, DOT_PIXEL_2X2, DOT_STYLE_DFT);
Paint_DrawPoint(10, 100, EPD_2IN36G_RED, DOT_PIXEL_3X3, DOT_STYLE_DFT);
Paint_DrawLine(20, 70, 70, 120, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawLine(70, 70, 20, 120, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
Paint_DrawRectangle(20, 70, 70, 120, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawRectangle(80, 70, 130, 120, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawCircle(45, 95, 20, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
Paint_DrawCircle(105, 95, 20, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawLine(85, 95, 125, 95, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawLine(105, 75, 105, 115, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, EPD_2IN36G_BLACK, EPD_2IN36G_WHITE);
Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, EPD_2IN36G_WHITE, EPD_2IN36G_RED);
Paint_DrawString_CN(10, 125, "΢ѩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", &Font24CN, EPD_2IN36G_BLACK, EPD_2IN36G_YELLOW);
Paint_DrawNum(10, 50, 123456, &Font12, EPD_2IN36G_BLACK, EPD_2IN36G_YELLOW);
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
Paint_DrawRectangle(1, 1, 168, 86, EPD_2IN36G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(1, 210, 167, 295, EPD_2IN36G_WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
Paint_DrawRectangle(59, 1, 109, 295, EPD_2IN36G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(EPD_2IN36G_WHITE);
int hNumber, hWidth, vNumber, vWidth;
hNumber = 16;
hWidth = EPD_2IN36G_HEIGHT/hNumber; // 368/16=23
vNumber = 16;
vWidth = EPD_2IN36G_WIDTH/vNumber; // 512/16=32
// 2.Drawing on the image
printf("Drawing:BlackImage\r\n");
for(int i=0; i<hNumber; i++) { // horizontal
Paint_DrawRectangle(1, 1+i*hWidth, EPD_2IN36G_WIDTH, hWidth*(1+i), EPD_2IN36G_BLACK + (i % 2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
for(int i=0; i<vNumber; i++) { // vertical
if(i%2) {
Paint_DrawRectangle(1+i*vWidth, 1, vWidth*(i+1), EPD_2IN36G_HEIGHT, EPD_2IN36G_YELLOW + (i/2%2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
}
}
printf("EPD_Display\r\n");
EPD_2IN36G_Display(BlackImage);
DEV_Delay_ms(3000);
#endif
printf("Clear...\r\n");
EPD_2IN36G_Clear(EPD_2IN36G_WHITE);
printf("Goto Sleep...\r\n");
EPD_2IN36G_Sleep();
free(BlackImage);
BlackImage = NULL;
DEV_Delay_ms(2000);//important, at least 2s
// close 5V
printf("close 5V, Module enters 0 power consumption ...\r\n");
DEV_Module_Exit();
return 0;
}

View file

@ -58,7 +58,7 @@ int EPD_4in37g_test(void)
printf("show image for array\r\n"); printf("show image for array\r\n");
Paint_SelectImage(BlackImage); Paint_SelectImage(BlackImage);
Paint_Clear(EPD_4IN37G_WHITE); Paint_Clear(EPD_4IN37G_WHITE);
Paint_DrawBitMap(Image4color); Paint_DrawBitMap(gImage_4in37g);
EPD_4IN37G_Display(BlackImage); EPD_4IN37G_Display(BlackImage);
DEV_Delay_ms(2000); DEV_Delay_ms(2000);
#endif #endif

View file

@ -37,6 +37,7 @@
#include <stdlib.h> // malloc() free() #include <stdlib.h> // malloc() free()
int EPD_1in64g_test(void); int EPD_1in64g_test(void);
int EPD_2in36g_test(void);
int EPD_3in0g_test(void); int EPD_3in0g_test(void);
int EPD_4in37g_test(void); int EPD_4in37g_test(void);
int EPD_7in3g_test(void); int EPD_7in3g_test(void);

View file

@ -38,8 +38,9 @@ extern const unsigned char gImage_2in13b_V4b[];
extern const unsigned char gImage_2in13b_V4r[]; extern const unsigned char gImage_2in13b_V4r[];
extern const unsigned char gImage_1in64g[]; extern const unsigned char gImage_1in64g[];
extern const unsigned char gImage_2in36g[];
extern const unsigned char gImage_3in0g[]; extern const unsigned char gImage_3in0g[];
extern const unsigned char Image4color[]; extern const unsigned char gImage_4in37g[];
extern const unsigned char gImage_7in3g[]; extern const unsigned char gImage_7in3g[];
/* --------------------------------------- */ /* --------------------------------------- */

View file

@ -982,6 +982,786 @@ const unsigned char gImage_1in64g[7056] = {
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
}; };
const unsigned char gImage_2in36g[12432] = {
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x41,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFE,0xAA,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFA,0xAF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAB,0xEA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xAA,0xBA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x05,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,
0xAA,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xAA,0xFE,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xEA,0xFF,0xAA,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBE,0xAB,0xFE,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAB,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAA,0xAF,0xEA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAF,0xEA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xBF,0xFA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x05,
0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
0xFF,0xFA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x01,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x40,0x00,0x05,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x04,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x10,0x05,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x50,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,
0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x05,0x40,0x15,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x01,0x50,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x05,
0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x50,0x05,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x00,0x04,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAB,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
0x00,0x00,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xAA,0xAB,0xFA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xEA,0xBF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xEA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,
0xAB,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xAB,0xFE,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x51,0x55,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x50,0x00,0x00,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xEA,0xFF,0xAB,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x40,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x01,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xAB,0xFE,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xAB,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x05,0x50,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xBF,0xAB,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x00,0x15,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xAB,0xFA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x55,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,
0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x40,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x40,0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x54,0x01,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xBF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x00,0x00,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEF,0xFF,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFE,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xBF,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAB,
0xFF,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x05,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x40,0x04,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x05,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x04,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x14,0x04,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x54,0x05,
0x40,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,
0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x54,0x05,0x40,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xFF,0xEA,0xAF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x01,0x54,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xEA,0xBF,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x54,0x05,0x40,0x15,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFE,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x54,0x01,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
0x14,0x00,0x00,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x00,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x50,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x51,0x55,0x40,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAF,0xEA,0xAA,
0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAB,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x05,
0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAF,0xEA,0xAA,0xAA,0xAA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x01,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFA,0xAF,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x01,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,
0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x00,0x54,0x00,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x01,0x55,0x00,0x15,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x05,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x15,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x15,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xBF,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x50,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,
0x40,0x15,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,
0xFF,0xEA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x15,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAB,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x15,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xAB,0xFF,0xFA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,
0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x01,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x15,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x00,0x05,0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x01,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x05,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
0x00,0x04,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x10,0x05,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x50,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x05,
0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x50,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x01,0x50,0x05,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xBF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x50,0x05,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xBF,0xFE,0xAA,0xAA,0xAB,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x04,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAB,
0xFA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x01,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAA,0xAA,0xAA,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAF,
0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xFE,0xAA,0xAA,0xBF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,
0xFF,0xEA,0xAA,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xEA,0xAA,0xFF,0xFF,0xEA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAF,0xFF,0xFA,0xAB,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFA,
0xAB,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFA,0xAB,0xFF,0xFF,0xEA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAF,0xFF,0xEA,0xAA,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xEA,0xAA,0xFF,
0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xFF,0xAA,0xAA,0xBF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,
0xAA,0xAA,0xAA,0xAF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAB,
0xEA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x05,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAF,0xFA,0xAA,0xAA,0xAA,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xEA,0xAA,0xBF,0xFE,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x01,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAB,0xFF,0xFF,0xEA,
0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x40,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x45,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x15,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,
0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x45,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x00,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x15,0x55,0x45,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x54,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAB,0xFF,0xFF,0xEA,0xAA,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x50,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xFF,0xFF,0xAA,
0xAB,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x15,0x55,0x15,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xAA,0xAB,0xFF,0xFF,0xEA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x15,0x55,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAA,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x15,0x54,
0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,0xAA,0xAF,0xFF,
0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x54,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xEA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x15,0x54,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,
0xAA,0xEA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x00,0x15,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xEA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x51,0x55,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x55,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,
0xAA,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x54,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x40,0x15,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x00,0x15,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x05,0x50,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x50,0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x05,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,
0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x01,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x15,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x40,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x45,0x40,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x54,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,
0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x40,0x15,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x40,
0x05,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x50,0x54,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x05,0x00,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xBF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x40,0x15,0x00,0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFE,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xBF,
0xFF,0xFA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFA,0xAA,0xAB,0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xFE,0xAA,
0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xBF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x51,0x55,0x50,0x00,0x54,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x15,0x50,
0x05,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,
0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x54,
0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x50,0x05,0x55,0x40,0x15,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x54,0x04,0x15,0x55,0x55,0x55,0x55,
0x55,0x50,0x00,0x50,0x05,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x54,0x05,0x45,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x10,0x05,0x55,
0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x15,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x00,0x05,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x40,0x00,0x01,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBA,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xFE,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,
0xFF,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x15,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x54,0x01,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xBF,0xFF,0xFA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFE,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x01,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x00,0x05,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x01,0x55,0x00,0x00,0x01,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x54,
0x00,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x15,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x14,0x01,0x55,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x50,0x00,0x04,0x01,0x55,0x00,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x05,0x55,
0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,
0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x04,0x00,0x05,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x05,0x00,0x05,0x55,0x40,0x15,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x40,0x01,0x55,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x05,0x50,0x15,0x54,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAB,0xFF,0xFF,0xEA,0xAA,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x54,
0x55,0x50,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xFF,0xFF,0xAA,
0xAB,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x55,0x54,0x01,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xAA,0xAB,0xFF,0xFF,0xEA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x50,0x05,0x55,0x55,0x54,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAA,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xBF,0xAA,0xAF,0xFF,
0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xEA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,
0xAA,0xEA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xEA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,
0xAA,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x50,0x05,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,
0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x04,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x00,0x05,0x55,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x05,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x00,0x00,0x01,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x05,0x05,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x00,0x00,0x00,0x55,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x50,0x01,0x54,0x00,0x15,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x04,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,
0x05,0x55,0x00,0x05,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,
0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,0x40,0x01,0x00,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,
0x55,0x55,0x55,0x50,0x05,0x55,0x54,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x55,
0x55,0x00,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x01,0x55,0x55,0x40,0x00,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFF,0xFA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x54,0x00,0x15,0x55,0x50,0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAB,0xFF,0xFF,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x55,0x55,0x54,
0x00,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xAA,0xAA,
0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x50,0x00,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x50,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,
0x50,0x55,0x55,0x55,0x40,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,
0xFF,0xFF,0xEA,0xAF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x54,0x00,0x14,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFA,0xAA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x00,0x01,0x55,0x45,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAB,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,
0xEA,0xAB,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xAA,0xAB,0xFF,0xFE,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xEA,0xAA,0xFF,0xFE,0xAA,0xAF,0xFF,0xFF,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAF,0xEA,0xAA,0xAF,
0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,
0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xAA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,
0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x54,
0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xD5,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x54,0x04,0x15,0x55,0x55,0x55,0x55,
0x55,0x5F,0xFF,0xFF,0x55,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x55,0x54,0x05,0x45,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xF5,0x55,0x5F,
0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0x55,0x55,0x55,0x5F,0xFF,0xD5,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,
0xF5,0x55,0x5D,0x55,0x5F,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,
0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x5F,0xFF,0xD5,0x55,0xFF,0xF5,0x57,0xFF,
0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0x5F,0xFF,0xD5,0x55,0xFF,0xF5,0x55,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xAA,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xF5,0x55,
0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAB,
0xFF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x41,0x55,
0x05,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0x55,0x55,0x7F,0xFF,0xFF,0xD5,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,
0xFF,0xFF,0xFF,0xF5,0x55,0x5F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFA,0xAA,0xAA,0xAA,0xAF,0xFF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x55,0x05,0x55,0x55,0x55,0x55,0x55,0xFD,0x55,0x5F,0xFF,0x55,0x5F,
0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAA,0xAA,0xFF,
0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x01,0x54,0x05,0x55,
0x55,0x55,0x55,0x55,0xFF,0x55,0x57,0xFF,0xF5,0x5F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAA,0xAA,0xBF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0xFF,0xD5,
0x55,0x5F,0xFD,0x7F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,
0xAA,0xAA,0xAA,0xAF,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0xFF,0xF5,0x55,0x57,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAA,0xFF,0xEA,0xAA,0xAB,0xFF,0xAA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0xFF,0xFD,0xF5,0x55,0x5F,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xAA,0xAB,0xFF,0xFE,0xAA,0xAA,0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0x55,
0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,
0xAA,0xAA,0xBF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x50,0x05,
0x15,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xF5,0x55,0x5F,0xFF,0xFF,0xD5,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xEA,0xAA,0xAF,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x04,0x05,0x55,0x55,0x55,0x55,0x55,
0xFF,0xFF,0xFF,0xF5,0x55,0x5F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xAA,0xAF,0xFF,0xFF,0xFA,0xAA,0xAB,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x01,0x05,0x05,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFD,0x55,0x55,0x7F,
0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xFF,0xAA,
0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,
0x55,0x55,0x55,0x55,0xFF,0xFF,0xD5,0x55,0x57,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xAA,0xAF,0xFF,0xFF,0xFF,0xEA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x05,0x05,0x05,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,
0xD5,0x55,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xAB,
0xFF,0xFF,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x01,0x04,0x05,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xD5,0x55,0xFF,0xFF,0xFF,0xFF,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAA,0xFF,0xFF,0xFF,0xFE,0xAA,0xAA,
0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x40,0x00,0x05,0x55,0x55,0x55,
0x55,0x55,0xFF,0xFF,0xFD,0x55,0x55,0xFF,0xFF,0xFF,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xEA,0xAA,0xAF,0xFF,0xFF,0xFF,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x55,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xF5,
0x55,0x5F,0xFF,0xFD,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,
0xFF,0xFF,0xEA,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xF1,0x55,0x5F,0xFF,0xFD,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAF,0xFF,0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x45,0x55,0x55,0x55,0x55,0x55,
0xFF,0xFF,0xF5,0x55,0x55,0x5F,0xFF,0xF5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xAA,0xAF,0xFF,0xFF,0xFF,0xFE,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x50,0x00,0x54,0x05,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xD5,0x55,0x55,0xFF,
0xFF,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xAA,0xBF,0xFF,0xFF,0xFF,
0xFF,0xAA,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x10,0x05,0x55,
0x55,0x55,0x55,0x55,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFA,0xBF,0xFF,0xFF,0xFF,0xFF,0xEA,0xAB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x40,0x50,0x00,0x15,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,
0xD5,0x5F,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x41,
0x54,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xD7,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x41,0x54,0x15,0x55,0x55,0x55,0x55,
0x55,0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xD5,0x55,0x55,0x41,0x54,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFF,0xFF,
0xFF,0xD5,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,
0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,
0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
};
const unsigned char gImage_3in0g[16800] = { const unsigned char gImage_3in0g[16800] = {
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,
@ -8039,7 +8819,7 @@ const unsigned char gImage_7in3g[96000] = {
}; };
// 4 Color Image Data 512*368 // 4 Color Image Data 512*368
const unsigned char Image4color[47104] = { const unsigned char gImage_4in37g[47104] = {
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,

View file

@ -0,0 +1,238 @@
/*****************************************************************************
* | File : EPD_2in36g.c
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-17
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "EPD_2in36g.h"
#include "Debug.h"
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_2IN36G_Reset(void)
{
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);
DEV_Digital_Write(EPD_RST_PIN, 0);
DEV_Delay_ms(2);
DEV_Digital_Write(EPD_RST_PIN, 1);
DEV_Delay_ms(20);
}
/******************************************************************************
function : send command
parameter:
Reg : Command register
******************************************************************************/
static void EPD_2IN36G_SendCommand(UBYTE Reg)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Reg);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : send data
parameter:
Data : Write data
******************************************************************************/
static void EPD_2IN36G_SendData(UBYTE Data)
{
DEV_Digital_Write(EPD_DC_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_SPI_WriteByte(Data);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : Wait until the busy_pin goes LOW
parameter:
******************************************************************************/
static void EPD_2IN36G_ReadBusyH(void)
{
Debug("e-Paper busy H\r\n");
while(!DEV_Digital_Read(EPD_BUSY_PIN)) { //LOW: idle, HIGH: busy
DEV_Delay_ms(5);
}
Debug("e-Paper busy H release\r\n");
}
static void EPD_2IN36G_ReadBusyL(void)
{
Debug("e-Paper busy L\r\n");
while(DEV_Digital_Read(EPD_BUSY_PIN)) { //LOW: idle, HIGH: busy
DEV_Delay_ms(5);
}
Debug("e-Paper busy L release\r\n");
}
/******************************************************************************
function : Turn On Display
parameter:
******************************************************************************/
static void EPD_2IN36G_TurnOnDisplay(void)
{
EPD_2IN36G_SendCommand(0x12); // DISPLAY_REFRESH
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x02); // POWER_OFF
EPD_2IN36G_SendData(0X00);
EPD_2IN36G_ReadBusyH();
}
/******************************************************************************
function : Initialize the e-Paper register
parameter:
******************************************************************************/
void EPD_2IN36G_Init(void)
{
EPD_2IN36G_Reset();
EPD_2IN36G_SendCommand(0x66);
EPD_2IN36G_SendData(0x49);
EPD_2IN36G_SendData(0x55);
EPD_2IN36G_SendData(0x13);
EPD_2IN36G_SendData(0x5D);
EPD_2IN36G_SendCommand(0x66);
EPD_2IN36G_SendData(0x49);
EPD_2IN36G_SendData(0x55);
EPD_2IN36G_SendCommand(0xB0);
EPD_2IN36G_SendData(0x03);//1 boost 20211113
EPD_2IN36G_SendCommand(0x00);
EPD_2IN36G_SendData(0x4F);
EPD_2IN36G_SendData(0x69);
EPD_2IN36G_SendCommand(0x03);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0xF0);
EPD_2IN36G_SendData(0xF6);
EPD_2IN36G_SendData(0x0D);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0x06); //20211113
EPD_2IN36G_SendData(0xCF);
EPD_2IN36G_SendData(0xDE);
EPD_2IN36G_SendData(0x0F);
EPD_2IN36G_SendCommand(0x41);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_SendCommand(0x50);
EPD_2IN36G_SendData(0x30);
EPD_2IN36G_SendCommand(0x60);
EPD_2IN36G_SendData(0x0C);
EPD_2IN36G_SendData(0x05);
EPD_2IN36G_SendCommand(0x61);
EPD_2IN36G_SendData(0xA8);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendData(0x28);
EPD_2IN36G_SendCommand(0x84);
EPD_2IN36G_SendData(0x01);
}
/******************************************************************************
function : Clear screen
parameter:
******************************************************************************/
void EPD_2IN36G_Clear(UBYTE color)
{
UWORD Width, Height;
Width = (EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1);
Height = EPD_2IN36G_HEIGHT;
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendCommand(0x04);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN36G_SendData((color << 6) | (color << 4) | (color << 2) | color);
}
}
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_TurnOnDisplay();
}
/******************************************************************************
function : Sends the image buffer in RAM to e-Paper and displays
parameter:
******************************************************************************/
void EPD_2IN36G_Display(UBYTE *Image)
{
UWORD Width, Height;
Width = (EPD_2IN36G_WIDTH % 4 == 0)? (EPD_2IN36G_WIDTH / 4 ): (EPD_2IN36G_WIDTH / 4 + 1);
Height = EPD_2IN36G_HEIGHT;
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x01);
EPD_2IN36G_SendCommand(0x04);
EPD_2IN36G_ReadBusyH();
EPD_2IN36G_SendCommand(0x10);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_2IN36G_SendData(Image[i + j * Width]);
}
}
EPD_2IN36G_SendCommand(0x68);
EPD_2IN36G_SendData(0x00);
EPD_2IN36G_TurnOnDisplay();
}
/******************************************************************************
function : Enter sleep mode
parameter:
******************************************************************************/
void EPD_2IN36G_Sleep(void)
{
EPD_2IN36G_SendCommand(0x02); // POWER_OFF
EPD_2IN36G_SendData(0X00);
EPD_2IN36G_SendCommand(0x07); // DEEP_SLEEP
EPD_2IN36G_SendData(0XA5);
}

View file

@ -0,0 +1,51 @@
/*****************************************************************************
* | File : EPD_2in36g.h
* | Author : Waveshare team
* | Function : 2.36inch e-Paper (G)
* | Info :
*----------------
* | This version: V1.0
* | Date : 2022-08-17
* | Info :
* -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#ifndef __EPD_2IN36G_H_
#define __EPD_2IN36G_H_
#include "DEV_Config.h"
// Display resolution
#define EPD_2IN36G_WIDTH 168
#define EPD_2IN36G_HEIGHT 296
// Color
#define EPD_2IN36G_BLACK 0x0
#define EPD_2IN36G_WHITE 0x1
#define EPD_2IN36G_YELLOW 0x2
#define EPD_2IN36G_RED 0x3
void EPD_2IN36G_Init(void);
void EPD_2IN36G_Clear(UBYTE color);
void EPD_2IN36G_Display(UBYTE *Image);
void EPD_2IN36G_Sleep(void);
#endif

View file

@ -31,4 +31,5 @@
2022-07-22添加新程序3inch e-Paper (G)例程。 2022-07-22添加新程序3inch e-Paper (G)例程。
2022-07-22添加新程序7.3inch e-Paper (G)例程。 2022-07-22添加新程序7.3inch e-Paper (G)例程。
2022-07-22添加新程序3.52inch e-Paper例程。 2022-07-22添加新程序3.52inch e-Paper例程。
2022-08-16添加新程序4.37inch e-Paper (G)例程。 2022-08-16添加新程序4.37inch e-Paper (G)例程。
2022-08-17添加新程序2.36inch e-Paper (G)例程。

View file

@ -30,4 +30,5 @@
2022-07-22: Added new programs 3inch e-Paper (G) routine. 2022-07-22: Added new programs 3inch e-Paper (G) routine.
2022-07-22: Added new programs 7.3inch e-Paper (G) routine. 2022-07-22: Added new programs 7.3inch e-Paper (G) routine.
2022-07-22: Added new programs 3.52inch e-Paper routine. 2022-07-22: Added new programs 3.52inch e-Paper routine.
2022-08-16: Added new programs 4.37inch e-Paper (G) routine. 2022-08-16: Added new programs 4.37inch e-Paper (G) routine.
2022-08-17: Added new programs 2.36inch e-Paper (G) routine.