shhds 2 лет назад
Родитель
Сommit
fc4f54334d
37 измененных файлов с 7324 добавлено и 568 удалено
  1. 0 12
      .vscode/settings.json
  2. 244 0
      Arduino/epd2in13g/EPD_2in13g.cpp
  3. 58 0
      Arduino/epd2in13g/EPD_2in13g.h
  4. 60 0
      Arduino/epd2in13g/epd2in13g.ino
  5. 64 0
      Arduino/epd2in13g/epdif.cpp
  6. 51 0
      Arduino/epd2in13g/epdif.h
  7. 515 0
      Arduino/epd2in13g/imagedata.cpp
  8. 30 0
      Arduino/epd2in13g/imagedata.h
  9. 3 0
      RaspberryPi_JetsonNano/c/Makefile
  10. 162 0
      RaspberryPi_JetsonNano/c/examples/EPD_2in13g_test.c
  11. 1 0
      RaspberryPi_JetsonNano/c/examples/EPD_Test.h
  12. 3 0
      RaspberryPi_JetsonNano/c/examples/main.c
  13. 10 0
      RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.c
  14. 237 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in13g.c
  15. 32 0
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in13g.h
  16. BIN
      RaspberryPi_JetsonNano/c/pic/2in13g.bmp
  17. 68 0
      RaspberryPi_JetsonNano/python/examples/epd_2in13g_test.py
  18. BIN
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc
  19. 242 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.py
  20. BIN
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc
  21. BIN
      RaspberryPi_JetsonNano/python/pic/2in13g.bmp
  22. 97 0
      STM32/STM32-F103ZET6/MDK-ARM/DebugConfig/EPD_2in13g_test_STM32F103ZE.dbgconf
  23. 20 0
      STM32/STM32-F103ZET6/MDK-ARM/RTE/_EPD_2in13g_test/RTE_Components.h
  24. 2 3
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
  25. 294 46
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
  26. 290 26
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
  27. 94 0
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
  28. 1901 0
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm
  29. 461 479
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map
  30. 1465 0
      STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst
  31. 160 0
      STM32/STM32-F103ZET6/User/Examples/EPD_2in13g_test.c
  32. 1 0
      STM32/STM32-F103ZET6/User/Examples/ImageData.h
  33. 486 0
      STM32/STM32-F103ZET6/User/Examples/ImageData2.c
  34. 237 0
      STM32/STM32-F103ZET6/User/e-Paper/EPD_2in13g.c
  35. 32 0
      STM32/STM32-F103ZET6/User/e-Paper/EPD_2in13g.h
  36. 2 1
      Version_CN.txt
  37. 2 1
      Version_EN.txt

+ 0 - 12
.vscode/settings.json

@@ -1,12 +0,0 @@
-{
-    "files.associations": {
-        "imagedata.h": "c",
-        "epd_5in65f.h": "c",
-        "gui_paint.h": "c",
-        "math.h": "c",
-        "dev_config.h": "c",
-        "epd_4in37g.h": "c",
-        "epd_test.h": "c",
-        "epd_3in0g.h": "c"
-    }
-}

+ 244 - 0
Arduino/epd2in13g/EPD_2in13g.cpp

@@ -0,0 +1,244 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.c
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-29
+* | 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_2in13g.h"
+#include <stdlib.h>
+Epd::~Epd() {
+};
+Epd::Epd() {
+    reset_pin = RST_PIN;
+    dc_pin = DC_PIN;
+    cs_pin = CS_PIN;
+    busy_pin = BUSY_PIN;
+    WIDTH = EPD_2IN13G_WIDTH;
+    HEIGHT = EPD_2IN13G_HEIGHT;
+};
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+void Epd::Reset(void)
+{
+    DigitalWrite(RST_PIN, 1);
+    DelayMs(200);
+    DigitalWrite(RST_PIN, 0);
+    DelayMs(2);
+    DigitalWrite(RST_PIN, 1);
+    DelayMs(200);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+void Epd::SendCommand(UBYTE Reg)
+{
+    DigitalWrite(DC_PIN, 0);
+    DigitalWrite(CS_PIN, 0);   
+    SpiTransfer(Reg);
+    DigitalWrite(CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+void Epd::SendData(UBYTE Data)
+{
+    DigitalWrite(DC_PIN, 1);
+    DigitalWrite(CS_PIN, 0);
+    SpiTransfer(Data);
+    DigitalWrite(CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Wait until the busy_pin goes HIGH
+parameter:
+******************************************************************************/
+void Epd::ReadBusy(void)
+{
+    DelayMs(100);
+    Serial.println("busy");
+    while(DigitalRead(BUSY_PIN) != 1) {      //HIGH: idle, LOW: busy
+        DelayMs(100);
+    }
+    Serial.println("idie");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+void Epd::TurnOnDisplay(void)
+{
+
+    SendCommand(0x12); // DISPLAY_REFRESH
+    SendData(0x00);
+    ReadBusy();
+
+}
+
+/******************************************************************************
+function :	Setting the display window
+parameter:
+******************************************************************************/
+void Epd::SetWindows(void)
+{
+    SendCommand(0x61); //TRES
+    SendData(Source_BITS/256);		// EPD_2IN13G_WIDTH_H
+    SendData(Source_BITS%256);		// EPD_2IN13G_WIDTH_L
+    SendData(EPD_2IN13G_HEIGHT/256);			// EPD_2IN13G_HEIGHT_H
+    SendData(EPD_2IN13G_HEIGHT%256); 		// EPD_2IN13G_HEIGHT_L	
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+int Epd::Init(void)
+{
+    if (IfInit() != 0) {
+        return -1;
+    }
+    Reset();
+    ReadBusy();
+    SendCommand(0x4D);
+    SendData(0x78);
+
+    SendCommand(0x00);	//PSR
+    SendData(0x0F);
+    SendData(0x29);
+
+    SendCommand(0x01);	//PWRR
+    SendData(0x07);
+    SendData(0x00);
+
+    SendCommand(0x03);	//POFS
+    SendData(0x10);
+    SendData(0x54);
+    SendData(0x44);
+
+    SendCommand(0x06);	//BTST_P
+    SendData(0x05);
+    SendData(0x00);
+    SendData(0x3F);
+    SendData(0x0A);
+    SendData(0x25);
+    SendData(0x12);
+    SendData(0x1A); 
+
+    SendCommand(0x50);	//CDI
+    SendData(0x37);
+
+    SendCommand(0x60);	//TCON
+    SendData(0x02);
+    SendData(0x02);
+
+    SetWindows();  // Setting the display window
+
+    SendCommand(0xE7);
+    SendData(0x1C);
+
+    SendCommand(0xE3);	
+    SendData(0x22);
+
+    SendCommand(0xB4);
+    SendData(0xD0);
+    SendCommand(0xB5);
+    SendData(0x03);
+
+    SendCommand(0xE9);
+    SendData(0x01); 
+
+    SendCommand(0x30);
+    SendData(0x08);  
+
+    SendCommand(0x04);
+    ReadBusy(); 
+    return 0;
+
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = Source_BITS / 4 ;
+    Height = EPD_2IN13G_HEIGHT;
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            SendData((color << 6) | (color << 4) | (color << 2) | color);
+        }
+    }
+
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void Epd::Display(const UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1);
+    Height = EPD_2IN13G_HEIGHT;
+
+    SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < (Source_BITS/4); i++) {
+            if(i < 31 ) 
+            SendData(pgm_read_byte(&Image[i + j * Width]));
+            else SendData(0x00);
+        }
+    }
+    TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void Epd::Sleep(void)
+{
+    SendCommand(0x02); //power off
+    ReadBusy();       //waiting for the electronic paper IC to release the idle signal
+    DelayMs(100);           //!!!The delay here is necessary,100mS at least!!! 
+    
+    SendCommand(0x07);  //deep sleep
+    SendData(0XA5);
+}

+ 58 - 0
Arduino/epd2in13g/EPD_2in13g.h

@@ -0,0 +1,58 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.h
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-29
+* | Info        :
+* -----------------------------------------------------------------------------
+******************************************************************************/
+#ifndef __EPD_2IN13G_H_
+#define __EPD_2IN13G_H_
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_2IN13G_WIDTH       122
+#define EPD_2IN13G_HEIGHT      250
+
+#define UWORD   unsigned int
+#define UBYTE   unsigned char
+#define UDOUBLE unsigned long
+// Color
+#define  BLACK   0x0
+#define  WHITE   0x1
+#define  YELLOW  0x2
+#define  RED     0x3
+#define  Source_BITS  128
+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 SetWindows(void);
+    void ReadBusy(void);
+    void TurnOnDisplay(void);
+    void Clear(UBYTE color);
+    void Display(const UBYTE *Image);
+    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 */
+

+ 60 - 0
Arduino/epd2in13g/epd2in13g.ino

@@ -0,0 +1,60 @@
+/**
+ *  @filename   :   epd2in36g-demo.ino
+ *  @brief      :   2.36inch e-Paper (G) display demo
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     2023-05-29
+ *
+ * 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 "EPD_2in13g.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(gImage_2in13g);
+  delay(2000);
+
+  Serial.print("Clear...\r\n");
+  epd.Clear(WHITE);
+  delay(2000);
+
+  Serial.print("Goto Sleep...\r\n");
+  epd.Sleep();
+}
+
+void loop() {
+
+}

+ 64 - 0
Arduino/epd2in13g/epdif.cpp

@@ -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(1000000, MSBFIRST, SPI_MODE0));
+    return 0;
+}

+ 51 - 0
Arduino/epd2in13g/epdif.h

@@ -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

+ 515 - 0
Arduino/epd2in13g/imagedata.cpp

@@ -0,0 +1,515 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     2022/7/22
+ *
+ * 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 124*250 
+const unsigned char gImage_2in13g[7750] PROGMEM= {
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,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,0x7F,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,0x7F,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,0x7F,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,
+0x7F,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,0x7F,
+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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0xD7,0xF5,0x55,
+0x55,0x55,0x55,0x55,0x75,0x75,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x55,0x75,0xFF,0x7F,0x55,0x55,
+0x55,0x55,0x55,0x75,0xF5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x55,0x57,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x79,0xDF,0xD7,0xD5,0x55,0x55,
+0x55,0x7F,0xF5,0x7D,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0xFD,0xD5,0xF5,0x55,0x55,0x55,0x55,
+0x7F,0xFD,0x7F,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
+0x57,0x55,0x7D,0xF5,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,
+0x5D,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
+0x55,0x7D,0x7D,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,0x5F,
+0xD7,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
+0x7D,0x5F,0x55,0x55,0x55,0x55,0xFF,0xFD,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7F,0x57,
+0x75,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,
+0x7D,0x55,0x55,0x55,0x55,0x5B,0x7D,0xDD,0xD5,0x55,0x55,0x55,0x5D,0x75,0xD7,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,0xF5,
+0x55,0x55,0x55,0x55,0x7F,0xFD,0xDF,0xD5,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5F,0xFF,0xD5,0x55,
+0x55,0x55,0x55,0x5F,0x7D,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x55,0x5F,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFD,0xDD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x7F,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xF5,0x5F,0x55,0x55,0x55,0x55,
+0x55,0xFF,0xFD,0xFD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x5F,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFD,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x55,0x55,0x57,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,
+0x55,0x55,0x55,0x55,0x55,0xF5,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x57,0xFD,0xFF,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x57,0xFD,0xD7,0x55,0x55,0x55,
+0x55,0x55,0x7D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,0x55,0x57,0x7D,0xD7,0x55,0x55,0x55,0x55,
+0x57,0x6D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
+0x57,0xD5,0xFD,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x57,
+0xF5,0xFD,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
+0x5F,0xF5,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x5D,
+0x7F,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
+0x55,0xDF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x55,0x5F,
+0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,
+0xFF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7F,0xFF,0xDF,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0xFF,0x55,0xD5,
+0x55,0x55,0x55,0x55,0xFF,0x7D,0xD7,0x55,0x55,0x55,0x55,0x5F,0xFF,0xDF,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xDF,0xFD,0xD5,0x55,
+0x55,0x55,0x55,0x7F,0x7D,0xFF,0x55,0x55,0x55,0x55,0x55,0x7D,0xDF,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x55,0xFD,0xFF,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,
+0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x57,0xD5,0x5F,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x7D,0x5F,0x55,0x55,
+0x55,0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0x5F,0x55,0x55,0x55,
+0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x50,
+0x15,0x55,0x55,0x75,0x50,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x05,0x55,0x40,0x55,0x55,0x57,0x55,0x55,0x55,0x54,0x15,
+0x55,0x55,0x75,0x50,0x15,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x54,0x05,0x55,
+0x55,0x75,0x50,0x05,0x55,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x00,0x15,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,
+0x75,0x50,0x01,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x10,0x05,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
+0x51,0x40,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x15,0x01,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
+0x50,0x15,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x15,0x40,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x54,
+0x00,0x01,0x55,0x7F,0xFF,0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,
+0x50,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,
+0x05,0x55,0x7F,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,
+0x05,0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x50,0x55,0x50,0x55,
+0x55,0x7F,0xFF,0xAF,0xFF,0xEE,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xAF,0xFF,0xEF,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x41,0x54,0x15,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xAF,0xFF,0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,
+0x57,0x55,0x45,0x50,0x05,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xAF,0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,0x57,
+0x55,0x41,0x54,0x01,0x05,0x55,0x55,0x75,0x50,0x15,0x55,0x55,0x55,0x7F,0xFF,0xAF,
+0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x00,0x05,0x55,0x57,0x55,
+0x41,0x50,0x40,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAF,
+0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x00,0x05,0x55,0x57,0x55,0x41,
+0x40,0x50,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAB,0xEF,
+0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x05,0x05,0x55,0x57,0x55,0x40,0x00,
+0x54,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAA,0xAE,0xAF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x50,0x01,0x55,
+0x05,0x55,0x55,0x75,0x55,0x55,0x54,0x05,0x55,0x7F,0xFF,0xAF,0xEA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x05,0x55,0x7F,0xFF,0xAB,0xFF,0xFA,0xBF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x01,0x55,0x7F,0xFF,0xAA,0xBF,0xEA,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
+0x75,0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xEA,0xBF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x55,0x55,0x55,0x55,0x75,
+0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x10,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x14,0x00,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
+0x41,0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x41,
+0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,0x75,0x54,0x15,0x55,0x41,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,
+0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x54,0x05,0x55,0x41,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,
+0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x50,0x15,0x05,0x41,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x01,0x41,0x55,0x7F,0xFF,
+0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,0x41,0x55,0x7F,0xFE,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x55,0x55,0x55,0x57,0x55,
+0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x10,0x01,0x55,0x7F,0xFF,0xEA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0x55,0x54,
+0x05,0x55,0x55,0x55,0x55,0x75,0x50,0x10,0x14,0x01,0x55,0x7F,0xFF,0xFF,0xAA,0xAA,
+0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x05,0x55,0x55,0x57,0x55,0x54,0x00,
+0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x15,0x01,0x55,0x7F,0xFF,0xFA,0xFF,0xFB,0xEB,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x05,0x55,0x55,0x57,0x55,0x54,0x00,0x05,
+0x55,0x55,0x55,0x75,0x55,0x00,0x55,0x41,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x41,0x55,0x55,0x57,0x55,0x54,0x14,0x00,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xBB,0xEB,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x55,0x50,0x40,0x55,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xAB,0xEB,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x55,0x50,0x50,0x15,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFB,0xEA,0xEB,0xBF,0xFF,0xFF,0x55,
+0x5D,0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFA,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,
+0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,
+0x50,0x50,0x54,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,
+0x50,0x50,0x55,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x00,
+0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x00,0x01,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x05,0x55,
+0x55,0x57,0x55,0x50,0x05,0x51,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,
+0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x15,0x55,0x55,
+0x57,0x55,0x50,0x01,0x00,0x15,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,0xFF,
+0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
+0x55,0x41,0x40,0x00,0x05,0x55,0x55,0x75,0x41,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFA,
+0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x41,0x50,0x15,0x05,0x55,0x55,0x75,0x40,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,
+0x50,0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,
+0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,0x14,
+0x05,0x55,0x55,0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,
+0x55,0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x01,0x00,0x15,0x55,
+0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x15,0x55,0x55,0x55,0x55,
+0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xEB,0xFB,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xEA,0xEA,0xFA,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x40,0x05,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
+0x41,0x41,0x00,0x55,0x7F,0xFF,0xFA,0xEA,0xAB,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x00,0x00,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x40,
+0x01,0x41,0x55,0x7F,0xFF,0xFA,0xEF,0xAB,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x05,
+0x00,0x05,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x40,0x01,
+0x41,0x55,0x7F,0xFF,0xEA,0xFA,0xEA,0xBF,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,
+0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,
+0x55,0x7F,0xFF,0xAA,0xBF,0xFE,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x40,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,
+0x7F,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x54,0x15,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,0x55,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xAA,0xAA,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x01,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,
+0xAF,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x01,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xEA,0xAA,
+0xBE,0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x14,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,
+0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x04,0x15,0x55,0x7F,0xFF,0xFF,0xAF,0xBE,0xEA,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x54,0x04,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,0xEB,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x40,0x14,0x15,0x55,0x7F,0xFF,0xEF,0xAF,0xBE,0xEB,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x50,0x04,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x41,0x54,0x15,0x55,0x7F,0xFF,0xAF,0xAF,0xBE,0xAB,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x50,0x04,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x41,0x50,0x54,0x15,0x55,0x7F,0xFF,0xAA,0xAA,0xBE,0xAB,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x15,0x45,0x55,0x01,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x15,0x45,0x41,0x45,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
+0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x05,0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,
+0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,
+0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
+0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x45,
+0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x00,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x05,0x44,0x00,
+0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x15,0x44,0x10,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x44,0x14,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,
+0xFF,0xFA,0xFF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x04,0x14,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFE,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x04,0x14,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,
+0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x54,0x01,0x05,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xEB,0xFF,0xEA,
+0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xEB,0xFF,0xEF,0xEA,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x14,0x11,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x14,0x44,0x40,0x55,0x7F,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x14,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x14,0x14,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x04,0x44,0x50,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x04,0x15,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,
+0x04,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x04,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x04,
+0x00,0x00,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,
+0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,
+0x50,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x10,
+0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x00,0x44,0x00,
+0x55,0x7F,0xFF,0xAF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x04,0x00,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x40,0x55,
+0x7F,0xFF,0xAF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x05,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,
+0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x04,0x14,0x14,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x04,0x14,0x14,0x15,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x50,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x14,0x15,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x54,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x05,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x40,0x10,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x50,0x00,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
+0x55,0x40,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
+0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x00,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x00,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x51,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x50,0x01,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x40,0x41,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x41,0x50,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x00,0x15,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x05,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x50,0x01,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x05,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x54,0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x40,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x54,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x54,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x45,0x04,
+0x14,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x01,0x04,0x14,
+0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x00,
+0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x00,0x10,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x45,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x10,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x55,0x45,0x15,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x10,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x10,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x50,0x50,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x50,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};

+ 30 - 0
Arduino/epd2in13g/imagedata.h

@@ -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 gImage_2in13g[];
+
+/* FILE END */
+
+

+ 3 - 0
RaspberryPi_JetsonNano/c/Makefile

@@ -102,6 +102,9 @@ else ifeq ($(EPD), epd2in13bV4)
 else ifeq ($(EPD), epd2in13d)
 	OBJ_C_EPD = ${DIR_EPD}/EPD_2in13d.c
 	OBJ_C_Examples = ${DIR_Examples}/EPD_2in13d_test.c
+else ifeq ($(EPD), epd2in13g)
+	OBJ_C_EPD = ${DIR_EPD}/EPD_2in13g.c
+	OBJ_C_Examples = ${DIR_Examples}/EPD_2in13g_test.c
 else ifeq ($(EPD), epd3in52)
 	OBJ_C_EPD = ${DIR_EPD}/EPD_3in52.c
 	OBJ_C_Examples = ${DIR_Examples}/EPD_3in52_test.c

+ 162 - 0
RaspberryPi_JetsonNano/c/examples/EPD_2in13g_test.c

@@ -0,0 +1,162 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g_test.c
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-29
+* | 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_2in13g.h"
+#include "time.h"
+
+int EPD_2in13g_test(void)
+{
+    printf("EPD_2IN13G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_2IN13G_Init();
+
+	struct timespec start={0,0}, finish={0,0}; 
+    clock_gettime(CLOCK_REALTIME, &start);
+    EPD_2IN13G_Clear(EPD_2IN13G_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;
+    UWORD Imagesize = ((EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1)) * EPD_2IN13G_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_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 0, EPD_2IN13G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show bmp
+    printf("show BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp_RGB_4Color("./pic/2in13g.bmp", 0, 0);
+    EPD_2IN13G_Display(BlackImage);
+    DEV_Delay_ms(2000);
+#endif
+
+#if 1   // Drawing on the image
+    Paint_NewImage(BlackImage, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 90, EPD_2IN13G_WHITE);
+    Paint_SetScale(4);
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(EPD_2IN13G_WHITE);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, EPD_2IN13G_RED, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, EPD_2IN13G_YELLOW, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, EPD_2IN13G_BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(0, 0, "Red,yellow,white,black", &Font16, EPD_2IN13G_RED, EPD_2IN13G_YELLOW);
+    Paint_DrawString_EN(0, 16, "Four color e-Paper", &Font12, EPD_2IN13G_YELLOW, EPD_2IN13G_BLACK);
+    Paint_DrawString_CN(120, 28, "΢ѩµç×Ó", &Font24CN, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
+    Paint_DrawNum(0, 28, 123456, &Font12, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
+
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    Paint_NewImage(BlackImage, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 0, EPD_2IN13G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // Drawing on the image
+    //1.Select Image
+    printf("SelectImage:BlackImage\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(EPD_2IN13G_WHITE);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT/4, EPD_2IN13G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, EPD_2IN13G_HEIGHT/4, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT/2, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, EPD_2IN13G_HEIGHT/2, EPD_2IN13G_WIDTH, 3*EPD_2IN13G_HEIGHT/4, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_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_2IN13G_WHITE);
+
+    int hNumber, hWidth, vNumber, vWidth;
+    hNumber = 20;
+	hWidth = EPD_2IN13G_HEIGHT/hNumber;
+    vNumber = 8;
+	vWidth = EPD_2IN13G_WIDTH/vNumber;
+
+    // 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_2IN13G_WIDTH, hWidth*(1+i), EPD_2IN13G_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_2IN13G_HEIGHT, EPD_2IN13G_YELLOW + (i/2%2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
+        }
+	}
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_2IN13G_Clear(EPD_2IN13G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_2IN13G_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;
+}
+

+ 1 - 0
RaspberryPi_JetsonNano/c/examples/EPD_Test.h

@@ -75,6 +75,7 @@ int EPD_2in13bc_test(void);
 int EPD_2in13b_V3_test(void);
 int EPD_2in13b_V4_test(void);
 int EPD_2in13d_test(void);
+int EPD_2in13g_test(void);
 
 int EPD_3in52_test(void);
 

+ 3 - 0
RaspberryPi_JetsonNano/c/examples/main.c

@@ -111,6 +111,9 @@ int main(void)
     
 #elif epd2in13d
     EPD_2in13d_test();
+
+#elif epd2in13g
+    EPD_2in13g_test();
     
 #elif epd3in52
     EPD_3in52_test();

+ 10 - 0
RaspberryPi_JetsonNano/c/lib/GUI/GUI_BMPfile.c

@@ -422,6 +422,16 @@ UBYTE GUI_ReadBmp_RGB_4Color(const char *path, UWORD Xstart, UWORD Ystart)
 				Image[x+(y* bmpInfoHeader.biWidth )] =  3;//Red
 			}
         }
+        if(bmpInfoHeader.biWidth % 4 != 0)
+        {
+            for (UWORD i = 0; i < (bmpInfoHeader.biWidth % 4); i++)
+            {
+                if(fread((char *)Rdata, 1, 1, fp) != 1) {
+                perror("get bmpdata:\r\n");
+                break;
+                }
+            }
+        }
     }
     fclose(fp);
    

+ 237 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in13g.c

@@ -0,0 +1,237 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.c
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-29
+* | 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_2in13g.h"
+#include "Debug.h" 
+
+UWORD Source_BITS = EPD_2IN13G_WIDTH;
+UWORD Gate_BITS = EPD_2IN13G_HEIGHT;
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_2IN13G_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_2IN13G_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_2IN13G_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 HIGH
+parameter:
+******************************************************************************/
+void EPD_2IN13G_ReadBusy(void)
+{
+    Debug("e-Paper busy\r\n");
+    DEV_Delay_ms(100);
+    while(DEV_Digital_Read(EPD_BUSY_PIN) != 1) {      //HIGH: idle, LOW: busy
+        DEV_Delay_ms(100);
+    }
+    Debug("e-Paper busy release\r\n");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+static void EPD_2IN13G_TurnOnDisplay(void)
+{
+
+    EPD_2IN13G_SendCommand(0x12); // DISPLAY_REFRESH
+    EPD_2IN13G_SendData(0x00);
+    EPD_2IN13G_ReadBusy();
+
+}
+
+/******************************************************************************
+function :	Setting the display window
+parameter:
+******************************************************************************/
+static void EPD_2IN9_V2_SetWindows(void)
+{
+    if(EPD_2IN13G_WIDTH < 128)
+        Source_BITS = 128;
+
+    EPD_2IN13G_SendCommand(0x61); //TRES
+    EPD_2IN13G_SendData(Source_BITS/256);		// EPD_2IN13G_WIDTH_H
+    EPD_2IN13G_SendData(Source_BITS%256);		// EPD_2IN13G_WIDTH_L
+    EPD_2IN13G_SendData(Gate_BITS/256);			// EPD_2IN13G_HEIGHT_H
+    EPD_2IN13G_SendData(Gate_BITS%256); 		// EPD_2IN13G_HEIGHT_L	
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Init(void)
+{
+    EPD_2IN13G_Reset();
+
+    EPD_2IN13G_ReadBusy();
+    EPD_2IN13G_SendCommand(0x4D);
+    EPD_2IN13G_SendData(0x78);
+
+    EPD_2IN13G_SendCommand(0x00);	//PSR
+    EPD_2IN13G_SendData(0x0F);
+    EPD_2IN13G_SendData(0x29);
+
+    EPD_2IN13G_SendCommand(0x01);	//PWRR
+    EPD_2IN13G_SendData(0x07);
+    EPD_2IN13G_SendData(0x00);
+
+    EPD_2IN13G_SendCommand(0x03);	//POFS
+    EPD_2IN13G_SendData(0x10);
+    EPD_2IN13G_SendData(0x54);
+    EPD_2IN13G_SendData(0x44);
+
+    EPD_2IN13G_SendCommand(0x06);	//BTST_P
+    EPD_2IN13G_SendData(0x05);
+    EPD_2IN13G_SendData(0x00);
+    EPD_2IN13G_SendData(0x3F);
+    EPD_2IN13G_SendData(0x0A);
+    EPD_2IN13G_SendData(0x25);
+    EPD_2IN13G_SendData(0x12);
+    EPD_2IN13G_SendData(0x1A); 
+
+    EPD_2IN13G_SendCommand(0x50);	//CDI
+    EPD_2IN13G_SendData(0x37);
+
+    EPD_2IN13G_SendCommand(0x60);	//TCON
+    EPD_2IN13G_SendData(0x02);
+    EPD_2IN13G_SendData(0x02);
+
+    EPD_2IN9_V2_SetWindows();  // Setting the display window
+
+    EPD_2IN13G_SendCommand(0xE7);
+    EPD_2IN13G_SendData(0x1C);
+
+    EPD_2IN13G_SendCommand(0xE3);	
+    EPD_2IN13G_SendData(0x22);
+
+    EPD_2IN13G_SendCommand(0xB4);
+    EPD_2IN13G_SendData(0xD0);
+    EPD_2IN13G_SendCommand(0xB5);
+    EPD_2IN13G_SendData(0x03);
+
+    EPD_2IN13G_SendCommand(0xE9);
+    EPD_2IN13G_SendData(0x01); 
+
+    EPD_2IN13G_SendCommand(0x30);
+    EPD_2IN13G_SendData(0x08);  
+
+    EPD_2IN13G_SendCommand(0x04);
+    EPD_2IN13G_ReadBusy(); 
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = Source_BITS / 4 ;
+    Height = EPD_2IN13G_HEIGHT;
+
+    EPD_2IN13G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_2IN13G_SendData((color << 6) | (color << 4) | (color << 2) | color);
+        }
+    }
+
+    EPD_2IN13G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1);
+    Height = EPD_2IN13G_HEIGHT;
+
+    EPD_2IN13G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < (Source_BITS / 4); i++) {
+            if(i < 31 ) EPD_2IN13G_SendData(Image[i + j * Width]);
+            else EPD_2IN13G_SendData(0x00);
+        }
+    }
+
+    EPD_2IN13G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Sleep(void)
+{
+    EPD_2IN13G_SendCommand(0x02); //power off
+    EPD_2IN13G_ReadBusy();       //waiting for the electronic paper IC to release the idle signal
+    DEV_Delay_ms(100);           //!!!The delay here is necessary,100mS at least!!! 
+    
+    EPD_2IN13G_SendCommand(0x07);  //deep sleep
+    EPD_2IN13G_SendData(0XA5);
+}

+ 32 - 0
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in13g.h

@@ -0,0 +1,32 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.h
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-29
+* | Info        :
+* -----------------------------------------------------------------------------
+******************************************************************************/
+#ifndef __EPD_2IN13G_H_
+#define __EPD_2IN13G_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_2IN13G_WIDTH       122
+#define EPD_2IN13G_HEIGHT      250
+
+// Color
+#define  EPD_2IN13G_BLACK   0x0
+#define  EPD_2IN13G_WHITE   0x1
+#define  EPD_2IN13G_YELLOW  0x2
+#define  EPD_2IN13G_RED     0x3
+
+void EPD_2IN13G_Init(void);
+void EPD_2IN13G_Clear(UBYTE color);
+void EPD_2IN13G_Display(UBYTE *Image);
+void EPD_2IN13G_Sleep(void);
+
+#endif

BIN
RaspberryPi_JetsonNano/c/pic/2in13g.bmp


+ 68 - 0
RaspberryPi_JetsonNano/python/examples/epd_2in13g_test.py

@@ -0,0 +1,68 @@
+#!/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 epd2in13g
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd2in13g Demo")
+
+    epd = epd2in13g.EPD()   
+    logging.info("init and Clear")
+    epd.init()
+    epd.Clear()
+    font15 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 15)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    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.height, epd.width), epd.WHITE)  
+    draw = ImageDraw.Draw(Himage)
+    draw.rectangle([(0,0),(50,50)],outline = epd.BLACK)
+    draw.rectangle([(55,0),(100,50)],fill = epd.RED)
+    draw.line([(0,0),(50,50)], fill = epd.YELLOW,width = 1)
+    draw.line([(0,50),(50,0)], fill = epd.YELLOW,width = 1)
+    draw.pieslice((55, 60, 95, 100), 90, 180, outline = epd.RED)
+    draw.pieslice((55, 60, 95, 100), 270, 360, fill = epd.BLACK)
+    draw.chord((10, 60, 50, 100), 0, 360, fill = epd.YELLOW)
+    draw.ellipse((55, 60, 95, 100), outline = epd.RED)
+    draw.polygon([(110,0),(110,50),(150,25)],outline = epd.BLACK)
+    draw.polygon([(190,0),(190,50),(150,25)],fill = epd.BLACK)
+    draw.text((120, 60), 'e-Paper demo', font = font15, fill = epd.YELLOW)
+    draw.text((110, 90), u'微雪电子', font = font24, 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, '2in13g.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:")
+    epd2in13g.epdconfig.module_exit()
+    exit()

BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc


+ 242 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.py

@@ -0,0 +1,242 @@
+# *****************************************************************************
+# * | File        :	  epd2in13g.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1.0
+# * | Date        :   2023-05-29
+# # | 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       = 122
+EPD_HEIGHT      = 250
+
+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
+        self.Gate_BITS = EPD_HEIGHT
+        if self.width < 128:
+            self.Source_BITS = 128
+        else:
+            self.Source_BITS = self.width
+
+        
+    # 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 ReadBusy(self):
+        logger.debug("e-Paper busy H")
+        epdconfig.delay_ms(100)
+        while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy release")
+        
+    def SetWindow(self):
+        self.send_command(0x61) # SET_RAM_X_ADDRESS_START_END_POSITION
+        # x point must be the multiple of 8 or the last 3 bits will be ignored
+        self.send_data(self.Source_BITS/256)
+        self.send_data(self.Source_BITS%256)
+        self.send_data(self.Gate_BITS/256)
+        self.send_data(self.Gate_BITS%256)
+
+    def TurnOnDisplay(self):
+        self.send_command(0x12) # DISPLAY_REFRESH
+        self.send_data(0X00)
+        self.ReadBusy()
+        
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+
+        self.reset()
+        
+        self.ReadBusy()
+        self.send_command(0x4D)
+        self.send_data(0x78)
+
+        self.send_command(0x00)
+        self.send_data(0x0F)
+        self.send_data(0x29)
+
+        self.send_command(0x01)
+        self.send_data(0x07)
+        self.send_data(0x00)
+
+        self.send_command(0x03)
+        self.send_data(0x10)
+        self.send_data(0x54)
+        self.send_data(0x44)
+
+        self.send_command(0x06)
+        self.send_data(0x05)
+        self.send_data(0x00)
+        self.send_data(0x3F)
+        self.send_data(0x0A)
+        self.send_data(0x25)
+        self.send_data(0x12)
+        self.send_data(0x1A)
+
+        self.send_command(0x50)
+        self.send_data(0x37)
+
+        self.send_command(0x60)
+        self.send_data(0x02)
+        self.send_data(0x02)
+        
+        self.SetWindow()
+        
+        self.send_command(0xE7)
+        self.send_data(0x1C)
+
+        self.send_command(0xE3)
+        self.send_data(0x22)
+
+        self.send_command(0xB4)
+        self.send_data(0xD0)
+        self.send_command(0xB5)
+        self.send_data(0x03)
+
+        self.send_command(0xE9)
+        self.send_data(0x01)
+        
+        self.send_command(0x30)
+        self.send_data(0x08)
+        
+        self.send_command(0x04)
+        self.ReadBusy()
+        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
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height 
+        buf = [0x00] * int(Width * Height)
+        idx = 0
+        for j in range(0, Height):
+            for i in range(0, Width):
+                if i == Width -1:
+                    buf[i + j * Width] = (buf_4color[idx] << 6) + (buf_4color[idx+1] << 4)
+                    idx = idx + 2
+                else:
+                    buf[i + j * Width] = (buf_4color[idx] << 6) + (buf_4color[idx+1] << 4) + (buf_4color[idx+2] << 2) + buf_4color[idx+3]
+                    idx = idx + 4
+        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(0x10)
+        for j in range(0, Height):
+            for i in range(0, self.Source_BITS//4):
+                if i < 31 :
+                    self.send_data(image[i + j * Width])
+                else :
+                    self.send_data(0x00)
+                    
+        self.TurnOnDisplay()
+        
+    def Clear(self, color=0x55):
+        Width = self.Source_BITS//4
+        Height = self.height
+
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                    self.send_data(color)
+        self.TurnOnDisplay()
+
+    def sleep(self):
+        self.send_command(0x02) # POWER_OFF
+        self.ReadBusy()
+        epdconfig.delay_ms(100)
+        
+        self.send_command(0x07) # DEEP_SLEEP
+        self.send_data(0XA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc


BIN
RaspberryPi_JetsonNano/python/pic/2in13g.bmp


+ 97 - 0
STM32/STM32-F103ZET6/MDK-ARM/DebugConfig/EPD_2in13g_test_STM32F103ZE.dbgconf

@@ -0,0 +1,97 @@
+// <<< Use Configuration Wizard in Context Menu >>>
+// <h> Debug MCU Configuration
+//   <o0.0>    DBG_SLEEP
+// <i> Debug Sleep Mode
+// <i> 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled
+// <i> 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK
+//   <o0.1>    DBG_STOP
+// <i> Debug Stop Mode
+// <i> 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks
+// <i> 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active
+//   <o0.2>    DBG_STANDBY
+// <i> Debug Standby Mode
+// <i> 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered.
+// <i> 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active
+//   <o0.8>    DBG_IWDG_STOP
+// <i> Debug independent watchdog stopped when core is halted
+// <i> 0: The watchdog counter clock continues even if the core is halted
+// <i> 1: The watchdog counter clock is stopped when the core is halted
+//   <o0.9>    DBG_WWDG_STOP
+// <i> Debug window watchdog stopped when core is halted
+// <i> 0: The window watchdog counter clock continues even if the core is halted
+// <i> 1: The window watchdog counter clock is stopped when the core is halted
+//   <o0.10>   DBG_TIM1_STOP
+// <i> Timer 1 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.11>   DBG_TIM2_STOP
+// <i> Timer 2 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.12>   DBG_TIM3_STOP
+// <i> Timer 3 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.13>   DBG_TIM4_STOP
+// <i> Timer 4 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.14>   DBG_CAN1_STOP
+// <i> Debug CAN1 stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: CAN1 receive registers are frozen
+//   <o0.15>   DBG_I2C1_SMBUS_TIMEOUT
+// <i> I2C1 SMBUS timeout mode stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: The SMBUS timeout is frozen
+//   <o0.16>   DBG_I2C2_SMBUS_TIMEOUT
+// <i> I2C2 SMBUS timeout mode stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: The SMBUS timeout is frozen
+//   <o0.17>   DBG_TIM8_STOP
+// <i> Timer 8 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.18>   DBG_TIM5_STOP
+// <i> Timer 5 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.19>   DBG_TIM6_STOP
+// <i> Timer 6 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.20>   DBG_TIM7_STOP
+// <i> Timer 7 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.21>   DBG_CAN2_STOP
+// <i> Debug CAN2 stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: CAN2 receive registers are frozen
+//   <o0.25>   DBG_TIM12_STOP
+// <i> Timer 12 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.26>   DBG_TIM13_STOP
+// <i> Timer 13 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.27>   DBG_TIM14_STOP
+// <i> Timer 14 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.28>   DBG_TIM9_STOP
+// <i> Timer 9 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.29>   DBG_TIM10_STOP
+// <i> Timer 10 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.30>   DBG_TIM11_STOP
+// <i> Timer 11 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+// </h>
+DbgMCU_CR = 0x00000007;
+// <<< end of configuration section >>>

+ 20 - 0
STM32/STM32-F103ZET6/MDK-ARM/RTE/_EPD_2in13g_test/RTE_Components.h

@@ -0,0 +1,20 @@
+
+/*
+ * Auto generated Run-Time-Environment Component Configuration File
+ *      *** Do not modify ! ***
+ *
+ * Project: 'epd-demo' 
+ * Target:  'EPD_2in13g_test' 
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File: 
+ */
+#define CMSIS_device_header "stm32f10x.h"
+
+
+#endif /* RTE_COMPONENTS_H */

Разница между файлами не показана из-за своего большого размера
+ 2 - 3
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian


Разница между файлами не показана из-за своего большого размера
+ 294 - 46
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx


Разница между файлами не показана из-за своего большого размера
+ 290 - 26
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx


+ 94 - 0
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm

@@ -0,0 +1,94 @@
+<html>
+<body>
+<pre>
+<h1>µVision Build Log</h1>
+<h2>Tool Versions:</h2>
+IDE-Version: ¦ÌVision V5.26.2.0
+Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
+License Information:  ,  , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
+ 
+Tool Versions:
+Toolchain:       MDK-ARM Plus  Version: 5.26.2.0
+Toolchain Path:  D:\KEIL\azwz\ARM\ARMCC\Bin
+C Compiler:      Armcc.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)
+Library Manager: ArmAr.exe V5.06 update 6 (build 750)
+Hex Converter:   FromElf.exe V5.06 update 6 (build 750)
+CPU DLL:         SARMCM3.DLL V5.26.2.0
+Dialog DLL:      DCM.DLL V1.17.2.0
+Target DLL:      STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL:      TCM.DLL V1.36.1.0
+ 
+<h2>Project:</h2>
+E:\ÏîÄ¿\e-Paper\Code\e-Paper\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
+Project File Date:  05/29/2023
+
+<h2>Output:</h2>
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
+Build target 'EPD_2in66b_test'
+assembling startup_stm32f103xe.s...
+compiling stm32f1xx_it.c...
+compiling gpio.c...
+compiling usart.c...
+compiling spi.c...
+compiling main.c...
+compiling ImageData.c...
+compiling DEV_Config.c...
+compiling EPD_2in66b.c...
+compiling stm32f1xx_hal_msp.c...
+compiling EPD_2in66b_test.c...
+compiling font8.c...
+compiling font12.c...
+compiling font12CN.c...
+compiling font16.c...
+compiling font20.c...
+compiling font24.c...
+compiling font24CN.c...
+compiling GUI_Paint.c...
+compiling system_stm32f1xx.c...
+compiling stm32f1xx_hal_gpio_ex.c...
+compiling stm32f1xx_hal.c...
+compiling stm32f1xx_hal_rcc.c...
+compiling stm32f1xx_hal_spi.c...
+compiling stm32f1xx_hal_gpio.c...
+compiling stm32f1xx_hal_rcc_ex.c...
+compiling stm32f1xx_hal_pwr.c...
+compiling stm32f1xx_hal_cortex.c...
+compiling stm32f1xx_hal_dma.c...
+compiling stm32f1xx_hal_tim.c...
+compiling stm32f1xx_hal_flash.c...
+compiling stm32f1xx_hal_flash_ex.c...
+compiling stm32f1xx_hal_tim_ex.c...
+compiling stm32f1xx_hal_exti.c...
+compiling stm32f1xx_hal_uart.c...
+linking...
+Program Size: Code=23508 RO-data=22012 RW-data=68 ZI-data=53428  
+FromELF: creating hex file...
+"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).
+
+<h2>Software Packages used:</h2>
+
+Package Vendor: ARM
+                http://www.keil.com/pack/ARM.CMSIS.5.9.0.pack
+                ARM.CMSIS.5.9.0
+                CMSIS (Common Microcontroller Software Interface Standard)
+   * Component: CORE Version: 5.6.0
+
+Package Vendor: Keil
+                http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
+                Keil.STM32F1xx_DFP.2.1.0
+                STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
+
+<h2>Collection of Component include folders:</h2>
+  .\RTE\_EPD_2in66b_test
+  D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include
+  D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
+
+<h2>Collection of Component Files used:</h2>
+
+   * Component: ARM::CMSIS:CORE:5.6.0
+Build Time Elapsed:  00:00:13
+</pre>
+</body>
+</html>

+ 1901 - 0
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm

@@ -0,0 +1,1901 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html><head>
+<title>Static Call Graph - [epd-demo\epd-demo.axf]</title></head>
+<body><HR>
+<H1>Static Call Graph for image epd-demo\epd-demo.axf</H1><HR>
+<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Wed Jun 07 11:50:35 2023
+<BR><P>
+<H3>Maximum Stack Usage =        744 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
+Call chain for Maximum Stack Depth:</H3>
+main &rArr; EPD_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+<P>
+<H3>
+Mutually Recursive functions
+</H3> <LI><a href="#[1c]">ADC1_2_IRQHandler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[1c]">ADC1_2_IRQHandler</a><BR>
+ <LI><a href="#[6a]">Error_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[6a]">Error_Handler</a><BR>
+ <LI><a href="#[3]">MemManage_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[3]">MemManage_Handler</a><BR>
+ <LI><a href="#[4]">BusFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[4]">BusFault_Handler</a><BR>
+ <LI><a href="#[5]">UsageFault_Handler</a>&nbsp;&nbsp;&nbsp;&rArr;&nbsp;&nbsp;&nbsp;<a href="#[5]">UsageFault_Handler</a><BR>
+</UL>
+<P>
+<H3>
+Function Pointers
+</H3><UL>
+ <LI><a href="#[1c]">ADC1_2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[39]">ADC3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[4]">BusFault_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1f]">CAN1_RX1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[20]">CAN1_SCE_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[15]">DMA1_Channel1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[16]">DMA1_Channel2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[17]">DMA1_Channel3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[18]">DMA1_Channel4_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[19]">DMA1_Channel5_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1a]">DMA1_Channel6_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1b]">DMA1_Channel7_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[42]">DMA2_Channel1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[43]">DMA2_Channel2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[44]">DMA2_Channel3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[45]">DMA2_Channel4_5_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[7]">DebugMon_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[10]">EXTI0_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[32]">EXTI15_10_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[11]">EXTI1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[12]">EXTI2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[13]">EXTI3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[14]">EXTI4_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[21]">EXTI9_5_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[e]">FLASH_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3a]">FSMC_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2]">HardFault_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2a]">I2C1_ER_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[29]">I2C1_EV_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2c]">I2C2_ER_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2b]">I2C2_EV_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3]">MemManage_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1]">NMI_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[b]">PVD_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[8]">PendSV_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[f]">RCC_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[33]">RTC_Alarm_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[d]">RTC_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[0]">Reset_Handler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3b]">SDIO_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2d]">SPI1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[2e]">SPI2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3d]">SPI3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[4b]">SPI_2linesRxISR_16BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[4d]">SPI_2linesRxISR_8BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[4c]">SPI_2linesTxISR_16BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[4e]">SPI_2linesTxISR_8BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[59]">SPI_AbortRx_ISR</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[58]">SPI_AbortTx_ISR</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[5c]">SPI_DMAAbortOnError</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[53]">SPI_DMAError</a> from stm32f1xx_hal_spi.o(.text) referenced 2 times from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[56]">SPI_DMAHalfReceiveCplt</a> from stm32f1xx_hal_spi.o(.text) referenced 2 times from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[51]">SPI_DMAHalfTransmitCplt</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[54]">SPI_DMAHalfTransmitReceiveCplt</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[57]">SPI_DMAReceiveCplt</a> from stm32f1xx_hal_spi.o(.text) referenced 2 times from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[5b]">SPI_DMARxAbortCallback</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[52]">SPI_DMATransmitCplt</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[55]">SPI_DMATransmitReceiveCplt</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[5a]">SPI_DMATxAbortCallback</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[4f]">SPI_RxISR_16BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[50]">SPI_RxISR_8BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[49]">SPI_TxISR_16BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[4a]">SPI_TxISR_8BIT</a> from stm32f1xx_hal_spi.o(.text) referenced from stm32f1xx_hal_spi.o(.text)
+ <LI><a href="#[6]">SVC_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[9]">SysTick_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[47]">SystemInit</a> from system_stm32f1xx.o(.text) referenced from startup_stm32f103xe.o(.text)
+ <LI><a href="#[c]">TAMPER_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[22]">TIM1_BRK_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[25]">TIM1_CC_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[24]">TIM1_TRG_COM_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[23]">TIM1_UP_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[26]">TIM2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[27]">TIM3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[28]">TIM4_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3c]">TIM5_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[40]">TIM6_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[41]">TIM7_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[35]">TIM8_BRK_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[38]">TIM8_CC_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[37]">TIM8_TRG_COM_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[36]">TIM8_UP_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3e]">UART4_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[3f]">UART5_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[66]">UART_DMAAbortOnError</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[5f]">UART_DMAError</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[60]">UART_DMAReceiveCplt</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[63]">UART_DMARxAbortCallback</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[61]">UART_DMARxHalfCplt</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[65]">UART_DMARxOnlyAbortCallback</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[5d]">UART_DMATransmitCplt</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[62]">UART_DMATxAbortCallback</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[5e]">UART_DMATxHalfCplt</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[64]">UART_DMATxOnlyAbortCallback</a> from stm32f1xx_hal_uart.o(.text) referenced from stm32f1xx_hal_uart.o(.text)
+ <LI><a href="#[2f]">USART1_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[30]">USART2_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[31]">USART3_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[34]">USBWakeUp_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1d]">USB_HP_CAN1_TX_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[1e]">USB_LP_CAN1_RX0_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[5]">UsageFault_Handler</a> from stm32f1xx_it.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[a]">WWDG_IRQHandler</a> from startup_stm32f103xe.o(.text) referenced from startup_stm32f103xe.o(RESET)
+ <LI><a href="#[48]">__main</a> from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f103xe.o(.text)
+ <LI><a href="#[67]">fputc</a> from usart.o(.text) referenced from printf3.o(i.__0printf$3)
+ <LI><a href="#[46]">main</a> from main.o(.text) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
+</UL>
+<P>
+<H3>
+Global Symbols
+</H3>
+<P><STRONG><a name="[48]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(.text)
+</UL>
+<P><STRONG><a name="[10b]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
+
+<P><STRONG><a name="[68]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+<BR><BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
+</UL>
+
+<P><STRONG><a name="[107]"></a>__main_after_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+<BR><BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
+</UL>
+
+<P><STRONG><a name="[10c]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
+
+<P><STRONG><a name="[10d]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
+
+<P><STRONG><a name="[10e]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
+
+<P><STRONG><a name="[10f]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
+
+<P><STRONG><a name="[110]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
+
+<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1c]"></a>ADC1_2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_2_IRQHandler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[1c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ADC1_2_IRQHandler
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[39]"></a>ADC3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1f]"></a>CAN1_RX1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[20]"></a>CAN1_SCE_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[15]"></a>DMA1_Channel1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[16]"></a>DMA1_Channel2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[17]"></a>DMA1_Channel3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[18]"></a>DMA1_Channel4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[19]"></a>DMA1_Channel5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1a]"></a>DMA1_Channel6_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1b]"></a>DMA1_Channel7_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[42]"></a>DMA2_Channel1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[43]"></a>DMA2_Channel2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[44]"></a>DMA2_Channel3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[45]"></a>DMA2_Channel4_5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[10]"></a>EXTI0_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[32]"></a>EXTI15_10_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[11]"></a>EXTI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[12]"></a>EXTI2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[13]"></a>EXTI3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[14]"></a>EXTI4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[21]"></a>EXTI9_5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[e]"></a>FLASH_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3a]"></a>FSMC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2a]"></a>I2C1_ER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[29]"></a>I2C1_EV_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2c]"></a>I2C2_ER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2b]"></a>I2C2_EV_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[b]"></a>PVD_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[f]"></a>RCC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[33]"></a>RTC_Alarm_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[d]"></a>RTC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3b]"></a>SDIO_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2d]"></a>SPI1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2e]"></a>SPI2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3d]"></a>SPI3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[c]"></a>TAMPER_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[22]"></a>TIM1_BRK_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[25]"></a>TIM1_CC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[24]"></a>TIM1_TRG_COM_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[23]"></a>TIM1_UP_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[26]"></a>TIM2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[27]"></a>TIM3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3c]"></a>TIM5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[40]"></a>TIM6_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[41]"></a>TIM7_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[35]"></a>TIM8_BRK_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[38]"></a>TIM8_CC_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[37]"></a>TIM8_TRG_COM_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[36]"></a>TIM8_UP_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3e]"></a>UART4_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3f]"></a>UART5_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2f]"></a>USART1_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[30]"></a>USART2_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[31]"></a>USART3_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[34]"></a>USBWakeUp_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1d]"></a>USB_HP_CAN1_TX_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[1e]"></a>USB_LP_CAN1_RX0_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[a]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[6a]"></a>Error_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 24 + In Cycle
+<LI>Call Chain = Error_Handler &rArr;  Error_Handler (Cycle)
+</UL>
+<BR>[Calls]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<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="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
+<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+</UL>
+
+<P><STRONG><a name="[6c]"></a>SystemClock_Config</STRONG> (Thumb, 88 bytes, Stack size 72 bytes, main.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_InitTick &rArr; HAL_NVIC_SetPriority
+</UL>
+<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
+<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
+<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<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 = 744<LI>Call Chain = main &rArr; EPD_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<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="#[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="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
+</UL>
+<P><STRONG><a name="[71]"></a>MX_GPIO_Init</STRONG> (Thumb, 86 bytes, Stack size 32 bytes, gpio.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = MX_GPIO_Init &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
+<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[73]"></a>MX_SPI1_Init</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = MX_SPI1_Init &rArr; HAL_SPI_Init &rArr; HAL_SPI_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init
+<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[79]"></a>HAL_SPI_MspInit</STRONG> (Thumb, 80 bytes, Stack size 24 bytes, spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = HAL_SPI_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
+</UL>
+<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init
+</UL>
+
+<P><STRONG><a name="[7a]"></a>HAL_SPI_MspDeInit</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_DeInit
+</UL>
+<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_DeInit
+</UL>
+
+<P><STRONG><a name="[72]"></a>MX_USART1_UART_Init</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, usart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = MX_USART1_UART_Init &rArr; HAL_UART_Init &rArr; HAL_UART_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
+<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[7d]"></a>HAL_UART_MspInit</STRONG> (Thumb, 100 bytes, Stack size 32 bytes, usart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = HAL_UART_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
+</UL>
+<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
+<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MultiProcessor_Init
+<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_LIN_Init
+<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_HalfDuplex_Init
+</UL>
+
+<P><STRONG><a name="[7e]"></a>HAL_UART_MspDeInit</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, usart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_DeInit
+</UL>
+<BR>[Called By]<UL><LI><a href="#[e3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_DeInit
+</UL>
+
+<P><STRONG><a name="[67]"></a>fputc</STRONG> (Thumb, 20 bytes, Stack size 16 bytes, usart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = fputc &rArr; HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> printf3.o(i.__0printf$3)
+</UL>
+<P><STRONG><a name="[1]"></a>NMI_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = HardFault_Handler &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[3]"></a>MemManage_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MemManage_Handler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MemManage_Handler
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[4]"></a>BusFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BusFault_Handler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;BusFault_Handler
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[5]"></a>UsageFault_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UsageFault_Handler
+</UL>
+<BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UsageFault_Handler
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[6]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[7]"></a>DebugMon_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[8]"></a>PendSV_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[9]"></a>SysTick_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
+</UL>
+<P><STRONG><a name="[cc]"></a>HAL_MspInit</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = HAL_MspInit
+</UL>
+<BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
+</UL>
+
+<P><STRONG><a name="[74]"></a>EPD_test</STRONG> (Thumb, 602 bytes, Stack size 40 bytes, epd_2in66b_test.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 744<LI>Call Chain = EPD_test &rArr; Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><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="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
+<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
+<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
+<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
+<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
+<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
+<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
+<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawBitMap
+<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_Clear
+<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Sleep
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Display
+<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Clear
+<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
+<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
+<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
+<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;free
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[82]"></a>EPD_2IN66B_Init</STRONG> (Thumb, 182 bytes, Stack size 8 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN66B_Init &rArr; EPD_2IN66B_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_ReadBusy
+<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
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[89]"></a>EPD_2IN66B_Display</STRONG> (Thumb, 108 bytes, Stack size 32 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = EPD_2IN66B_Display &rArr; EPD_2IN66B_TurnOnDisplay &rArr; EPD_2IN66B_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_TurnOnDisplay
+<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[83]"></a>EPD_2IN66B_Clear</STRONG> (Thumb, 82 bytes, Stack size 24 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = EPD_2IN66B_Clear &rArr; EPD_2IN66B_TurnOnDisplay &rArr; EPD_2IN66B_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_TurnOnDisplay
+<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[91]"></a>EPD_2IN66B_Sleep</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN66B_Sleep &rArr; EPD_2IN66B_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[99]"></a>DEV_SPI_WriteByte</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, dev_config.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit
+</UL>
+<BR>[Called By]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+</UL>
+
+<P><STRONG><a name="[81]"></a>DEV_Module_Init</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, dev_config.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = DEV_Module_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[93]"></a>DEV_Module_Exit</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, dev_config.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = DEV_Module_Exit
+</UL>
+<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<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
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<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_test
+</UL>
+
+<P><STRONG><a name="[9b]"></a>Paint_SetRotate</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+
+<P><STRONG><a name="[9c]"></a>Paint_SetScale</STRONG> (Thumb, 80 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+
+<P><STRONG><a name="[9d]"></a>Paint_SetMirroring</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+
+<P><STRONG><a name="[9e]"></a>Paint_SetPixel</STRONG> (Thumb, 238 bytes, Stack size 16 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawBitMap_Paste
+<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
+<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_ClearWindows
+<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_CN
+<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
+</UL>
+
+<P><STRONG><a name="[86]"></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
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[9f]"></a>Paint_ClearWindows</STRONG> (Thumb, 52 bytes, Stack size 32 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
+</UL>
+
+<P><STRONG><a name="[8a]"></a>Paint_DrawPoint</STRONG> (Thumb, 180 bytes, Stack size 40 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
+<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[8b]"></a>Paint_DrawLine</STRONG> (Thumb, 662 bytes, Stack size 48 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = Paint_DrawLine &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[8c]"></a>Paint_DrawRectangle</STRONG> (Thumb, 170 bytes, Stack size 48 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = Paint_DrawRectangle &rArr; Paint_DrawLine &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[90]"></a>Paint_DrawCircle</STRONG> (Thumb, 528 bytes, Stack size 72 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 152<LI>Call Chain = Paint_DrawCircle &rArr; Paint_DrawPoint &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[a0]"></a>Paint_DrawChar</STRONG> (Thumb, 172 bytes, Stack size 40 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawTime
+<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
+</UL>
+
+<P><STRONG><a name="[8d]"></a>Paint_DrawString_EN</STRONG> (Thumb, 116 bytes, Stack size 48 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawChar
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[8e]"></a>Paint_DrawString_CN</STRONG> (Thumb, 518 bytes, Stack size 40 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = Paint_DrawString_CN &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[8f]"></a>Paint_DrawNum</STRONG> (Thumb, 140 bytes, Stack size 576 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 704<LI>Call Chain = Paint_DrawNum &rArr; Paint_DrawString_EN &rArr; Paint_DrawChar &rArr; Paint_SetPixel &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[a1]"></a>Paint_DrawNumDecimals</STRONG> (Thumb, 258 bytes, Stack size 592 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
+<LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_fmul
+<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2iz
+<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
+<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
+<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f
+<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
+</UL>
+
+<P><STRONG><a name="[a8]"></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
+</UL>
+
+<P><STRONG><a name="[88]"></a>Paint_DrawBitMap</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, gui_paint.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Paint_DrawBitMap
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<P><STRONG><a name="[a9]"></a>Paint_DrawBitMap_Paste</STRONG> (Thumb, 198 bytes, Stack size 56 bytes, gui_paint.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetPixel
+</UL>
+
+<P><STRONG><a name="[111]"></a>Paint_DrawBitMap_Block</STRONG> (Thumb, 54 bytes, Stack size 20 bytes, gui_paint.o(.text), UNUSED)
+
+<P><STRONG><a name="[47]"></a>SystemInit</STRONG> (Thumb, 60 bytes, Stack size 0 bytes, system_stm32f1xx.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(.text)
+</UL>
+<P><STRONG><a name="[112]"></a>SystemCoreClockUpdate</STRONG> (Thumb, 108 bytes, Stack size 0 bytes, system_stm32f1xx.o(.text), UNUSED)
+
+<P><STRONG><a name="[78]"></a>HAL_SPI_Init</STRONG> (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = HAL_SPI_Init &rArr; HAL_SPI_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit
+</UL>
+<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
+</UL>
+
+<P><STRONG><a name="[aa]"></a>HAL_SPI_DeInit</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspDeInit
+</UL>
+
+<P><STRONG><a name="[9a]"></a>HAL_SPI_Transmit</STRONG> (Thumb, 358 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Called By]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
+</UL>
+
+<P><STRONG><a name="[af]"></a>HAL_SPI_TransmitReceive</STRONG> (Thumb, 484 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Called By]<UL><LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive
+</UL>
+
+<P><STRONG><a name="[b0]"></a>HAL_SPI_Receive</STRONG> (Thumb, 344 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive
+<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTransaction
+</UL>
+
+<P><STRONG><a name="[b3]"></a>HAL_SPI_TxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitCplt
+<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+</UL>
+
+<P><STRONG><a name="[b2]"></a>HAL_SPI_ErrorCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_IRQHandler
+<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAAbortOnError
+<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitReceiveCplt
+<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAReceiveCplt
+<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitCplt
+<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAError
+<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+</UL>
+
+<P><STRONG><a name="[113]"></a>HAL_SPI_Transmit_IT</STRONG> (Thumb, 140 bytes, Stack size 12 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+
+<P><STRONG><a name="[b5]"></a>HAL_SPI_RxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAReceiveCplt
+<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+</UL>
+
+<P><STRONG><a name="[b7]"></a>HAL_SPI_TxRxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitReceiveCplt
+<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+</UL>
+
+<P><STRONG><a name="[b9]"></a>HAL_SPI_TransmitReceive_IT</STRONG> (Thumb, 146 bytes, Stack size 20 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive_IT
+</UL>
+
+<P><STRONG><a name="[b8]"></a>HAL_SPI_Receive_IT</STRONG> (Thumb, 192 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_IT
+</UL>
+
+<P><STRONG><a name="[ba]"></a>HAL_SPI_TxHalfCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAHalfTransmitCplt
+</UL>
+
+<P><STRONG><a name="[bb]"></a>HAL_SPI_Transmit_DMA</STRONG> (Thumb, 202 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+</UL>
+
+<P><STRONG><a name="[bd]"></a>HAL_SPI_RxHalfCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAHalfReceiveCplt
+</UL>
+
+<P><STRONG><a name="[be]"></a>HAL_SPI_TxRxHalfCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAHalfTransmitReceiveCplt
+</UL>
+
+<P><STRONG><a name="[bf]"></a>HAL_SPI_TransmitReceive_DMA</STRONG> (Thumb, 268 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+</UL>
+<BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive_DMA
+</UL>
+
+<P><STRONG><a name="[c0]"></a>HAL_SPI_Receive_DMA</STRONG> (Thumb, 262 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_DMA
+</UL>
+
+<P><STRONG><a name="[c1]"></a>HAL_SPI_Abort</STRONG> (Thumb, 274 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[c3]"></a>HAL_SPI_AbortCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Abort_IT
+<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATxAbortCallback
+<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMARxAbortCallback
+</UL>
+
+<P><STRONG><a name="[c4]"></a>HAL_SPI_Abort_IT</STRONG> (Thumb, 264 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_AbortCpltCallback
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[114]"></a>HAL_SPI_DMAPause</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+
+<P><STRONG><a name="[115]"></a>HAL_SPI_DMAResume</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+
+<P><STRONG><a name="[c6]"></a>HAL_SPI_DMAStop</STRONG> (Thumb, 66 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[c7]"></a>HAL_SPI_IRQHandler</STRONG> (Thumb, 220 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[116]"></a>HAL_SPI_GetState</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+
+<P><STRONG><a name="[117]"></a>HAL_SPI_GetError</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text), UNUSED)
+
+<P><STRONG><a name="[c8]"></a>HAL_InitTick</STRONG> (Thumb, 54 bytes, Stack size 16 bytes, stm32f1xx_hal.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = HAL_InitTick &rArr; HAL_NVIC_SetPriority
+</UL>
+<BR>[Calls]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_Config
+<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority
+</UL>
+<BR>[Called By]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
+<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
+<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_DeInit
+<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SetTickFreq
+</UL>
+
+<P><STRONG><a name="[70]"></a>HAL_Init</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, stm32f1xx_hal.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_Init &rArr; HAL_InitTick &rArr; HAL_NVIC_SetPriority
+</UL>
+<BR>[Calls]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MspInit
+<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriorityGrouping
+</UL>
+<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[ce]"></a>HAL_MspDeInit</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DeInit
+</UL>
+
+<P><STRONG><a name="[cd]"></a>HAL_DeInit</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, stm32f1xx_hal.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MspDeInit
+</UL>
+
+<P><STRONG><a name="[80]"></a>HAL_IncTick</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
+</UL>
+
+<P><STRONG><a name="[ac]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit
+<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
+<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
+<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
+<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
+<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Receive
+<LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
+<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_PollForTransfer
+<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_DeInit
+<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive
+<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive
+<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMARxAbortCallback
+<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitReceiveCplt
+<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAReceiveCplt
+<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitCplt
+<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
+</UL>
+
+<P><STRONG><a name="[118]"></a>HAL_GetTickPrio</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[cf]"></a>HAL_SetTickFreq</STRONG> (Thumb, 30 bytes, Stack size 16 bytes, stm32f1xx_hal.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+</UL>
+
+<P><STRONG><a name="[119]"></a>HAL_GetTickFreq</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[75]"></a>HAL_Delay</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_Delay
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_ReadBusy
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+<LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
+</UL>
+
+<P><STRONG><a name="[11a]"></a>HAL_SuspendTick</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[11b]"></a>HAL_ResumeTick</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[11c]"></a>HAL_GetHalVersion</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[11d]"></a>HAL_GetREVID</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[11e]"></a>HAL_GetDEVID</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[11f]"></a>HAL_GetUIDw0</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[120]"></a>HAL_GetUIDw1</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[121]"></a>HAL_GetUIDw2</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[122]"></a>HAL_DBGMCU_EnableDBGSleepMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[123]"></a>HAL_DBGMCU_DisableDBGSleepMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[124]"></a>HAL_DBGMCU_EnableDBGStopMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[125]"></a>HAL_DBGMCU_DisableDBGStopMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[126]"></a>HAL_DBGMCU_EnableDBGStandbyMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[127]"></a>HAL_DBGMCU_DisableDBGStandbyMode</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text), UNUSED)
+
+<P><STRONG><a name="[d0]"></a>HAL_RCC_DeInit</STRONG> (Thumb, 202 bytes, Stack size 24 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+
+<P><STRONG><a name="[6e]"></a>HAL_RCC_OscConfig</STRONG> (Thumb, 776 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_RCC_OscConfig
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
+</UL>
+
+<P><STRONG><a name="[d1]"></a>HAL_RCC_GetSysClockFreq</STRONG> (Thumb, 124 bytes, Stack size 20 bytes, stm32f1xx_hal_rcc.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = HAL_RCC_GetSysClockFreq
+</UL>
+<BR>[Called By]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
+</UL>
+
+<P><STRONG><a name="[6f]"></a>HAL_RCC_ClockConfig</STRONG> (Thumb, 282 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = HAL_RCC_ClockConfig &rArr; HAL_InitTick &rArr; HAL_NVIC_SetPriority
+</UL>
+<BR>[Calls]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
+<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
+</UL>
+
+<P><STRONG><a name="[d2]"></a>HAL_RCC_MCOConfig</STRONG> (Thumb, 64 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
+</UL>
+
+<P><STRONG><a name="[128]"></a>HAL_RCC_EnableCSS</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+
+<P><STRONG><a name="[129]"></a>HAL_RCC_DisableCSS</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+
+<P><STRONG><a name="[12a]"></a>HAL_RCC_GetHCLKFreq</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+
+<P><STRONG><a name="[df]"></a>HAL_RCC_GetPCLK1Freq</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+
+<P><STRONG><a name="[de]"></a>HAL_RCC_GetPCLK2Freq</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+
+<P><STRONG><a name="[12b]"></a>HAL_RCC_GetOscConfig</STRONG> (Thumb, 140 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+
+<P><STRONG><a name="[12c]"></a>HAL_RCC_GetClockConfig</STRONG> (Thumb, 54 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+
+<P><STRONG><a name="[d4]"></a>HAL_RCC_CSSCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_NMI_IRQHandler
+</UL>
+
+<P><STRONG><a name="[d3]"></a>HAL_RCC_NMI_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_CSSCallback
+</UL>
+
+<P><STRONG><a name="[77]"></a>HAL_GPIO_Init</STRONG> (Thumb, 462 bytes, Stack size 40 bytes, stm32f1xx_hal_gpio.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_GPIO_Init
+</UL>
+<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
+<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit
+<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
+<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_MCOConfig
+</UL>
+
+<P><STRONG><a name="[7b]"></a>HAL_GPIO_DeInit</STRONG> (Thumb, 256 bytes, Stack size 28 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspDeInit
+<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspDeInit
+</UL>
+
+<P><STRONG><a name="[95]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_ReadBusy
+</UL>
+
+<P><STRONG><a name="[76]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendData
+<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Init
+<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_Module_Exit
+<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
+</UL>
+
+<P><STRONG><a name="[12d]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
+
+<P><STRONG><a name="[12e]"></a>HAL_GPIO_LockPin</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
+
+<P><STRONG><a name="[d6]"></a>HAL_GPIO_EXTI_Callback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_EXTI_IRQHandler
+</UL>
+
+<P><STRONG><a name="[d5]"></a>HAL_GPIO_EXTI_IRQHandler</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_EXTI_Callback
+</UL>
+
+<P><STRONG><a name="[12f]"></a>HAL_DMA_Init</STRONG> (Thumb, 112 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[130]"></a>HAL_DMA_DeInit</STRONG> (Thumb, 116 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[d7]"></a>HAL_DMA_Start</STRONG> (Thumb, 80 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_SetConfig
+</UL>
+
+<P><STRONG><a name="[bc]"></a>HAL_DMA_Start_IT</STRONG> (Thumb, 112 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DMA_SetConfig
+</UL>
+<BR>[Called By]<UL><LI><a href="#[ee]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Receive_DMA
+<LI><a href="#[eb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit_DMA
+<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive_DMA
+<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_DMA
+<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit_DMA
+</UL>
+
+<P><STRONG><a name="[c2]"></a>HAL_DMA_Abort</STRONG> (Thumb, 70 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceive
+<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmit
+<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Abort
+<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_DMAStop
+<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_DMAStop
+<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Abort
+</UL>
+
+<P><STRONG><a name="[c5]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 296 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
+<LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceive_IT
+<LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmit_IT
+<LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Abort_IT
+<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_IRQHandler
+<LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Abort_IT
+</UL>
+
+<P><STRONG><a name="[d9]"></a>HAL_DMA_PollForTransfer</STRONG> (Thumb, 996 bytes, Stack size 56 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+
+<P><STRONG><a name="[131]"></a>HAL_DMA_IRQHandler</STRONG> (Thumb, 572 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[132]"></a>HAL_DMA_RegisterCallback</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[133]"></a>HAL_DMA_UnRegisterCallback</STRONG> (Thumb, 82 bytes, Stack size 8 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[134]"></a>HAL_DMA_GetState</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+
+<P><STRONG><a name="[f1]"></a>HAL_DMA_GetError</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[f3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceive
+<LI><a href="#[f2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmit
+<LI><a href="#[f0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Abort
+</UL>
+
+<P><STRONG><a name="[cb]"></a>HAL_NVIC_SetPriorityGrouping</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
+</UL>
+
+<P><STRONG><a name="[ca]"></a>HAL_NVIC_SetPriority</STRONG> (Thumb, 60 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_NVIC_SetPriority
+</UL>
+<BR>[Calls]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_SetPriority
+</UL>
+<BR>[Called By]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+</UL>
+
+<P><STRONG><a name="[135]"></a>HAL_NVIC_EnableIRQ</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[136]"></a>HAL_NVIC_DisableIRQ</STRONG> (Thumb, 34 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[137]"></a>HAL_NVIC_SystemReset</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[c9]"></a>HAL_SYSTICK_Config</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = HAL_SYSTICK_Config
+</UL>
+<BR>[Calls]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_SetPriority
+</UL>
+<BR>[Called By]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
+</UL>
+
+<P><STRONG><a name="[138]"></a>HAL_NVIC_GetPriorityGrouping</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[139]"></a>HAL_NVIC_GetPriority</STRONG> (Thumb, 82 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[13a]"></a>HAL_NVIC_SetPendingIRQ</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[13b]"></a>HAL_NVIC_GetPendingIRQ</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[13c]"></a>HAL_NVIC_ClearPendingIRQ</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[13d]"></a>HAL_NVIC_GetActive</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[13e]"></a>HAL_SYSTICK_CLKSourceConfig</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+
+<P><STRONG><a name="[dc]"></a>HAL_SYSTICK_Callback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[db]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler
+</UL>
+
+<P><STRONG><a name="[db]"></a>HAL_SYSTICK_IRQHandler</STRONG> (Thumb, 8 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[dc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_Callback
+</UL>
+
+<P><STRONG><a name="[7c]"></a>HAL_UART_Init</STRONG> (Thumb, 98 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = HAL_UART_Init &rArr; HAL_UART_MspInit &rArr; HAL_GPIO_Init
+</UL>
+<BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
+<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
+</UL>
+
+<P><STRONG><a name="[e0]"></a>HAL_HalfDuplex_Init</STRONG> (Thumb, 108 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
+<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+
+<P><STRONG><a name="[e1]"></a>HAL_LIN_Init</STRONG> (Thumb, 128 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
+<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+
+<P><STRONG><a name="[e2]"></a>HAL_MultiProcessor_Init</STRONG> (Thumb, 142 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
+<LI><a href="#[dd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
+</UL>
+
+<P><STRONG><a name="[e3]"></a>HAL_UART_DeInit</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspDeInit
+</UL>
+
+<P><STRONG><a name="[7f]"></a>HAL_UART_Transmit</STRONG> (Thumb, 176 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fputc
+</UL>
+
+<P><STRONG><a name="[e5]"></a>HAL_UART_Receive</STRONG> (Thumb, 198 bytes, Stack size 40 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[e4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+
+<P><STRONG><a name="[13f]"></a>HAL_UART_Transmit_IT</STRONG> (Thumb, 62 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[140]"></a>HAL_UART_Receive_IT</STRONG> (Thumb, 82 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[e8]"></a>HAL_UART_ErrorCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
+<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAAbortOnError
+<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
+</UL>
+
+<P><STRONG><a name="[e9]"></a>HAL_UART_TxHalfCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMATxHalfCplt
+</UL>
+
+<P><STRONG><a name="[ea]"></a>HAL_UART_TxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
+<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMATransmitCplt
+</UL>
+
+<P><STRONG><a name="[eb]"></a>HAL_UART_Transmit_DMA</STRONG> (Thumb, 114 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+</UL>
+
+<P><STRONG><a name="[ec]"></a>HAL_UART_RxHalfCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMARxHalfCplt
+</UL>
+
+<P><STRONG><a name="[ed]"></a>HAL_UART_RxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
+<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAReceiveCplt
+</UL>
+
+<P><STRONG><a name="[ee]"></a>HAL_UART_Receive_DMA</STRONG> (Thumb, 138 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+</UL>
+
+<P><STRONG><a name="[141]"></a>HAL_UART_DMAPause</STRONG> (Thumb, 102 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[142]"></a>HAL_UART_DMAResume</STRONG> (Thumb, 94 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[ef]"></a>HAL_UART_DMAStop</STRONG> (Thumb, 88 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTxTransfer
+<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
+<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[f0]"></a>HAL_UART_Abort</STRONG> (Thumb, 138 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_GetError
+<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[f2]"></a>HAL_UART_AbortTransmit</STRONG> (Thumb, 78 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_GetError
+<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[f3]"></a>HAL_UART_AbortReceive</STRONG> (Thumb, 88 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_GetError
+<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
+</UL>
+
+<P><STRONG><a name="[f4]"></a>HAL_UART_AbortCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[f5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Abort_IT
+<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMATxAbortCallback
+<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMARxAbortCallback
+</UL>
+
+<P><STRONG><a name="[f5]"></a>HAL_UART_Abort_IT</STRONG> (Thumb, 188 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortCpltCallback
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[f6]"></a>HAL_UART_AbortTransmitCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[f7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmit_IT
+<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMATxOnlyAbortCallback
+</UL>
+
+<P><STRONG><a name="[f7]"></a>HAL_UART_AbortTransmit_IT</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmitCpltCallback
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[f8]"></a>HAL_UART_AbortReceiveCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[f9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceive_IT
+<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMARxOnlyAbortCallback
+</UL>
+
+<P><STRONG><a name="[f9]"></a>HAL_UART_AbortReceive_IT</STRONG> (Thumb, 88 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceiveCpltCallback
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[fb]"></a>HAL_UART_IRQHandler</STRONG> (Thumb, 342 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_TxCpltCallback
+<LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
+<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
+<LI><a href="#[fa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
+<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
+</UL>
+
+<P><STRONG><a name="[143]"></a>HAL_LIN_SendBreak</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[144]"></a>HAL_MultiProcessor_EnterMuteMode</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[145]"></a>HAL_MultiProcessor_ExitMuteMode</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[146]"></a>HAL_HalfDuplex_EnableTransmitter</STRONG> (Thumb, 66 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[147]"></a>HAL_HalfDuplex_EnableReceiver</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[148]"></a>HAL_UART_GetState</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[149]"></a>HAL_UART_GetError</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+
+<P><STRONG><a name="[105]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2iz
+<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
+</UL>
+
+<P><STRONG><a name="[14a]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
+
+<P><STRONG><a name="[fd]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[fe]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
+<LI><a href="#[fc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
+</UL>
+
+<P><STRONG><a name="[14b]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+<P><STRONG><a name="[14c]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+<P><STRONG><a name="[fc]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
+</UL>
+
+<P><STRONG><a name="[6d]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
+<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
+</UL>
+
+<P><STRONG><a name="[14d]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+<P><STRONG><a name="[fe]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[fd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
+</UL>
+
+<P><STRONG><a name="[a6]"></a>__aeabi_fmul</STRONG> (Thumb, 100 bytes, Stack size 8 bytes, fmul.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[ff]"></a>__aeabi_dadd</STRONG> (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[101]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_lasr
+<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
+<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
+<LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
+<LI><a href="#[104]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
+</UL>
+
+<P><STRONG><a name="[104]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+
+<P><STRONG><a name="[a4]"></a>__aeabi_drsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[a3]"></a>__aeabi_i2d</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, dflti.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[a7]"></a>__aeabi_f2iz</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, ffixi.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[a2]"></a>__aeabi_d2iz</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, dfixi.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[105]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[a5]"></a>__aeabi_d2f</STRONG> (Thumb, 56 bytes, Stack size 8 bytes, d2f.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[106]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_float_round
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+</UL>
+
+<P><STRONG><a name="[14e]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+
+<P><STRONG><a name="[10a]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[109]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
+</UL>
+
+<P><STRONG><a name="[100]"></a>__aeabi_llsl</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
+<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+
+<P><STRONG><a name="[14f]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
+
+<P><STRONG><a name="[101]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+
+<P><STRONG><a name="[150]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+
+<P><STRONG><a name="[151]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)
+
+<P><STRONG><a name="[106]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2f
+</UL>
+
+<P><STRONG><a name="[152]"></a>_float_epilogue</STRONG> (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.o(.text), UNUSED)
+
+<P><STRONG><a name="[103]"></a>_double_round</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[102]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
+<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+
+<P><STRONG><a name="[102]"></a>_double_epilogue</STRONG> (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[105]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
+<LI><a href="#[100]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
+<LI><a href="#[103]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_i2d
+<LI><a href="#[ff]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
+</UL>
+
+<P><STRONG><a name="[69]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
+<BR><BR>[Calls]<UL><LI><a href="#[107]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main_after_scatterload
+</UL>
+<BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
+</UL>
+
+<P><STRONG><a name="[153]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
+
+<P><STRONG><a name="[108]"></a>__0printf$3</STRONG> (Thumb, 22 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[109]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
+</UL>
+
+<P><STRONG><a name="[154]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
+
+<P><STRONG><a name="[6b]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
+<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNumDecimals
+<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="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetMirroring
+<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetScale
+<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_SetRotate
+<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_ReadBusy
+<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawString_EN
+<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawRectangle
+<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawPoint
+<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawNum
+<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawLine
+<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Paint_DrawCircle
+<LI><a href="#[2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HardFault_Handler
+<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
+</UL>
+
+<P><STRONG><a name="[155]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
+
+<P><STRONG><a name="[156]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
+
+<P><STRONG><a name="[157]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
+
+<P><STRONG><a name="[92]"></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
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+
+<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
+</UL>
+<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_test
+</UL>
+<P>
+<H3>
+Local Symbols
+</H3>
+<P><STRONG><a name="[94]"></a>EPD_2IN66B_ReadBusy</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = EPD_2IN66B_ReadBusy &rArr; __2printf
+</UL>
+<BR>[Calls]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
+<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
+<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
+</UL>
+<BR>[Called By]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_TurnOnDisplay
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+</UL>
+
+<P><STRONG><a name="[96]"></a>EPD_2IN66B_SendCommand</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_2IN66B_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
+<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
+</UL>
+<BR>[Called By]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_TurnOnDisplay
+<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Sleep
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Display
+<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Clear
+</UL>
+
+<P><STRONG><a name="[97]"></a>EPD_2IN66B_SendData</STRONG> (Thumb, 46 bytes, Stack size 16 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = EPD_2IN66B_SendData &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;DEV_SPI_WriteByte
+<LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
+</UL>
+<BR>[Called By]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Sleep
+<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Init
+<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Display
+<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Clear
+</UL>
+
+<P><STRONG><a name="[98]"></a>EPD_2IN66B_TurnOnDisplay</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, epd_2in66b.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = EPD_2IN66B_TurnOnDisplay &rArr; EPD_2IN66B_SendCommand &rArr; DEV_SPI_WriteByte &rArr; HAL_SPI_Transmit &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_SendCommand
+<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_ReadBusy
+</UL>
+<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Display
+<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;EPD_2IN66B_Clear
+</UL>
+
+<P><STRONG><a name="[ab]"></a>SPI_WaitFlagStateUntilTimeout</STRONG> (Thumb, 180 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTransaction
+</UL>
+
+<P><STRONG><a name="[ae]"></a>SPI_EndRxTransaction</STRONG> (Thumb, 92 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = SPI_EndRxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Called By]<UL><LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Receive
+<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAReceiveCplt
+<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+</UL>
+
+<P><STRONG><a name="[b1]"></a>SPI_CloseTx_ISR</STRONG> (Thumb, 120 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_CloseTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxCpltCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Called By]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_TxISR_16BIT
+<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_TxISR_8BIT
+</UL>
+
+<P><STRONG><a name="[4a]"></a>SPI_TxISR_8BIT</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_TxISR_8BIT &rArr; SPI_CloseTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[49]"></a>SPI_TxISR_16BIT</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_TxISR_16BIT &rArr; SPI_CloseTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[b4]"></a>SPI_CloseRx_ISR</STRONG> (Thumb, 76 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = SPI_CloseRx_ISR &rArr; SPI_EndRxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxCpltCallback
+<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTransaction
+</UL>
+<BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RxISR_16BIT
+<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_RxISR_8BIT
+</UL>
+
+<P><STRONG><a name="[50]"></a>SPI_RxISR_8BIT</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = SPI_RxISR_8BIT &rArr; SPI_CloseRx_ISR &rArr; SPI_EndRxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[4f]"></a>SPI_RxISR_16BIT</STRONG> (Thumb, 30 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = SPI_RxISR_16BIT &rArr; SPI_CloseRx_ISR &rArr; SPI_EndRxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[b6]"></a>SPI_CloseRxTx_ISR</STRONG> (Thumb, 140 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_CloseRxTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
+<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxCpltCallback
+<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_2linesRxISR_16BIT
+<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_2linesTxISR_16BIT
+<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_2linesRxISR_8BIT
+<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_2linesTxISR_8BIT
+</UL>
+
+<P><STRONG><a name="[4e]"></a>SPI_2linesTxISR_8BIT</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_2linesTxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[4d]"></a>SPI_2linesRxISR_8BIT</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_2linesRxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[4c]"></a>SPI_2linesTxISR_16BIT</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_2linesTxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[4b]"></a>SPI_2linesRxISR_16BIT</STRONG> (Thumb, 46 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_2linesRxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[53]"></a>SPI_DMAError</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMAError
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[52]"></a>SPI_DMATransmitCplt</STRONG> (Thumb, 100 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_DMATransmitCplt &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxCpltCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[51]"></a>SPI_DMAHalfTransmitCplt</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMAHalfTransmitCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxHalfCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[57]"></a>SPI_DMAReceiveCplt</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = SPI_DMAReceiveCplt &rArr; SPI_EndRxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxCpltCallback
+<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTransaction
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[56]"></a>SPI_DMAHalfReceiveCplt</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMAHalfReceiveCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxHalfCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[55]"></a>SPI_DMATransmitReceiveCplt</STRONG> (Thumb, 90 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_DMATransmitReceiveCplt &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
+<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[54]"></a>SPI_DMAHalfTransmitReceiveCplt</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMAHalfTransmitReceiveCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxHalfCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[59]"></a>SPI_AbortRx_ISR</STRONG> (Thumb, 76 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_AbortRx_ISR
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[58]"></a>SPI_AbortTx_ISR</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_spi.o(.text))
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[5b]"></a>SPI_DMARxAbortCallback</STRONG> (Thumb, 98 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = SPI_DMARxAbortCallback &rArr; SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_AbortCpltCallback
+<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[5a]"></a>SPI_DMATxAbortCallback</STRONG> (Thumb, 106 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMATxAbortCallback
+</UL>
+<BR>[Calls]<UL><LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_AbortCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[5c]"></a>SPI_DMAAbortOnError</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = SPI_DMAAbortOnError
+</UL>
+<BR>[Calls]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_spi.o(.text)
+</UL>
+<P><STRONG><a name="[ad]"></a>SPI_EndRxTxTransaction</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
+</UL>
+<BR>[Called By]<UL><LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Transmit
+<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive
+<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMARxAbortCallback
+<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitReceiveCplt
+<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMATransmitCplt
+<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
+<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseTx_ISR
+</UL>
+
+<P><STRONG><a name="[d8]"></a>DMA_SetConfig</STRONG> (Thumb, 42 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text), UNUSED)
+<BR><BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start
+<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Start_IT
+</UL>
+
+<P><STRONG><a name="[da]"></a>__NVIC_SetPriority</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_Config
+<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority
+</UL>
+
+<P><STRONG><a name="[dd]"></a>UART_SetConfig</STRONG> (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = UART_SetConfig
+</UL>
+<BR>[Calls]<UL><LI><a href="#[de]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK2Freq
+<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK1Freq
+</UL>
+<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
+<LI><a href="#[e2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MultiProcessor_Init
+<LI><a href="#[e1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_LIN_Init
+<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_HalfDuplex_Init
+</UL>
+
+<P><STRONG><a name="[e4]"></a>UART_WaitOnFlagUntilTimeout</STRONG> (Thumb, 98 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = UART_WaitOnFlagUntilTimeout
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
+</UL>
+<BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
+<LI><a href="#[e5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Receive
+</UL>
+
+<P><STRONG><a name="[5f]"></a>UART_DMAError</STRONG> (Thumb, 74 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = UART_DMAError
+</UL>
+<BR>[Calls]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
+<LI><a href="#[e6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTxTransfer
+<LI><a href="#[e7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[5e]"></a>UART_DMATxHalfCplt</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMATxHalfCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[e9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_TxHalfCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[5d]"></a>UART_DMATransmitCplt</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMATransmitCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_TxCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[61]"></a>UART_DMARxHalfCplt</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMARxHalfCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ec]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxHalfCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[60]"></a>UART_DMAReceiveCplt</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMAReceiveCplt
+</UL>
+<BR>[Calls]<UL><LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[63]"></a>UART_DMARxAbortCallback</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMARxAbortCallback
+</UL>
+<BR>[Calls]<UL><LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[62]"></a>UART_DMATxAbortCallback</STRONG> (Thumb, 42 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMATxAbortCallback
+</UL>
+<BR>[Calls]<UL><LI><a href="#[f4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[64]"></a>UART_DMATxOnlyAbortCallback</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMATxOnlyAbortCallback
+</UL>
+<BR>[Calls]<UL><LI><a href="#[f6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortTransmitCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[65]"></a>UART_DMARxOnlyAbortCallback</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMARxOnlyAbortCallback
+</UL>
+<BR>[Calls]<UL><LI><a href="#[f8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_AbortReceiveCpltCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[66]"></a>UART_DMAAbortOnError</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_DMAAbortOnError
+</UL>
+<BR>[Calls]<UL><LI><a href="#[e8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
+</UL>
+<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text)
+</UL>
+<P><STRONG><a name="[fa]"></a>UART_Receive_IT</STRONG> (Thumb, 140 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[ed]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxCpltCallback
+</UL>
+<BR>[Called By]<UL><LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
+</UL>
+
+<P><STRONG><a name="[e7]"></a>UART_EndRxTransfer</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[fb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
+<LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_DMAStop
+<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
+</UL>
+
+<P><STRONG><a name="[e6]"></a>UART_EndTxTransfer</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(.text))
+<BR><BR>[Called By]<UL><LI><a href="#[ef]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_DMAStop
+<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAError
+</UL>
+
+<P><STRONG><a name="[109]"></a>_printf_core</STRONG> (Thumb, 436 bytes, Stack size 96 bytes, printf3.o(i._printf_core), UNUSED)
+<BR><BR>[Calls]<UL><LI><a href="#[10a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
+</UL>
+<BR>[Called By]<UL><LI><a href="#[108]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0printf$3
+</UL>
+<P>
+<H3>
+Undefined Global Symbols
+</H3><HR></body></html>

Разница между файлами не показана из-за своего большого размера
+ 461 - 479
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map


+ 1465 - 0
STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst

@@ -0,0 +1,1465 @@
+
+
+
+ARM Macro Assembler    Page 1 
+
+
+    1 00000000         ;******************** (C) COPYRIGHT 2017 STMicroelectron
+                       ics ********************
+    2 00000000         ;* File Name          : startup_stm32f103xe.s
+    3 00000000         ;* Author             : MCD Application Team
+    4 00000000         ;* Version            : V4.2.0
+    5 00000000         ;* Date               : 31-March-2017
+    6 00000000         ;* Description        : STM32F103xE Devices vector table
+                        for MDK-ARM toolchain. 
+    7 00000000         ;*                      This module performs:
+    8 00000000         ;*                      - Set the initial SP
+    9 00000000         ;*                      - Set the initial PC == Reset_Ha
+                       ndler
+   10 00000000         ;*                      - Set the vector table entries w
+                       ith the exceptions ISR address
+   11 00000000         ;*                      - Configure the clock system
+   12 00000000         ;*                      - Branches to __main in the C li
+                       brary (which eventually
+   13 00000000         ;*                        calls main()).
+   14 00000000         ;*                      After Reset the Cortex-M3 proces
+                       sor is in Thread mode,
+   15 00000000         ;*                      priority is Privileged, and the 
+                       Stack is set to Main.
+   16 00000000         ;*******************************************************
+                       *************************
+   17 00000000         ;*
+   18 00000000         ;* <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectroni
+                       cs</center></h2>
+   19 00000000         ;*
+   20 00000000         ;* Redistribution and use in source and binary forms, wi
+                       th or without modification,
+   21 00000000         ;* are permitted provided that the following conditions 
+                       are met:
+   22 00000000         ;*   1. Redistributions of source code must retain the a
+                       bove copyright notice,
+   23 00000000         ;*      this list of conditions and the following discla
+                       imer.
+   24 00000000         ;*   2. Redistributions in binary form must reproduce th
+                       e above copyright notice,
+   25 00000000         ;*      this list of conditions and the following discla
+                       imer in the documentation
+   26 00000000         ;*      and/or other materials provided with the distrib
+                       ution.
+   27 00000000         ;*   3. Neither the name of STMicroelectronics nor the n
+                       ames of its contributors
+   28 00000000         ;*      may be used to endorse or promote products deriv
+                       ed from this software
+   29 00000000         ;*      without specific prior written permission.
+   30 00000000         ;*
+   31 00000000         ;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AN
+                       D CONTRIBUTORS "AS IS"
+   32 00000000         ;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+                        NOT LIMITED TO, THE
+   33 00000000         ;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+                        A PARTICULAR PURPOSE ARE
+   34 00000000         ;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+                        CONTRIBUTORS BE LIABLE
+   35 00000000         ;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPL
+                       ARY, OR CONSEQUENTIAL
+   36 00000000         ;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT O
+
+
+
+ARM Macro Assembler    Page 2 
+
+
+                       F SUBSTITUTE GOODS OR
+   37 00000000         ;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
+                       INTERRUPTION) HOWEVER
+   38 00000000         ;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CON
+                       TRACT, STRICT LIABILITY,
+   39 00000000         ;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING I
+                       N ANY WAY OUT OF THE USE
+   40 00000000         ;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
+                       OF SUCH DAMAGE.
+   41 00000000         ; 
+   42 00000000         ;*******************************************************
+                       ************************
+   43 00000000         
+   44 00000000         ; Amount of memory (in bytes) allocated for Stack
+   45 00000000         ; Tailor this value to your application needs
+   46 00000000         ; <h> Stack Configuration
+   47 00000000         ;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+   48 00000000         ; </h>
+   49 00000000         
+   50 00000000 00001000 
+                       Stack_Size
+                               EQU              0x1000
+   51 00000000         
+   52 00000000                 AREA             STACK, NOINIT, READWRITE, ALIGN
+=3
+   53 00000000         Stack_Mem
+                               SPACE            Stack_Size
+   54 00001000         __initial_sp
+   55 00001000         
+   56 00001000         ; <h> Heap Configuration
+   57 00001000         ;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+   58 00001000         ; </h>
+   59 00001000         
+   60 00001000 0000C000 
+                       Heap_Size
+                               EQU              0xC000
+   61 00001000         
+   62 00001000                 AREA             HEAP, NOINIT, READWRITE, ALIGN=
+3
+   63 00000000         __heap_base
+   64 00000000         Heap_Mem
+                               SPACE            Heap_Size
+   65 0000C000         __heap_limit
+   66 0000C000         
+   67 0000C000                 PRESERVE8
+   68 0000C000                 THUMB
+   69 0000C000         
+   70 0000C000         
+   71 0000C000         ; Vector Table Mapped to Address 0 at Reset
+   72 0000C000                 AREA             RESET, DATA, READONLY
+   73 00000000                 EXPORT           __Vectors
+   74 00000000                 EXPORT           __Vectors_End
+   75 00000000                 EXPORT           __Vectors_Size
+   76 00000000         
+   77 00000000 00000000 
+                       __Vectors
+                               DCD              __initial_sp ; Top of Stack
+   78 00000004 00000000        DCD              Reset_Handler ; Reset Handler
+   79 00000008 00000000        DCD              NMI_Handler ; NMI Handler
+
+
+
+ARM Macro Assembler    Page 3 
+
+
+   80 0000000C 00000000        DCD              HardFault_Handler ; Hard Fault 
+                                                            Handler
+   81 00000010 00000000        DCD              MemManage_Handler 
+                                                            ; MPU Fault Handler
+                                                            
+   82 00000014 00000000        DCD              BusFault_Handler 
+                                                            ; Bus Fault Handler
+                                                            
+   83 00000018 00000000        DCD              UsageFault_Handler ; Usage Faul
+                                                            t Handler
+   84 0000001C 00000000        DCD              0           ; Reserved
+   85 00000020 00000000        DCD              0           ; Reserved
+   86 00000024 00000000        DCD              0           ; Reserved
+   87 00000028 00000000        DCD              0           ; Reserved
+   88 0000002C 00000000        DCD              SVC_Handler ; SVCall Handler
+   89 00000030 00000000        DCD              DebugMon_Handler ; Debug Monito
+                                                            r Handler
+   90 00000034 00000000        DCD              0           ; Reserved
+   91 00000038 00000000        DCD              PendSV_Handler ; PendSV Handler
+                                                            
+   92 0000003C 00000000        DCD              SysTick_Handler 
+                                                            ; SysTick Handler
+   93 00000040         
+   94 00000040         ; External Interrupts
+   95 00000040 00000000        DCD              WWDG_IRQHandler 
+                                                            ; Window Watchdog
+   96 00000044 00000000        DCD              PVD_IRQHandler ; PVD through EX
+                                                            TI Line detect
+   97 00000048 00000000        DCD              TAMPER_IRQHandler ; Tamper
+   98 0000004C 00000000        DCD              RTC_IRQHandler ; RTC
+   99 00000050 00000000        DCD              FLASH_IRQHandler ; Flash
+  100 00000054 00000000        DCD              RCC_IRQHandler ; RCC
+  101 00000058 00000000        DCD              EXTI0_IRQHandler ; EXTI Line 0
+  102 0000005C 00000000        DCD              EXTI1_IRQHandler ; EXTI Line 1
+  103 00000060 00000000        DCD              EXTI2_IRQHandler ; EXTI Line 2
+  104 00000064 00000000        DCD              EXTI3_IRQHandler ; EXTI Line 3
+  105 00000068 00000000        DCD              EXTI4_IRQHandler ; EXTI Line 4
+  106 0000006C 00000000        DCD              DMA1_Channel1_IRQHandler 
+                                                            ; DMA1 Channel 1
+  107 00000070 00000000        DCD              DMA1_Channel2_IRQHandler 
+                                                            ; DMA1 Channel 2
+  108 00000074 00000000        DCD              DMA1_Channel3_IRQHandler 
+                                                            ; DMA1 Channel 3
+  109 00000078 00000000        DCD              DMA1_Channel4_IRQHandler 
+                                                            ; DMA1 Channel 4
+  110 0000007C 00000000        DCD              DMA1_Channel5_IRQHandler 
+                                                            ; DMA1 Channel 5
+  111 00000080 00000000        DCD              DMA1_Channel6_IRQHandler 
+                                                            ; DMA1 Channel 6
+  112 00000084 00000000        DCD              DMA1_Channel7_IRQHandler 
+                                                            ; DMA1 Channel 7
+  113 00000088 00000000        DCD              ADC1_2_IRQHandler ; ADC1 & ADC2
+                                                            
+  114 0000008C 00000000        DCD              USB_HP_CAN1_TX_IRQHandler ; USB
+                                                             High Priority or C
+                                                            AN1 TX
+  115 00000090 00000000        DCD              USB_LP_CAN1_RX0_IRQHandler ; US
+                                                            B Low  Priority or 
+                                                            CAN1 RX0
+
+
+
+ARM Macro Assembler    Page 4 
+
+
+  116 00000094 00000000        DCD              CAN1_RX1_IRQHandler ; CAN1 RX1
+  117 00000098 00000000        DCD              CAN1_SCE_IRQHandler ; CAN1 SCE
+  118 0000009C 00000000        DCD              EXTI9_5_IRQHandler 
+                                                            ; EXTI Line 9..5
+  119 000000A0 00000000        DCD              TIM1_BRK_IRQHandler 
+                                                            ; TIM1 Break
+  120 000000A4 00000000        DCD              TIM1_UP_IRQHandler 
+                                                            ; TIM1 Update
+  121 000000A8 00000000        DCD              TIM1_TRG_COM_IRQHandler ; TIM1 
+                                                            Trigger and Commuta
+                                                            tion
+  122 000000AC 00000000        DCD              TIM1_CC_IRQHandler ; TIM1 Captu
+                                                            re Compare
+  123 000000B0 00000000        DCD              TIM2_IRQHandler ; TIM2
+  124 000000B4 00000000        DCD              TIM3_IRQHandler ; TIM3
+  125 000000B8 00000000        DCD              TIM4_IRQHandler ; TIM4
+  126 000000BC 00000000        DCD              I2C1_EV_IRQHandler ; I2C1 Event
+                                                            
+  127 000000C0 00000000        DCD              I2C1_ER_IRQHandler ; I2C1 Error
+                                                            
+  128 000000C4 00000000        DCD              I2C2_EV_IRQHandler ; I2C2 Event
+                                                            
+  129 000000C8 00000000        DCD              I2C2_ER_IRQHandler ; I2C2 Error
+                                                            
+  130 000000CC 00000000        DCD              SPI1_IRQHandler ; SPI1
+  131 000000D0 00000000        DCD              SPI2_IRQHandler ; SPI2
+  132 000000D4 00000000        DCD              USART1_IRQHandler ; USART1
+  133 000000D8 00000000        DCD              USART2_IRQHandler ; USART2
+  134 000000DC 00000000        DCD              USART3_IRQHandler ; USART3
+  135 000000E0 00000000        DCD              EXTI15_10_IRQHandler 
+                                                            ; EXTI Line 15..10
+  136 000000E4 00000000        DCD              RTC_Alarm_IRQHandler ; RTC Alar
+                                                            m through EXTI Line
+                                                            
+  137 000000E8 00000000        DCD              USBWakeUp_IRQHandler ; USB Wake
+                                                            up from suspend
+  138 000000EC 00000000        DCD              TIM8_BRK_IRQHandler 
+                                                            ; TIM8 Break
+  139 000000F0 00000000        DCD              TIM8_UP_IRQHandler 
+                                                            ; TIM8 Update
+  140 000000F4 00000000        DCD              TIM8_TRG_COM_IRQHandler ; TIM8 
+                                                            Trigger and Commuta
+                                                            tion
+  141 000000F8 00000000        DCD              TIM8_CC_IRQHandler ; TIM8 Captu
+                                                            re Compare
+  142 000000FC 00000000        DCD              ADC3_IRQHandler ; ADC3
+  143 00000100 00000000        DCD              FSMC_IRQHandler ; FSMC
+  144 00000104 00000000        DCD              SDIO_IRQHandler ; SDIO
+  145 00000108 00000000        DCD              TIM5_IRQHandler ; TIM5
+  146 0000010C 00000000        DCD              SPI3_IRQHandler ; SPI3
+  147 00000110 00000000        DCD              UART4_IRQHandler ; UART4
+  148 00000114 00000000        DCD              UART5_IRQHandler ; UART5
+  149 00000118 00000000        DCD              TIM6_IRQHandler ; TIM6
+  150 0000011C 00000000        DCD              TIM7_IRQHandler ; TIM7
+  151 00000120 00000000        DCD              DMA2_Channel1_IRQHandler 
+                                                            ; DMA2 Channel1
+  152 00000124 00000000        DCD              DMA2_Channel2_IRQHandler 
+                                                            ; DMA2 Channel2
+  153 00000128 00000000        DCD              DMA2_Channel3_IRQHandler 
+
+
+
+ARM Macro Assembler    Page 5 
+
+
+                                                            ; DMA2 Channel3
+  154 0000012C 00000000        DCD              DMA2_Channel4_5_IRQHandler ; DM
+                                                            A2 Channel4 & Chann
+                                                            el5
+  155 00000130         __Vectors_End
+  156 00000130         
+  157 00000130 00000130 
+                       __Vectors_Size
+                               EQU              __Vectors_End - __Vectors
+  158 00000130         
+  159 00000130                 AREA             |.text|, CODE, READONLY
+  160 00000000         
+  161 00000000         ; Reset handler
+  162 00000000         Reset_Handler
+                               PROC
+  163 00000000                 EXPORT           Reset_Handler             [WEAK
+]
+  164 00000000                 IMPORT           __main
+  165 00000000                 IMPORT           SystemInit
+  166 00000000 4806            LDR              R0, =SystemInit
+  167 00000002 4780            BLX              R0
+  168 00000004 4806            LDR              R0, =__main
+  169 00000006 4700            BX               R0
+  170 00000008                 ENDP
+  171 00000008         
+  172 00000008         ; Dummy Exception Handlers (infinite loops which can be 
+                       modified)
+  173 00000008         
+  174 00000008         NMI_Handler
+                               PROC
+  175 00000008                 EXPORT           NMI_Handler                [WEA
+K]
+  176 00000008 E7FE            B                .
+  177 0000000A                 ENDP
+  179 0000000A         HardFault_Handler
+                               PROC
+  180 0000000A                 EXPORT           HardFault_Handler          [WEA
+K]
+  181 0000000A E7FE            B                .
+  182 0000000C                 ENDP
+  184 0000000C         MemManage_Handler
+                               PROC
+  185 0000000C                 EXPORT           MemManage_Handler          [WEA
+K]
+  186 0000000C E7FE            B                .
+  187 0000000E                 ENDP
+  189 0000000E         BusFault_Handler
+                               PROC
+  190 0000000E                 EXPORT           BusFault_Handler           [WEA
+K]
+  191 0000000E E7FE            B                .
+  192 00000010                 ENDP
+  194 00000010         UsageFault_Handler
+                               PROC
+  195 00000010                 EXPORT           UsageFault_Handler         [WEA
+K]
+  196 00000010 E7FE            B                .
+  197 00000012                 ENDP
+  198 00000012         SVC_Handler
+
+
+
+ARM Macro Assembler    Page 6 
+
+
+                               PROC
+  199 00000012                 EXPORT           SVC_Handler                [WEA
+K]
+  200 00000012 E7FE            B                .
+  201 00000014                 ENDP
+  203 00000014         DebugMon_Handler
+                               PROC
+  204 00000014                 EXPORT           DebugMon_Handler           [WEA
+K]
+  205 00000014 E7FE            B                .
+  206 00000016                 ENDP
+  207 00000016         PendSV_Handler
+                               PROC
+  208 00000016                 EXPORT           PendSV_Handler             [WEA
+K]
+  209 00000016 E7FE            B                .
+  210 00000018                 ENDP
+  211 00000018         SysTick_Handler
+                               PROC
+  212 00000018                 EXPORT           SysTick_Handler            [WEA
+K]
+  213 00000018 E7FE            B                .
+  214 0000001A                 ENDP
+  215 0000001A         
+  216 0000001A         Default_Handler
+                               PROC
+  217 0000001A         
+  218 0000001A                 EXPORT           WWDG_IRQHandler            [WEA
+K]
+  219 0000001A                 EXPORT           PVD_IRQHandler             [WEA
+K]
+  220 0000001A                 EXPORT           TAMPER_IRQHandler          [WEA
+K]
+  221 0000001A                 EXPORT           RTC_IRQHandler             [WEA
+K]
+  222 0000001A                 EXPORT           FLASH_IRQHandler           [WEA
+K]
+  223 0000001A                 EXPORT           RCC_IRQHandler             [WEA
+K]
+  224 0000001A                 EXPORT           EXTI0_IRQHandler           [WEA
+K]
+  225 0000001A                 EXPORT           EXTI1_IRQHandler           [WEA
+K]
+  226 0000001A                 EXPORT           EXTI2_IRQHandler           [WEA
+K]
+  227 0000001A                 EXPORT           EXTI3_IRQHandler           [WEA
+K]
+  228 0000001A                 EXPORT           EXTI4_IRQHandler           [WEA
+K]
+  229 0000001A                 EXPORT           DMA1_Channel1_IRQHandler   [WEA
+K]
+  230 0000001A                 EXPORT           DMA1_Channel2_IRQHandler   [WEA
+K]
+  231 0000001A                 EXPORT           DMA1_Channel3_IRQHandler   [WEA
+K]
+  232 0000001A                 EXPORT           DMA1_Channel4_IRQHandler   [WEA
+K]
+  233 0000001A                 EXPORT           DMA1_Channel5_IRQHandler   [WEA
+K]
+
+
+
+ARM Macro Assembler    Page 7 
+
+
+  234 0000001A                 EXPORT           DMA1_Channel6_IRQHandler   [WEA
+K]
+  235 0000001A                 EXPORT           DMA1_Channel7_IRQHandler   [WEA
+K]
+  236 0000001A                 EXPORT           ADC1_2_IRQHandler          [WEA
+K]
+  237 0000001A                 EXPORT           USB_HP_CAN1_TX_IRQHandler  [WEA
+K]
+  238 0000001A                 EXPORT           USB_LP_CAN1_RX0_IRQHandler [WEA
+K]
+  239 0000001A                 EXPORT           CAN1_RX1_IRQHandler        [WEA
+K]
+  240 0000001A                 EXPORT           CAN1_SCE_IRQHandler        [WEA
+K]
+  241 0000001A                 EXPORT           EXTI9_5_IRQHandler         [WEA
+K]
+  242 0000001A                 EXPORT           TIM1_BRK_IRQHandler        [WEA
+K]
+  243 0000001A                 EXPORT           TIM1_UP_IRQHandler         [WEA
+K]
+  244 0000001A                 EXPORT           TIM1_TRG_COM_IRQHandler    [WEA
+K]
+  245 0000001A                 EXPORT           TIM1_CC_IRQHandler         [WEA
+K]
+  246 0000001A                 EXPORT           TIM2_IRQHandler            [WEA
+K]
+  247 0000001A                 EXPORT           TIM3_IRQHandler            [WEA
+K]
+  248 0000001A                 EXPORT           TIM4_IRQHandler            [WEA
+K]
+  249 0000001A                 EXPORT           I2C1_EV_IRQHandler         [WEA
+K]
+  250 0000001A                 EXPORT           I2C1_ER_IRQHandler         [WEA
+K]
+  251 0000001A                 EXPORT           I2C2_EV_IRQHandler         [WEA
+K]
+  252 0000001A                 EXPORT           I2C2_ER_IRQHandler         [WEA
+K]
+  253 0000001A                 EXPORT           SPI1_IRQHandler            [WEA
+K]
+  254 0000001A                 EXPORT           SPI2_IRQHandler            [WEA
+K]
+  255 0000001A                 EXPORT           USART1_IRQHandler          [WEA
+K]
+  256 0000001A                 EXPORT           USART2_IRQHandler          [WEA
+K]
+  257 0000001A                 EXPORT           USART3_IRQHandler          [WEA
+K]
+  258 0000001A                 EXPORT           EXTI15_10_IRQHandler       [WEA
+K]
+  259 0000001A                 EXPORT           RTC_Alarm_IRQHandler        [WE
+AK]
+  260 0000001A                 EXPORT           USBWakeUp_IRQHandler       [WEA
+K]
+  261 0000001A                 EXPORT           TIM8_BRK_IRQHandler        [WEA
+K]
+  262 0000001A                 EXPORT           TIM8_UP_IRQHandler         [WEA
+K]
+  263 0000001A                 EXPORT           TIM8_TRG_COM_IRQHandler    [WEA
+
+
+
+ARM Macro Assembler    Page 8 
+
+
+K]
+  264 0000001A                 EXPORT           TIM8_CC_IRQHandler         [WEA
+K]
+  265 0000001A                 EXPORT           ADC3_IRQHandler            [WEA
+K]
+  266 0000001A                 EXPORT           FSMC_IRQHandler            [WEA
+K]
+  267 0000001A                 EXPORT           SDIO_IRQHandler            [WEA
+K]
+  268 0000001A                 EXPORT           TIM5_IRQHandler            [WEA
+K]
+  269 0000001A                 EXPORT           SPI3_IRQHandler            [WEA
+K]
+  270 0000001A                 EXPORT           UART4_IRQHandler           [WEA
+K]
+  271 0000001A                 EXPORT           UART5_IRQHandler           [WEA
+K]
+  272 0000001A                 EXPORT           TIM6_IRQHandler            [WEA
+K]
+  273 0000001A                 EXPORT           TIM7_IRQHandler            [WEA
+K]
+  274 0000001A                 EXPORT           DMA2_Channel1_IRQHandler   [WEA
+K]
+  275 0000001A                 EXPORT           DMA2_Channel2_IRQHandler   [WEA
+K]
+  276 0000001A                 EXPORT           DMA2_Channel3_IRQHandler   [WEA
+K]
+  277 0000001A                 EXPORT           DMA2_Channel4_5_IRQHandler [WEA
+K]
+  278 0000001A         
+  279 0000001A         WWDG_IRQHandler
+  280 0000001A         PVD_IRQHandler
+  281 0000001A         TAMPER_IRQHandler
+  282 0000001A         RTC_IRQHandler
+  283 0000001A         FLASH_IRQHandler
+  284 0000001A         RCC_IRQHandler
+  285 0000001A         EXTI0_IRQHandler
+  286 0000001A         EXTI1_IRQHandler
+  287 0000001A         EXTI2_IRQHandler
+  288 0000001A         EXTI3_IRQHandler
+  289 0000001A         EXTI4_IRQHandler
+  290 0000001A         DMA1_Channel1_IRQHandler
+  291 0000001A         DMA1_Channel2_IRQHandler
+  292 0000001A         DMA1_Channel3_IRQHandler
+  293 0000001A         DMA1_Channel4_IRQHandler
+  294 0000001A         DMA1_Channel5_IRQHandler
+  295 0000001A         DMA1_Channel6_IRQHandler
+  296 0000001A         DMA1_Channel7_IRQHandler
+  297 0000001A         ADC1_2_IRQHandler
+  298 0000001A         USB_HP_CAN1_TX_IRQHandler
+  299 0000001A         USB_LP_CAN1_RX0_IRQHandler
+  300 0000001A         CAN1_RX1_IRQHandler
+  301 0000001A         CAN1_SCE_IRQHandler
+  302 0000001A         EXTI9_5_IRQHandler
+  303 0000001A         TIM1_BRK_IRQHandler
+  304 0000001A         TIM1_UP_IRQHandler
+  305 0000001A         TIM1_TRG_COM_IRQHandler
+  306 0000001A         TIM1_CC_IRQHandler
+  307 0000001A         TIM2_IRQHandler
+
+
+
+ARM Macro Assembler    Page 9 
+
+
+  308 0000001A         TIM3_IRQHandler
+  309 0000001A         TIM4_IRQHandler
+  310 0000001A         I2C1_EV_IRQHandler
+  311 0000001A         I2C1_ER_IRQHandler
+  312 0000001A         I2C2_EV_IRQHandler
+  313 0000001A         I2C2_ER_IRQHandler
+  314 0000001A         SPI1_IRQHandler
+  315 0000001A         SPI2_IRQHandler
+  316 0000001A         USART1_IRQHandler
+  317 0000001A         USART2_IRQHandler
+  318 0000001A         USART3_IRQHandler
+  319 0000001A         EXTI15_10_IRQHandler
+  320 0000001A         RTC_Alarm_IRQHandler
+  321 0000001A         USBWakeUp_IRQHandler
+  322 0000001A         TIM8_BRK_IRQHandler
+  323 0000001A         TIM8_UP_IRQHandler
+  324 0000001A         TIM8_TRG_COM_IRQHandler
+  325 0000001A         TIM8_CC_IRQHandler
+  326 0000001A         ADC3_IRQHandler
+  327 0000001A         FSMC_IRQHandler
+  328 0000001A         SDIO_IRQHandler
+  329 0000001A         TIM5_IRQHandler
+  330 0000001A         SPI3_IRQHandler
+  331 0000001A         UART4_IRQHandler
+  332 0000001A         UART5_IRQHandler
+  333 0000001A         TIM6_IRQHandler
+  334 0000001A         TIM7_IRQHandler
+  335 0000001A         DMA2_Channel1_IRQHandler
+  336 0000001A         DMA2_Channel2_IRQHandler
+  337 0000001A         DMA2_Channel3_IRQHandler
+  338 0000001A         DMA2_Channel4_5_IRQHandler
+  339 0000001A E7FE            B                .
+  340 0000001C         
+  341 0000001C                 ENDP
+  342 0000001C         
+  343 0000001C                 ALIGN
+  344 0000001C         
+  345 0000001C         ;*******************************************************
+                       ************************
+  346 0000001C         ; User Stack and Heap initialization
+  347 0000001C         ;*******************************************************
+                       ************************
+  348 0000001C                 IF               :DEF:__MICROLIB
+  349 0000001C         
+  350 0000001C                 EXPORT           __initial_sp
+  351 0000001C                 EXPORT           __heap_base
+  352 0000001C                 EXPORT           __heap_limit
+  353 0000001C         
+  354 0000001C                 ELSE
+  369                          ENDIF
+  370 0000001C         
+  371 0000001C                 END
+              00000000 
+              00000000 
+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
+.\RTE\_EPD_2in66b_test -ID:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Inclu
+de -ID:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --predefine=
+"__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 526" --predefine="_RTE_
+
+
+
+ARM Macro Assembler    Page 10 
+
+
+ SETA 1" --predefine="STM32F10X_HD SETA 1" --list=startup_stm32f103xe.lst start
+up_stm32f103xe.s
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+Relocatable symbols
+
+STACK 00000000
+
+Symbol: STACK
+   Definitions
+      At line 52 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: STACK unused
+Stack_Mem 00000000
+
+Symbol: Stack_Mem
+   Definitions
+      At line 53 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: Stack_Mem unused
+__initial_sp 00001000
+
+Symbol: __initial_sp
+   Definitions
+      At line 54 in file startup_stm32f103xe.s
+   Uses
+      At line 77 in file startup_stm32f103xe.s
+      At line 350 in file startup_stm32f103xe.s
+
+3 symbols
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+Relocatable symbols
+
+HEAP 00000000
+
+Symbol: HEAP
+   Definitions
+      At line 62 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: HEAP unused
+Heap_Mem 00000000
+
+Symbol: Heap_Mem
+   Definitions
+      At line 64 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: Heap_Mem unused
+__heap_base 00000000
+
+Symbol: __heap_base
+   Definitions
+      At line 63 in file startup_stm32f103xe.s
+   Uses
+      At line 351 in file startup_stm32f103xe.s
+Comment: __heap_base used once
+__heap_limit 0000C000
+
+Symbol: __heap_limit
+   Definitions
+      At line 65 in file startup_stm32f103xe.s
+   Uses
+      At line 352 in file startup_stm32f103xe.s
+Comment: __heap_limit used once
+4 symbols
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+Relocatable symbols
+
+RESET 00000000
+
+Symbol: RESET
+   Definitions
+      At line 72 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: RESET unused
+__Vectors 00000000
+
+Symbol: __Vectors
+   Definitions
+      At line 77 in file startup_stm32f103xe.s
+   Uses
+      At line 73 in file startup_stm32f103xe.s
+      At line 157 in file startup_stm32f103xe.s
+
+__Vectors_End 00000130
+
+Symbol: __Vectors_End
+   Definitions
+      At line 155 in file startup_stm32f103xe.s
+   Uses
+      At line 74 in file startup_stm32f103xe.s
+      At line 157 in file startup_stm32f103xe.s
+
+3 symbols
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+Relocatable symbols
+
+.text 00000000
+
+Symbol: .text
+   Definitions
+      At line 159 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: .text unused
+ADC1_2_IRQHandler 0000001A
+
+Symbol: ADC1_2_IRQHandler
+   Definitions
+      At line 297 in file startup_stm32f103xe.s
+   Uses
+      At line 113 in file startup_stm32f103xe.s
+      At line 236 in file startup_stm32f103xe.s
+
+ADC3_IRQHandler 0000001A
+
+Symbol: ADC3_IRQHandler
+   Definitions
+      At line 326 in file startup_stm32f103xe.s
+   Uses
+      At line 142 in file startup_stm32f103xe.s
+      At line 265 in file startup_stm32f103xe.s
+
+BusFault_Handler 0000000E
+
+Symbol: BusFault_Handler
+   Definitions
+      At line 189 in file startup_stm32f103xe.s
+   Uses
+      At line 82 in file startup_stm32f103xe.s
+      At line 190 in file startup_stm32f103xe.s
+
+CAN1_RX1_IRQHandler 0000001A
+
+Symbol: CAN1_RX1_IRQHandler
+   Definitions
+      At line 300 in file startup_stm32f103xe.s
+   Uses
+      At line 116 in file startup_stm32f103xe.s
+      At line 239 in file startup_stm32f103xe.s
+
+CAN1_SCE_IRQHandler 0000001A
+
+Symbol: CAN1_SCE_IRQHandler
+   Definitions
+      At line 301 in file startup_stm32f103xe.s
+   Uses
+      At line 117 in file startup_stm32f103xe.s
+      At line 240 in file startup_stm32f103xe.s
+
+DMA1_Channel1_IRQHandler 0000001A
+
+Symbol: DMA1_Channel1_IRQHandler
+   Definitions
+      At line 290 in file startup_stm32f103xe.s
+   Uses
+
+
+
+ARM Macro Assembler    Page 2 Alphabetic symbol ordering
+Relocatable symbols
+
+      At line 106 in file startup_stm32f103xe.s
+      At line 229 in file startup_stm32f103xe.s
+
+DMA1_Channel2_IRQHandler 0000001A
+
+Symbol: DMA1_Channel2_IRQHandler
+   Definitions
+      At line 291 in file startup_stm32f103xe.s
+   Uses
+      At line 107 in file startup_stm32f103xe.s
+      At line 230 in file startup_stm32f103xe.s
+
+DMA1_Channel3_IRQHandler 0000001A
+
+Symbol: DMA1_Channel3_IRQHandler
+   Definitions
+      At line 292 in file startup_stm32f103xe.s
+   Uses
+      At line 108 in file startup_stm32f103xe.s
+      At line 231 in file startup_stm32f103xe.s
+
+DMA1_Channel4_IRQHandler 0000001A
+
+Symbol: DMA1_Channel4_IRQHandler
+   Definitions
+      At line 293 in file startup_stm32f103xe.s
+   Uses
+      At line 109 in file startup_stm32f103xe.s
+      At line 232 in file startup_stm32f103xe.s
+
+DMA1_Channel5_IRQHandler 0000001A
+
+Symbol: DMA1_Channel5_IRQHandler
+   Definitions
+      At line 294 in file startup_stm32f103xe.s
+   Uses
+      At line 110 in file startup_stm32f103xe.s
+      At line 233 in file startup_stm32f103xe.s
+
+DMA1_Channel6_IRQHandler 0000001A
+
+Symbol: DMA1_Channel6_IRQHandler
+   Definitions
+      At line 295 in file startup_stm32f103xe.s
+   Uses
+      At line 111 in file startup_stm32f103xe.s
+      At line 234 in file startup_stm32f103xe.s
+
+DMA1_Channel7_IRQHandler 0000001A
+
+Symbol: DMA1_Channel7_IRQHandler
+   Definitions
+      At line 296 in file startup_stm32f103xe.s
+   Uses
+      At line 112 in file startup_stm32f103xe.s
+      At line 235 in file startup_stm32f103xe.s
+
+DMA2_Channel1_IRQHandler 0000001A
+
+
+
+
+ARM Macro Assembler    Page 3 Alphabetic symbol ordering
+Relocatable symbols
+
+Symbol: DMA2_Channel1_IRQHandler
+   Definitions
+      At line 335 in file startup_stm32f103xe.s
+   Uses
+      At line 151 in file startup_stm32f103xe.s
+      At line 274 in file startup_stm32f103xe.s
+
+DMA2_Channel2_IRQHandler 0000001A
+
+Symbol: DMA2_Channel2_IRQHandler
+   Definitions
+      At line 336 in file startup_stm32f103xe.s
+   Uses
+      At line 152 in file startup_stm32f103xe.s
+      At line 275 in file startup_stm32f103xe.s
+
+DMA2_Channel3_IRQHandler 0000001A
+
+Symbol: DMA2_Channel3_IRQHandler
+   Definitions
+      At line 337 in file startup_stm32f103xe.s
+   Uses
+      At line 153 in file startup_stm32f103xe.s
+      At line 276 in file startup_stm32f103xe.s
+
+DMA2_Channel4_5_IRQHandler 0000001A
+
+Symbol: DMA2_Channel4_5_IRQHandler
+   Definitions
+      At line 338 in file startup_stm32f103xe.s
+   Uses
+      At line 154 in file startup_stm32f103xe.s
+      At line 277 in file startup_stm32f103xe.s
+
+DebugMon_Handler 00000014
+
+Symbol: DebugMon_Handler
+   Definitions
+      At line 203 in file startup_stm32f103xe.s
+   Uses
+      At line 89 in file startup_stm32f103xe.s
+      At line 204 in file startup_stm32f103xe.s
+
+Default_Handler 0000001A
+
+Symbol: Default_Handler
+   Definitions
+      At line 216 in file startup_stm32f103xe.s
+   Uses
+      None
+Comment: Default_Handler unused
+EXTI0_IRQHandler 0000001A
+
+Symbol: EXTI0_IRQHandler
+   Definitions
+      At line 285 in file startup_stm32f103xe.s
+   Uses
+      At line 101 in file startup_stm32f103xe.s
+      At line 224 in file startup_stm32f103xe.s
+
+
+
+ARM Macro Assembler    Page 4 Alphabetic symbol ordering
+Relocatable symbols
+
+
+EXTI15_10_IRQHandler 0000001A
+
+Symbol: EXTI15_10_IRQHandler
+   Definitions
+      At line 319 in file startup_stm32f103xe.s
+   Uses
+      At line 135 in file startup_stm32f103xe.s
+      At line 258 in file startup_stm32f103xe.s
+
+EXTI1_IRQHandler 0000001A
+
+Symbol: EXTI1_IRQHandler
+   Definitions
+      At line 286 in file startup_stm32f103xe.s
+   Uses
+      At line 102 in file startup_stm32f103xe.s
+      At line 225 in file startup_stm32f103xe.s
+
+EXTI2_IRQHandler 0000001A
+
+Symbol: EXTI2_IRQHandler
+   Definitions
+      At line 287 in file startup_stm32f103xe.s
+   Uses
+      At line 103 in file startup_stm32f103xe.s
+      At line 226 in file startup_stm32f103xe.s
+
+EXTI3_IRQHandler 0000001A
+
+Symbol: EXTI3_IRQHandler
+   Definitions
+      At line 288 in file startup_stm32f103xe.s
+   Uses
+      At line 104 in file startup_stm32f103xe.s
+      At line 227 in file startup_stm32f103xe.s
+
+EXTI4_IRQHandler 0000001A
+
+Symbol: EXTI4_IRQHandler
+   Definitions
+      At line 289 in file startup_stm32f103xe.s
+   Uses
+      At line 105 in file startup_stm32f103xe.s
+      At line 228 in file startup_stm32f103xe.s
+
+EXTI9_5_IRQHandler 0000001A
+
+Symbol: EXTI9_5_IRQHandler
+   Definitions
+      At line 302 in file startup_stm32f103xe.s
+   Uses
+      At line 118 in file startup_stm32f103xe.s
+      At line 241 in file startup_stm32f103xe.s
+
+FLASH_IRQHandler 0000001A
+
+Symbol: FLASH_IRQHandler
+   Definitions
+
+
+
+ARM Macro Assembler    Page 5 Alphabetic symbol ordering
+Relocatable symbols
+
+      At line 283 in file startup_stm32f103xe.s
+   Uses
+      At line 99 in file startup_stm32f103xe.s
+      At line 222 in file startup_stm32f103xe.s
+
+FSMC_IRQHandler 0000001A
+
+Symbol: FSMC_IRQHandler
+   Definitions
+      At line 327 in file startup_stm32f103xe.s
+   Uses
+      At line 143 in file startup_stm32f103xe.s
+      At line 266 in file startup_stm32f103xe.s
+
+HardFault_Handler 0000000A
+
+Symbol: HardFault_Handler
+   Definitions
+      At line 179 in file startup_stm32f103xe.s
+   Uses
+      At line 80 in file startup_stm32f103xe.s
+      At line 180 in file startup_stm32f103xe.s
+
+I2C1_ER_IRQHandler 0000001A
+
+Symbol: I2C1_ER_IRQHandler
+   Definitions
+      At line 311 in file startup_stm32f103xe.s
+   Uses
+      At line 127 in file startup_stm32f103xe.s
+      At line 250 in file startup_stm32f103xe.s
+
+I2C1_EV_IRQHandler 0000001A
+
+Symbol: I2C1_EV_IRQHandler
+   Definitions
+      At line 310 in file startup_stm32f103xe.s
+   Uses
+      At line 126 in file startup_stm32f103xe.s
+      At line 249 in file startup_stm32f103xe.s
+
+I2C2_ER_IRQHandler 0000001A
+
+Symbol: I2C2_ER_IRQHandler
+   Definitions
+      At line 313 in file startup_stm32f103xe.s
+   Uses
+      At line 129 in file startup_stm32f103xe.s
+      At line 252 in file startup_stm32f103xe.s
+
+I2C2_EV_IRQHandler 0000001A
+
+Symbol: I2C2_EV_IRQHandler
+   Definitions
+      At line 312 in file startup_stm32f103xe.s
+   Uses
+      At line 128 in file startup_stm32f103xe.s
+      At line 251 in file startup_stm32f103xe.s
+
+
+
+
+ARM Macro Assembler    Page 6 Alphabetic symbol ordering
+Relocatable symbols
+
+MemManage_Handler 0000000C
+
+Symbol: MemManage_Handler
+   Definitions
+      At line 184 in file startup_stm32f103xe.s
+   Uses
+      At line 81 in file startup_stm32f103xe.s
+      At line 185 in file startup_stm32f103xe.s
+
+NMI_Handler 00000008
+
+Symbol: NMI_Handler
+   Definitions
+      At line 174 in file startup_stm32f103xe.s
+   Uses
+      At line 79 in file startup_stm32f103xe.s
+      At line 175 in file startup_stm32f103xe.s
+
+PVD_IRQHandler 0000001A
+
+Symbol: PVD_IRQHandler
+   Definitions
+      At line 280 in file startup_stm32f103xe.s
+   Uses
+      At line 96 in file startup_stm32f103xe.s
+      At line 219 in file startup_stm32f103xe.s
+
+PendSV_Handler 00000016
+
+Symbol: PendSV_Handler
+   Definitions
+      At line 207 in file startup_stm32f103xe.s
+   Uses
+      At line 91 in file startup_stm32f103xe.s
+      At line 208 in file startup_stm32f103xe.s
+
+RCC_IRQHandler 0000001A
+
+Symbol: RCC_IRQHandler
+   Definitions
+      At line 284 in file startup_stm32f103xe.s
+   Uses
+      At line 100 in file startup_stm32f103xe.s
+      At line 223 in file startup_stm32f103xe.s
+
+RTC_Alarm_IRQHandler 0000001A
+
+Symbol: RTC_Alarm_IRQHandler
+   Definitions
+      At line 320 in file startup_stm32f103xe.s
+   Uses
+      At line 136 in file startup_stm32f103xe.s
+      At line 259 in file startup_stm32f103xe.s
+
+RTC_IRQHandler 0000001A
+
+Symbol: RTC_IRQHandler
+   Definitions
+      At line 282 in file startup_stm32f103xe.s
+
+
+
+ARM Macro Assembler    Page 7 Alphabetic symbol ordering
+Relocatable symbols
+
+   Uses
+      At line 98 in file startup_stm32f103xe.s
+      At line 221 in file startup_stm32f103xe.s
+
+Reset_Handler 00000000
+
+Symbol: Reset_Handler
+   Definitions
+      At line 162 in file startup_stm32f103xe.s
+   Uses
+      At line 78 in file startup_stm32f103xe.s
+      At line 163 in file startup_stm32f103xe.s
+
+SDIO_IRQHandler 0000001A
+
+Symbol: SDIO_IRQHandler
+   Definitions
+      At line 328 in file startup_stm32f103xe.s
+   Uses
+      At line 144 in file startup_stm32f103xe.s
+      At line 267 in file startup_stm32f103xe.s
+
+SPI1_IRQHandler 0000001A
+
+Symbol: SPI1_IRQHandler
+   Definitions
+      At line 314 in file startup_stm32f103xe.s
+   Uses
+      At line 130 in file startup_stm32f103xe.s
+      At line 253 in file startup_stm32f103xe.s
+
+SPI2_IRQHandler 0000001A
+
+Symbol: SPI2_IRQHandler
+   Definitions
+      At line 315 in file startup_stm32f103xe.s
+   Uses
+      At line 131 in file startup_stm32f103xe.s
+      At line 254 in file startup_stm32f103xe.s
+
+SPI3_IRQHandler 0000001A
+
+Symbol: SPI3_IRQHandler
+   Definitions
+      At line 330 in file startup_stm32f103xe.s
+   Uses
+      At line 146 in file startup_stm32f103xe.s
+      At line 269 in file startup_stm32f103xe.s
+
+SVC_Handler 00000012
+
+Symbol: SVC_Handler
+   Definitions
+      At line 198 in file startup_stm32f103xe.s
+   Uses
+      At line 88 in file startup_stm32f103xe.s
+      At line 199 in file startup_stm32f103xe.s
+
+SysTick_Handler 00000018
+
+
+
+ARM Macro Assembler    Page 8 Alphabetic symbol ordering
+Relocatable symbols
+
+
+Symbol: SysTick_Handler
+   Definitions
+      At line 211 in file startup_stm32f103xe.s
+   Uses
+      At line 92 in file startup_stm32f103xe.s
+      At line 212 in file startup_stm32f103xe.s
+
+TAMPER_IRQHandler 0000001A
+
+Symbol: TAMPER_IRQHandler
+   Definitions
+      At line 281 in file startup_stm32f103xe.s
+   Uses
+      At line 97 in file startup_stm32f103xe.s
+      At line 220 in file startup_stm32f103xe.s
+
+TIM1_BRK_IRQHandler 0000001A
+
+Symbol: TIM1_BRK_IRQHandler
+   Definitions
+      At line 303 in file startup_stm32f103xe.s
+   Uses
+      At line 119 in file startup_stm32f103xe.s
+      At line 242 in file startup_stm32f103xe.s
+
+TIM1_CC_IRQHandler 0000001A
+
+Symbol: TIM1_CC_IRQHandler
+   Definitions
+      At line 306 in file startup_stm32f103xe.s
+   Uses
+      At line 122 in file startup_stm32f103xe.s
+      At line 245 in file startup_stm32f103xe.s
+
+TIM1_TRG_COM_IRQHandler 0000001A
+
+Symbol: TIM1_TRG_COM_IRQHandler
+   Definitions
+      At line 305 in file startup_stm32f103xe.s
+   Uses
+      At line 121 in file startup_stm32f103xe.s
+      At line 244 in file startup_stm32f103xe.s
+
+TIM1_UP_IRQHandler 0000001A
+
+Symbol: TIM1_UP_IRQHandler
+   Definitions
+      At line 304 in file startup_stm32f103xe.s
+   Uses
+      At line 120 in file startup_stm32f103xe.s
+      At line 243 in file startup_stm32f103xe.s
+
+TIM2_IRQHandler 0000001A
+
+Symbol: TIM2_IRQHandler
+   Definitions
+      At line 307 in file startup_stm32f103xe.s
+   Uses
+
+
+
+ARM Macro Assembler    Page 9 Alphabetic symbol ordering
+Relocatable symbols
+
+      At line 123 in file startup_stm32f103xe.s
+      At line 246 in file startup_stm32f103xe.s
+
+TIM3_IRQHandler 0000001A
+
+Symbol: TIM3_IRQHandler
+   Definitions
+      At line 308 in file startup_stm32f103xe.s
+   Uses
+      At line 124 in file startup_stm32f103xe.s
+      At line 247 in file startup_stm32f103xe.s
+
+TIM4_IRQHandler 0000001A
+
+Symbol: TIM4_IRQHandler
+   Definitions
+      At line 309 in file startup_stm32f103xe.s
+   Uses
+      At line 125 in file startup_stm32f103xe.s
+      At line 248 in file startup_stm32f103xe.s
+
+TIM5_IRQHandler 0000001A
+
+Symbol: TIM5_IRQHandler
+   Definitions
+      At line 329 in file startup_stm32f103xe.s
+   Uses
+      At line 145 in file startup_stm32f103xe.s
+      At line 268 in file startup_stm32f103xe.s
+
+TIM6_IRQHandler 0000001A
+
+Symbol: TIM6_IRQHandler
+   Definitions
+      At line 333 in file startup_stm32f103xe.s
+   Uses
+      At line 149 in file startup_stm32f103xe.s
+      At line 272 in file startup_stm32f103xe.s
+
+TIM7_IRQHandler 0000001A
+
+Symbol: TIM7_IRQHandler
+   Definitions
+      At line 334 in file startup_stm32f103xe.s
+   Uses
+      At line 150 in file startup_stm32f103xe.s
+      At line 273 in file startup_stm32f103xe.s
+
+TIM8_BRK_IRQHandler 0000001A
+
+Symbol: TIM8_BRK_IRQHandler
+   Definitions
+      At line 322 in file startup_stm32f103xe.s
+   Uses
+      At line 138 in file startup_stm32f103xe.s
+      At line 261 in file startup_stm32f103xe.s
+
+TIM8_CC_IRQHandler 0000001A
+
+
+
+
+ARM Macro Assembler    Page 10 Alphabetic symbol ordering
+Relocatable symbols
+
+Symbol: TIM8_CC_IRQHandler
+   Definitions
+      At line 325 in file startup_stm32f103xe.s
+   Uses
+      At line 141 in file startup_stm32f103xe.s
+      At line 264 in file startup_stm32f103xe.s
+
+TIM8_TRG_COM_IRQHandler 0000001A
+
+Symbol: TIM8_TRG_COM_IRQHandler
+   Definitions
+      At line 324 in file startup_stm32f103xe.s
+   Uses
+      At line 140 in file startup_stm32f103xe.s
+      At line 263 in file startup_stm32f103xe.s
+
+TIM8_UP_IRQHandler 0000001A
+
+Symbol: TIM8_UP_IRQHandler
+   Definitions
+      At line 323 in file startup_stm32f103xe.s
+   Uses
+      At line 139 in file startup_stm32f103xe.s
+      At line 262 in file startup_stm32f103xe.s
+
+UART4_IRQHandler 0000001A
+
+Symbol: UART4_IRQHandler
+   Definitions
+      At line 331 in file startup_stm32f103xe.s
+   Uses
+      At line 147 in file startup_stm32f103xe.s
+      At line 270 in file startup_stm32f103xe.s
+
+UART5_IRQHandler 0000001A
+
+Symbol: UART5_IRQHandler
+   Definitions
+      At line 332 in file startup_stm32f103xe.s
+   Uses
+      At line 148 in file startup_stm32f103xe.s
+      At line 271 in file startup_stm32f103xe.s
+
+USART1_IRQHandler 0000001A
+
+Symbol: USART1_IRQHandler
+   Definitions
+      At line 316 in file startup_stm32f103xe.s
+   Uses
+      At line 132 in file startup_stm32f103xe.s
+      At line 255 in file startup_stm32f103xe.s
+
+USART2_IRQHandler 0000001A
+
+Symbol: USART2_IRQHandler
+   Definitions
+      At line 317 in file startup_stm32f103xe.s
+   Uses
+      At line 133 in file startup_stm32f103xe.s
+
+
+
+ARM Macro Assembler    Page 11 Alphabetic symbol ordering
+Relocatable symbols
+
+      At line 256 in file startup_stm32f103xe.s
+
+USART3_IRQHandler 0000001A
+
+Symbol: USART3_IRQHandler
+   Definitions
+      At line 318 in file startup_stm32f103xe.s
+   Uses
+      At line 134 in file startup_stm32f103xe.s
+      At line 257 in file startup_stm32f103xe.s
+
+USBWakeUp_IRQHandler 0000001A
+
+Symbol: USBWakeUp_IRQHandler
+   Definitions
+      At line 321 in file startup_stm32f103xe.s
+   Uses
+      At line 137 in file startup_stm32f103xe.s
+      At line 260 in file startup_stm32f103xe.s
+
+USB_HP_CAN1_TX_IRQHandler 0000001A
+
+Symbol: USB_HP_CAN1_TX_IRQHandler
+   Definitions
+      At line 298 in file startup_stm32f103xe.s
+   Uses
+      At line 114 in file startup_stm32f103xe.s
+      At line 237 in file startup_stm32f103xe.s
+
+USB_LP_CAN1_RX0_IRQHandler 0000001A
+
+Symbol: USB_LP_CAN1_RX0_IRQHandler
+   Definitions
+      At line 299 in file startup_stm32f103xe.s
+   Uses
+      At line 115 in file startup_stm32f103xe.s
+      At line 238 in file startup_stm32f103xe.s
+
+UsageFault_Handler 00000010
+
+Symbol: UsageFault_Handler
+   Definitions
+      At line 194 in file startup_stm32f103xe.s
+   Uses
+      At line 83 in file startup_stm32f103xe.s
+      At line 195 in file startup_stm32f103xe.s
+
+WWDG_IRQHandler 0000001A
+
+Symbol: WWDG_IRQHandler
+   Definitions
+      At line 279 in file startup_stm32f103xe.s
+   Uses
+      At line 95 in file startup_stm32f103xe.s
+      At line 218 in file startup_stm32f103xe.s
+
+72 symbols
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+Absolute symbols
+
+Heap_Size 0000C000
+
+Symbol: Heap_Size
+   Definitions
+      At line 60 in file startup_stm32f103xe.s
+   Uses
+      At line 64 in file startup_stm32f103xe.s
+Comment: Heap_Size used once
+Stack_Size 00001000
+
+Symbol: Stack_Size
+   Definitions
+      At line 50 in file startup_stm32f103xe.s
+   Uses
+      At line 53 in file startup_stm32f103xe.s
+Comment: Stack_Size used once
+__Vectors_Size 00000130
+
+Symbol: __Vectors_Size
+   Definitions
+      At line 157 in file startup_stm32f103xe.s
+   Uses
+      At line 75 in file startup_stm32f103xe.s
+Comment: __Vectors_Size used once
+3 symbols
+
+
+
+ARM Macro Assembler    Page 1 Alphabetic symbol ordering
+External symbols
+
+SystemInit 00000000
+
+Symbol: SystemInit
+   Definitions
+      At line 165 in file startup_stm32f103xe.s
+   Uses
+      At line 166 in file startup_stm32f103xe.s
+Comment: SystemInit used once
+__main 00000000
+
+Symbol: __main
+   Definitions
+      At line 164 in file startup_stm32f103xe.s
+   Uses
+      At line 168 in file startup_stm32f103xe.s
+Comment: __main used once
+2 symbols
+423 symbols in table

+ 160 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_2in13g_test.c

@@ -0,0 +1,160 @@
+/*****************************************************************************
+* | File      	:   EPD_2IN13G_test.c
+* | Author      :   Waveshare team
+* | Function    :   2.13inch e-paper (G) test demo
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-05-24
+* | 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_2in13g.h"
+
+int EPD_test(void)
+{
+    printf("EPD_2IN13G_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+    EPD_2IN13G_Init();
+    EPD_2IN13G_Clear(EPD_2IN13G_WHITE);
+    DEV_Delay_ms(2000);
+
+    //Create a new image cache
+    UBYTE *BlackImage,*BlackImage1;
+    /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */
+    UWORD Imagesize = ((EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1)) * EPD_2IN13G_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    if((BlackImage1 = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 90, EPD_2IN13G_WHITE);
+    Paint_SetScale(4);
+		Paint_NewImage(BlackImage1, EPD_2IN13G_WIDTH, EPD_2IN13G_HEIGHT, 0, EPD_2IN13G_WHITE);
+    Paint_SetScale(4);
+
+#if 1   // show image for array
+    printf("show image for array\r\n");
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(EPD_2IN13G_WHITE);
+    Paint_DrawBitMap(gImage_2in13g);
+		EPD_2IN13G_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_2IN13G_WHITE);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, EPD_2IN13G_RED, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, EPD_2IN13G_YELLOW, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, EPD_2IN13G_BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, EPD_2IN13G_RED, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "Red, yellow, white and black", &Font16, EPD_2IN13G_RED, EPD_2IN13G_YELLOW);
+    Paint_DrawString_EN(10, 35, "Four color e-Paper", &Font12, EPD_2IN13G_YELLOW, EPD_2IN13G_BLACK);
+    Paint_DrawString_CN(10, 125, "΢ѩµç×Ó", &Font24CN, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
+    Paint_DrawNum(10, 50, 123456, &Font12, EPD_2IN13G_RED, EPD_2IN13G_WHITE);
+
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_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_2IN13G_WHITE);
+
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawRectangle(1, 1, 168, 55, EPD_2IN13G_RED, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(1, 112, 167, 167, EPD_2IN13G_YELLOW, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawRectangle(59, 1, 109, 167, EPD_2IN13G_BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_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_2IN13G_WHITE);
+
+    int hNumber, hWidth, vNumber, vWidth;
+    hNumber = 8;
+	hWidth = EPD_2IN13G_HEIGHT/hNumber; // 168/16=21
+    vNumber = 8;
+	vWidth = EPD_2IN13G_WIDTH/vNumber; // 168/16=21
+
+    // 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_2IN13G_WIDTH, hWidth*(1+i), EPD_2IN13G_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_2IN13G_HEIGHT, EPD_2IN13G_YELLOW + (i/2%2), DOT_PIXEL_1X1, DRAW_FILL_FULL);
+        }
+	}
+
+    printf("EPD_Display\r\n");
+    EPD_2IN13G_Display(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+    printf("Clear...\r\n");
+    EPD_2IN13G_Clear(EPD_2IN13G_WHITE);
+
+    printf("Goto Sleep...\r\n");
+    EPD_2IN13G_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;
+}
+

+ 1 - 0
STM32/STM32-F103ZET6/User/Examples/ImageData.h

@@ -34,6 +34,7 @@
 
 // ImageData2.c
 /* --------------------------------------- */
+extern const unsigned char gImage_2in13g[];
 extern const unsigned char gImage_2in13b_V4b[];
 extern const unsigned char gImage_2in13b_V4r[];
 

+ 486 - 0
STM32/STM32-F103ZET6/User/Examples/ImageData2.c

@@ -30,6 +30,492 @@
 ******************************************************************************/
 
 #include "ImageData.h"
+const unsigned char gImage_2in13g[7750] = {
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,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,0x7F,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,0x7F,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,0x7F,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,
+0x7F,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,0x7F,
+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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0xD7,0xF5,0x55,
+0x55,0x55,0x55,0x55,0x75,0x75,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x55,0x75,0xFF,0x7F,0x55,0x55,
+0x55,0x55,0x55,0x75,0xF5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x55,0x57,0xFF,0xFF,0x55,0x55,0x55,0x55,0x55,0x79,0xDF,0xD7,0xD5,0x55,0x55,
+0x55,0x7F,0xF5,0x7D,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0xFD,0xD5,0xF5,0x55,0x55,0x55,0x55,
+0x7F,0xFD,0x7F,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
+0x57,0x55,0x7D,0xF5,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,
+0x5D,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
+0x55,0x7D,0x7D,0x55,0x55,0x55,0x55,0xFF,0xFF,0xFD,0x55,0x55,0x55,0x55,0x5D,0x5F,
+0xD7,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
+0x7D,0x5F,0x55,0x55,0x55,0x55,0xFF,0xFD,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7F,0x57,
+0x75,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,
+0x7D,0x55,0x55,0x55,0x55,0x5B,0x7D,0xDD,0xD5,0x55,0x55,0x55,0x5D,0x75,0xD7,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,0x7D,0xF5,
+0x55,0x55,0x55,0x55,0x7F,0xFD,0xDF,0xD5,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5F,0xFF,0xD5,0x55,
+0x55,0x55,0x55,0x5F,0x7D,0xDD,0x55,0x55,0x55,0x55,0x5D,0x7D,0xF7,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x55,0x5F,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFD,0xDD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x7F,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xF5,0x5F,0x55,0x55,0x55,0x55,
+0x55,0xFF,0xFD,0xFD,0x55,0x55,0x55,0x55,0x7F,0xF5,0x5F,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFD,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x55,0x55,0x57,0xFD,0x55,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,
+0x55,0x55,0x55,0x55,0x55,0xF5,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x57,0xFF,0xFF,0xD5,0x55,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xF7,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x57,0xFF,0xFF,0xFF,0x55,0x55,0x55,0x55,0x57,0xFD,0xFF,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x57,0xFD,0xD7,0x55,0x55,0x55,
+0x55,0x55,0x7D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,0x55,0x57,0x7D,0xD7,0x55,0x55,0x55,0x55,
+0x57,0x6D,0xF5,0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,
+0x57,0xD5,0xFD,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x57,
+0xF5,0xFD,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,
+0x5F,0xF5,0xD5,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x5D,
+0x7F,0xF5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0x5D,
+0x55,0xDF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7D,0x55,0x5F,
+0xD5,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,
+0xFF,0x55,0x55,0x55,0x55,0xF7,0x7D,0xD7,0x55,0x55,0x55,0x55,0x7F,0xFF,0xDF,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x55,0xFF,0x55,0xD5,
+0x55,0x55,0x55,0x55,0xFF,0x7D,0xD7,0x55,0x55,0x55,0x55,0x5F,0xFF,0xDF,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xDF,0xFD,0xD5,0x55,
+0x55,0x55,0x55,0x7F,0x7D,0xFF,0x55,0x55,0x55,0x55,0x55,0x7D,0xDF,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0xD5,0x55,0x55,
+0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x55,0xFD,0xFF,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x55,0x57,0xD5,0x55,0xD5,0x55,0x55,0x55,
+0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0x55,0x57,0xD5,0x5F,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x7D,0x5F,0x55,0x55,
+0x55,0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x55,0x57,0xD5,0x7D,0x55,0x55,0x55,0x55,0x55,0x75,0x5F,0x55,0x55,0x55,
+0x55,0x55,0x5F,0x57,0xD5,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x50,
+0x15,0x55,0x55,0x75,0x50,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x05,0x55,0x40,0x55,0x55,0x57,0x55,0x55,0x55,0x54,0x15,
+0x55,0x55,0x75,0x50,0x15,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x54,0x05,0x55,
+0x55,0x75,0x50,0x05,0x55,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x00,0x15,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,
+0x75,0x50,0x01,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x10,0x05,0x54,0x15,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
+0x51,0x40,0x55,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x15,0x01,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
+0x50,0x15,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x15,0x40,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x54,
+0x00,0x01,0x55,0x7F,0xFF,0xEA,0xAA,0xAA,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,
+0x50,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,
+0x05,0x55,0x7F,0xFF,0xAA,0xAA,0xAA,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x55,
+0x05,0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x50,0x55,0x50,0x55,
+0x55,0x7F,0xFF,0xAF,0xFF,0xEE,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x50,0x55,0x55,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xAF,0xFF,0xEF,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x41,0x54,0x15,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xAF,0xFF,0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,
+0x57,0x55,0x45,0x50,0x05,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xAF,0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,0x55,0x57,
+0x55,0x41,0x54,0x01,0x05,0x55,0x55,0x75,0x50,0x15,0x55,0x55,0x55,0x7F,0xFF,0xAF,
+0xAF,0xEF,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x00,0x05,0x55,0x57,0x55,
+0x41,0x50,0x40,0x05,0x55,0x55,0x75,0x50,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAF,
+0xEF,0xEA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x00,0x05,0x55,0x57,0x55,0x41,
+0x40,0x50,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAB,0xEF,
+0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x05,0x05,0x55,0x57,0x55,0x40,0x00,
+0x54,0x05,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAF,0xAA,0xAE,0xAF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x50,0x01,0x55,
+0x05,0x55,0x55,0x75,0x55,0x55,0x54,0x05,0x55,0x7F,0xFF,0xAF,0xEA,0xAA,0xBF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x05,0x55,0x7F,0xFF,0xAB,0xFF,0xFA,0xBF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x01,0x55,0x7F,0xFF,0xAA,0xBF,0xEA,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x05,0x55,0x55,0x55,0x55,
+0x75,0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xEA,0xBF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x55,0x55,0x55,0x55,0x75,
+0x50,0x00,0x00,0x01,0x55,0x7F,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x50,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x00,0x05,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x10,0x41,0x05,0x05,0x55,0x57,0x55,0x54,0x14,0x00,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
+0x41,0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x41,
+0x00,0x05,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,0x75,0x54,0x15,0x55,0x41,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,
+0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x54,0x05,0x55,0x41,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x41,0x55,0x55,
+0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x50,0x15,0x05,0x41,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x01,0x41,0x55,0x7F,0xFF,
+0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x55,0x00,0x41,0x55,0x7F,0xFE,0xAA,
+0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x55,0x55,0x55,0x57,0x55,
+0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x50,0x54,0x10,0x01,0x55,0x7F,0xFF,0xEA,0xAA,
+0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,0x55,0x54,
+0x05,0x55,0x55,0x55,0x55,0x75,0x50,0x10,0x14,0x01,0x55,0x7F,0xFF,0xFF,0xAA,0xAA,
+0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x54,0x05,0x55,0x55,0x57,0x55,0x54,0x00,
+0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x15,0x01,0x55,0x7F,0xFF,0xFA,0xFF,0xFB,0xEB,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x05,0x55,0x55,0x57,0x55,0x54,0x00,0x05,
+0x55,0x55,0x55,0x75,0x55,0x00,0x55,0x41,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x41,0x55,0x55,0x57,0x55,0x54,0x14,0x00,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xBB,0xEB,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x55,0x50,0x40,0x55,0x55,0x57,0x55,0x54,0x15,0x40,0x05,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xAB,0xEB,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x55,0x50,0x50,0x15,0x55,0x57,0x55,0x54,0x15,0x54,0x05,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFB,0xEA,0xEB,0xBF,0xFF,0xFF,0x55,
+0x5D,0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFA,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,
+0x54,0x50,0x50,0x55,0x05,0x55,0x57,0x55,0x40,0x00,0x00,0x05,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xAA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,
+0x50,0x50,0x54,0x05,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,0xBB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,
+0x50,0x50,0x55,0x55,0x57,0x55,0x54,0x15,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x00,
+0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x00,0x01,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x05,0x55,
+0x55,0x57,0x55,0x50,0x05,0x51,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,
+0xFF,0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x01,0x54,0x15,0x55,0x55,
+0x57,0x55,0x50,0x01,0x00,0x15,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,0x7F,0xFF,
+0xFA,0xFA,0xFB,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x50,0x15,0x55,0x55,0x57,
+0x55,0x41,0x40,0x00,0x05,0x55,0x55,0x75,0x41,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFA,
+0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x41,0x50,0x15,0x05,0x55,0x55,0x75,0x40,0x40,0x01,0x41,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,
+0x50,0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,
+0x55,0x05,0x55,0x55,0x75,0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x41,0x50,0x14,
+0x05,0x55,0x55,0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x40,0x00,0x00,0x05,
+0x55,0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x01,0x00,0x15,0x55,
+0x55,0x75,0x55,0x00,0x00,0x41,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x50,0x15,0x55,0x55,0x55,0x55,
+0x75,0x54,0x05,0x41,0x41,0x55,0x7F,0xFF,0xEB,0xFB,0xEA,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x50,0x41,0x41,0x00,0x55,0x7F,0xFF,0xEA,0xEA,0xFA,0xAF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x40,0x05,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,
+0x41,0x41,0x00,0x55,0x7F,0xFF,0xFA,0xEA,0xAB,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x00,0x00,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x40,
+0x01,0x41,0x55,0x7F,0xFF,0xFA,0xEF,0xAB,0xFA,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x05,
+0x00,0x05,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x40,0x01,
+0x41,0x55,0x7F,0xFF,0xEA,0xFA,0xEA,0xBF,0xBF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,
+0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,
+0x55,0x7F,0xFF,0xAA,0xBF,0xFE,0xBF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x40,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x41,0x55,0x41,0x55,
+0x7F,0xFF,0xFA,0xAA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x50,0x54,0x15,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFA,0xAA,0xAB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x40,0x55,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xAA,0xAA,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x01,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,
+0xAF,0xBE,0xEB,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x01,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,0xEA,0xAA,
+0xBE,0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x14,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,
+0xEA,0xBF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x04,0x15,0x55,0x7F,0xFF,0xFF,0xAF,0xBE,0xEA,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x54,0x04,0x15,0x55,0x7F,0xFF,0xEA,0xAA,0xBE,0xEB,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x40,0x14,0x15,0x55,0x7F,0xFF,0xEF,0xAF,0xBE,0xEB,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x50,0x04,0x00,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x41,0x54,0x15,0x55,0x7F,0xFF,0xAF,0xAF,0xBE,0xAB,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x50,0x04,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x41,0x50,0x54,0x15,0x55,0x7F,0xFF,0xAA,0xAA,0xBE,0xAB,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x15,0x45,0x55,0x01,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x15,0x45,0x41,0x45,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
+0x55,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x05,0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,
+0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,
+0x45,0x41,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
+0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x45,
+0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x00,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x05,0x44,0x00,
+0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x15,0x44,0x10,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x15,0x44,0x14,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x54,0x15,0x55,0x7F,0xFF,
+0xFF,0xFA,0xFF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x04,0x14,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFE,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x04,0x14,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xAA,0xAA,
+0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x54,0x01,0x05,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xEB,0xFF,0xEA,
+0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x55,0x55,0x01,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xEB,0xFF,0xEF,0xEA,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,0xFF,0xEA,0xAA,0xAF,0xFA,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x14,0x11,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x14,0x44,0x40,0x55,0x7F,0xFF,0xFF,0xAF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x14,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,
+0x5D,0x54,0x14,0x14,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x04,0x44,0x50,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,
+0x54,0x04,0x15,0x00,0x05,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,
+0x04,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xAF,0xAA,0xBA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x04,0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x04,
+0x00,0x00,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,
+0x10,0x54,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,
+0x50,0x55,0x7F,0xFF,0xAF,0xAF,0xBF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x10,
+0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x00,0x44,0x00,
+0x55,0x7F,0xFF,0xAF,0xAF,0xAF,0xFA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x04,0x00,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x40,0x55,
+0x7F,0xFF,0xAF,0xFF,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x05,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x14,0x44,0x50,0x55,0x7F,
+0xFF,0xAA,0xAA,0xAA,0xAA,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x10,0x44,0x00,0x55,0x7F,0xFF,
+0xEA,0xAA,0xBF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x40,0x14,0x00,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x44,0x00,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x04,0x14,0x14,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x04,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x04,0x14,0x14,0x15,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x14,0x14,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x50,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x14,0x15,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x54,0x15,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x05,0x50,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x40,0x10,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x41,0x50,0x00,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,
+0x55,0x40,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x41,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,
+0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x00,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x00,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x51,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x50,0x01,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x15,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x40,0x41,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x01,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x41,0x50,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x00,0x15,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x05,0x54,0x05,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x50,0x01,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x05,0x54,0x15,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x00,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x54,0x15,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x50,0x55,0x50,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x00,0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x41,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x40,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x54,0x00,0x00,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x54,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x45,0x04,
+0x14,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x01,0x04,0x14,
+0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x00,0x00,
+0x00,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x50,0x00,0x00,0x10,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x45,
+0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x54,0x00,0x00,0x10,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x55,0x45,0x15,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x10,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x40,0x00,0x00,0x10,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x04,0x10,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x54,0x10,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x04,0x14,0x00,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x54,0x50,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x05,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x54,0x00,0x51,0x45,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x54,0x10,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x50,0x50,0x51,0x40,0x15,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x50,0x50,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,
+0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,
+0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,
+0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,
+0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,
+0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,
+0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,
+0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
+0x75,0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,
+0x5D,0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,
+0x55,0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,
+0x55,0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,
+0x55,0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,
+0x55,0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,
+0x55,0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,
+0x55,0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,
+0x55,0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,
+0x55,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,
+0x55,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,
+0x55,0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,
+0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,
+0x55,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x55,0x5D,0x55,0x55,0x55,0x55,0x55,0x55,
+0x57,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x55,0x55,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,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,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};
 
 
 const unsigned char gImage_2in13b_V4b[4000] = { /*0X00,0X01,0X7A,0X00,0XFA,0X00,*/

+ 237 - 0
STM32/STM32-F103ZET6/User/e-Paper/EPD_2in13g.c

@@ -0,0 +1,237 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.c
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-04-07
+* | 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_2in13g.h"
+#include "Debug.h" 
+
+UWORD Source_BITS = EPD_2IN13G_WIDTH;
+UWORD Gate_BITS = EPD_2IN13G_HEIGHT;
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_2IN13G_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(200);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_2IN13G_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_2IN13G_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 HIGH
+parameter:
+******************************************************************************/
+void EPD_2IN13G_ReadBusy(void)
+{
+    Debug("e-Paper busy\r\n");
+    DEV_Delay_ms(100);
+    while(DEV_Digital_Read(EPD_BUSY_PIN) != 1) {      //HIGH: idle, LOW: busy
+        DEV_Delay_ms(100);
+    }
+    Debug("e-Paper busy release\r\n");
+}
+
+/******************************************************************************
+function :	Turn On Display
+parameter:
+******************************************************************************/
+static void EPD_2IN13G_TurnOnDisplay(void)
+{
+
+    EPD_2IN13G_SendCommand(0x12); // DISPLAY_REFRESH
+    EPD_2IN13G_SendData(0x00);
+    EPD_2IN13G_ReadBusy();
+
+}
+
+/******************************************************************************
+function :	Setting the display window
+parameter:
+******************************************************************************/
+static void EPD_2IN9_V2_SetWindows(void)
+{
+    if(EPD_2IN13G_WIDTH < 128)
+        Source_BITS = 128;
+
+    EPD_2IN13G_SendCommand(0x61); //TRES
+    EPD_2IN13G_SendData(Source_BITS/256);		// EPD_2IN13G_WIDTH_H
+    EPD_2IN13G_SendData(Source_BITS%256);		// EPD_2IN13G_WIDTH_L
+    EPD_2IN13G_SendData(Gate_BITS/256);			// EPD_2IN13G_HEIGHT_H
+    EPD_2IN13G_SendData(Gate_BITS%256); 		// EPD_2IN13G_HEIGHT_L	
+}
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Init(void)
+{
+    EPD_2IN13G_Reset();
+
+    EPD_2IN13G_ReadBusy();
+    EPD_2IN13G_SendCommand(0x4D);
+    EPD_2IN13G_SendData(0x78);
+
+    EPD_2IN13G_SendCommand(0x00);	//PSR
+    EPD_2IN13G_SendData(0x0F);
+    EPD_2IN13G_SendData(0x29);
+
+    EPD_2IN13G_SendCommand(0x01);	//PWRR
+    EPD_2IN13G_SendData(0x07);
+    EPD_2IN13G_SendData(0x00);
+
+    EPD_2IN13G_SendCommand(0x03);	//POFS
+    EPD_2IN13G_SendData(0x10);
+    EPD_2IN13G_SendData(0x54);
+    EPD_2IN13G_SendData(0x44);
+
+    EPD_2IN13G_SendCommand(0x06);	//BTST_P
+    EPD_2IN13G_SendData(0x05);
+    EPD_2IN13G_SendData(0x00);
+    EPD_2IN13G_SendData(0x3F);
+    EPD_2IN13G_SendData(0x0A);
+    EPD_2IN13G_SendData(0x25);
+    EPD_2IN13G_SendData(0x12);
+    EPD_2IN13G_SendData(0x1A); 
+
+    EPD_2IN13G_SendCommand(0x50);	//CDI
+    EPD_2IN13G_SendData(0x37);
+
+    EPD_2IN13G_SendCommand(0x60);	//TCON
+    EPD_2IN13G_SendData(0x02);
+    EPD_2IN13G_SendData(0x02);
+
+    EPD_2IN9_V2_SetWindows();  // Setting the display window
+
+    EPD_2IN13G_SendCommand(0xE7);
+    EPD_2IN13G_SendData(0x1C);
+
+    EPD_2IN13G_SendCommand(0xE3);	
+    EPD_2IN13G_SendData(0x22);
+
+    EPD_2IN13G_SendCommand(0xB4);
+    EPD_2IN13G_SendData(0xD0);
+    EPD_2IN13G_SendCommand(0xB5);
+    EPD_2IN13G_SendData(0x03);
+
+    EPD_2IN13G_SendCommand(0xE9);
+    EPD_2IN13G_SendData(0x01); 
+
+    EPD_2IN13G_SendCommand(0x30);
+    EPD_2IN13G_SendData(0x08);  
+
+    EPD_2IN13G_SendCommand(0x04);
+    EPD_2IN13G_ReadBusy(); 
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Clear(UBYTE color)
+{
+    UWORD Width, Height;
+    Width = Source_BITS / 4 ;
+    Height = EPD_2IN13G_HEIGHT;
+
+    EPD_2IN13G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_2IN13G_SendData((color << 6) | (color << 4) | (color << 2) | color);
+        }
+    }
+
+    EPD_2IN13G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Display(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_2IN13G_WIDTH % 4 == 0)? (EPD_2IN13G_WIDTH / 4 ): (EPD_2IN13G_WIDTH / 4 + 1);
+    Height = EPD_2IN13G_HEIGHT;
+
+    EPD_2IN13G_SendCommand(0x10);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < (Source_BITS / 4); i++) {
+            if(i < 31 ) EPD_2IN13G_SendData(Image[i + j * Width]);
+            else EPD_2IN13G_SendData(0x00);
+        }
+    }
+
+    EPD_2IN13G_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_2IN13G_Sleep(void)
+{
+    EPD_2IN13G_SendCommand(0x02); //power off
+    EPD_2IN13G_ReadBusy();       //waiting for the electronic paper IC to release the idle signal
+    DEV_Delay_ms(100);           //!!!The delay here is necessary,100mS at least!!! 
+    
+    EPD_2IN13G_SendCommand(0x07);  //deep sleep
+    EPD_2IN13G_SendData(0XA5);
+}

+ 32 - 0
STM32/STM32-F103ZET6/User/e-Paper/EPD_2in13g.h

@@ -0,0 +1,32 @@
+/*****************************************************************************
+* | File      	:   EPD_2in13g.h
+* | Author      :   Waveshare team
+* | Function    :   2inch13 e-paper (G)
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2023-04-07
+* | Info        :
+* -----------------------------------------------------------------------------
+******************************************************************************/
+#ifndef __EPD_2IN13G_H_
+#define __EPD_2IN13G_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_2IN13G_WIDTH       122
+#define EPD_2IN13G_HEIGHT      250
+
+// Color
+#define  EPD_2IN13G_BLACK   0x0
+#define  EPD_2IN13G_WHITE   0x1
+#define  EPD_2IN13G_YELLOW  0x2
+#define  EPD_2IN13G_RED     0x3
+
+void EPD_2IN13G_Init(void);
+void EPD_2IN13G_Clear(UBYTE color);
+void EPD_2IN13G_Display(UBYTE *Image);
+void EPD_2IN13G_Sleep(void);
+
+#endif

+ 2 - 1
Version_CN.txt

@@ -34,4 +34,5 @@
 2022-08-16:添加新程序4.37inch e-Paper (G)例程。
 2022-08-17:添加新程序2.36inch e-Paper (G)例程。
 2022-10-22:添加新程序7.3inch e-Paper (F)例程。
-2022-10-27:添加新程序2.7inch V2 e-Paper 例程。
+2022-10-27:添加新程序2.7inch V2 e-Paper 例程。
+2023-05-29:添加新程序2.13inch e-Paper  (G)例程。

+ 2 - 1
Version_EN.txt

@@ -33,4 +33,5 @@
 2022-08-16: Added new programs 4.37inch e-Paper (G) routine.
 2022-08-17: Added new programs 2.36inch e-Paper (G) routine.
 2022-10-22: Added new programs 7.3inch e-Paper (F) routine.
-2022-10-27: Added new programs 2.7inch V2 e-Paper routine.
+2022-10-27: Added new programs 2.7inch V2 e-Paper routine.
+2023-05-29: Added new programs 2.13inch e-Paper (G) routine.

Некоторые файлы не были показаны из-за большого количества измененных файлов