SEGGER emwin Graphic Library (emwingraphics)



Similar documents
PSoC Creator Component Data Sheet. Calculation accuracy 0.01 C for -200 C to 850 C temperature range

Digital Multiplexer and Demultiplexer. Features. General Description. Input/Output Connections. When to Use a Multiplexer. Multiplexer 1.

Thermistor Calculator. Features. General Description. Input/Output Connections. When to use a Thermistor Calculator 1.10

Scanning Comparator (ScanComp) Features. General Description. Input/Output Connections. When to Use a Scanning Comparator. clock - Digital Input* 1.

PSoC Programmer Release Notes

PSoC Programmer Release Notes

DESIGNING SECURE USB-BASED DONGLES

PSoC Programmer Release Notes

Designing an efficient Programmable Logic Controller using Programmable System On Chip

Using the FX3 SDK on Linux Platforms

PSoC Programmer Release Notes

UM0985 User manual. Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench software. Introduction

ZigBee-2.4-DK 2.4 GHZ ZIGBEE DEVELOPMENT KIT USER S GUIDE. 1. Kit Contents. Figure GHz ZigBee Development Kit

Bandwidth Calculations for SA-1100 Processor LCD Displays

Building and Debugging a project using Keil MDK-ARM Eclipse plug-in

AN LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode

AN2358. Manchester Decoder Using PSoC 1. Introduction. Contents. Manchester Code Principle

CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start

AN10866 LPC1700 secondary USB bootloader

PC Base Adapter Daughter Card UART GPIO. Figure 1. ToolStick Development Platform Block Diagram

UM0834 User manual. Developing and debugging your STM8S-DISCOVERY application code. Introduction. Reference documents

CAPACITIVE SENSING MADE EASY, Part 2 Design Guidelines

How To Develop A Toolstick

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0

AN LPC1700 RTC hardware auto calibration. Document information. RTC, Hardware Auto Calibration, LPC1700, Graphic LCD

AN3998 Application note

UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction

32-bit AVR UC3 Microcontrollers. 32-bit AtmelAVR Application Note. AVR32769: How to Compile the standalone AVR32 Software Framework in AVR32 Studio V2

December 2002, ver. 1.0 Application Note 285. This document describes the Excalibur web server demonstration design and includes the following topics:

AT88CK490 Evaluation Kit

Intel 810 and 815 Chipset Family Dynamic Video Memory Technology

1-Mbit (128K x 8) Static RAM

Developing an Application on Core8051s IP-Based Embedded Processor System Using Firmware Catalog Drivers. User s Guide

UG103.8 APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS

UM1790 User manual. Getting started with STM32L053 discovery kit software development tools. Introduction

AVR1900: Getting started with ATxmega128A1 on STK bit Microcontrollers. Application Note. 1 Introduction

UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction

AN4323 Application note

AN10860_1. Contact information. NXP Semiconductors. LPC313x NAND flash data and bad block management

Block 3 Size 0 KB 0 KB 16KB 32KB. Start Address N/A N/A F4000H F0000H. Start Address FA000H F8000H F8000H F8000H. Block 2 Size 8KB 16KB 16KB 16KB

AN3354 Application note

SIM900 Eclipse environment install Application Note_V1.00

Freescale Semiconductor, I

AN3265 Application note

Understanding LCD Memory and Bus Bandwidth Requirements ColdFire, LCD, and Crossbar Switch

Chapter 12. Development Tools for Microcontroller Applications

Comparison of 2.4-GHz proprietary RF and Bluetooth 4.0 for HIS applications Page 1 of 6

Application Note: AN00141 xcore-xa - Application Development

How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device

Altera SoC Embedded Design Suite User Guide

Migrating Application Code from ARM Cortex-M4 to Cortex-M7 Processors

UM1969 User manual. Getting started with STM32F746G discovery software development tools. Introduction

The Real-Time Operating System ucos-ii

Freescale Embedded GUI Converter Utility 2.0 Quick User Guide

Getting Started with Kinetis SDK (KSDK)

3. Programming the STM32F4-Discovery

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Eleventh Edition. Copyright 2015 Pearson Education, Inc.

Operating System Today s Operating Systems File Basics File Management Application Software

CUSTOM GOOGLE SEARCH PRO. User Guide. User Guide Page 1

MetaMorph Microscopy Automation & Image Analysis Software Super-Resolution Module

AN104 I NTEGRATING KEIL 8051 TOOLS INTO THE SILICON LABS IDE. 1. Introduction. 2. Key Points. 3. Create a Project in the Silicon Labs IDE

Enhanced Project Management for Embedded C/C++ Programming using Software Components

AN AES encryption and decryption software on LPC microcontrollers. Document information

AN3252 Application note

CY8CKIT-001. PSoC Development Kit Guide. Doc. # Rev. *N November 25, 2013

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

21152 PCI-to-PCI Bridge

Production Flash Programming Best Practices for Kinetis K- and L-series MCUs

Initializing the TSEC Controller

LS9 Editor Installation Guide

USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Table of Contents. ARM Evaluation Board (AEB-1) Welcome Guide ARM DGI 0005D. Proprietary Notice

Intel Modular Server System MFSYS25

QUADRO AND NVS DISPLAY RESOLUTION SUPPORT

PSoC Programmer Release Notes

Autodesk 3ds Max 2010 Boot Camp FAQ

Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual

ES_LPC4357/53/37/33. Errata sheet LPC4357/53/37/33. Document information

Zynq-7000 Platform Software Development Using the ARM DS-5 Toolchain Authors: Simon George and Prushothaman Palanichamy

13. Publishing Component Information to Embedded Software

SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE

Craig Pelkie Bits & Bytes Programming, Inc. craig@web400.com

AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction

TWAIN Driver Reference Guide

UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction

SIM900_Custom Application Building Tutorial_Application Note_V1.00

PAC52XX Clock Control Firmware Design

Intel 845G/GL Chipset Dynamic Video Memory Technology

etpu Host Interface by:

AN LPC24XX external memory bus example. Document information

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB

AN11008 Flash based non-volatile storage

Epiphan Frame Grabber User Guide

AVR106: C Functions for Reading and Writing to Flash Memory. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

Audio player on KwikStik

Transcription:

1.0 Features The component integrates emwin 8051 Graphic Library for PSoC3 and full-featured emwin Graphic Library V5.02 for PSoC 5 The libraries can be used with the Keil_PK51, GCC, Keil MDK, and Keil RVDS toolchains Drivers are available for and Graphics LCD Controller components General Description emwin is an embedded graphic library and graphical user interface (GUI) designed to provide an efficient, processor- and LCD controller-independent GUI for any application that operates with a graphical display. It is compatible with single-task and multitask environments. Developed by SEGGER Microcontroller, emwin is extremely popular in the embedded industry. Cypress has licensed the emwin library from SEGGER and offers a full-featured graphic library free to customers. When to Use an emwingraphics This component provides access to and the functionality of the SEGGER emwin graphic library. The emwingraphics component is a complete, easy to use, software package for the PSoC 3 and PSoC 5 target hardware. The package consists of the emwin GUI provided in library form, the required header files, and the source files specific to the PSoC implementation. The emwin Graphics Library component allows you fast and efficient GUI development for any application that operates with a graphical LCD. Getting Started Setup The emwingraphics component is supplied as a zip file. You can get the latest component version from the following location: http://www.cypress.com/go/comp_emwin Cypress Semiconductor Corporation 198 Champion Court San Jose, CA 95134-1709 408-943-2600 Document Number: 001-74206 Rev. ** Revised January 4, 2012

PSoC Creator Component Datasheet Extract it to any folder, preserving the directory structure of the zip file. Make sure the files are not read-only after extracting. The directory structure for the unzipped installation will be similar to that shown in Figure 1. Figure 1. Directory Structure Each of the major directories except Resources is divided into PSoC 3 and PSoC 5 subdirectories. This is because the implementations are different for the two part families. PSoC 3 supports the limited library version (emwin 8051), while PSoC 5 supports the fullfeatured version of the standard emwin library. The detailed functionality provided by each library version is documented in the SEGGER emwin documentation that located in the Documentation\PSoC3 and Documentation\PSoC5 directories. For details about the different areas of functionality for PSoC 3 and PSoC 5, see the Functional Description section of this document. The following table shows the contents of all major emwingraphics directories. Directory Contents Code\Include Code\Source Documentation LinkLibrary Resources The GUI header files. The source files that you need to add to your project The emwin User Guides The emwin libraries for each of the supported toolchains emwin sample files and windows programs from SEGGER to work with bitmaps Using the emwingraphics Library To use the emwingraphics library, follow these steps. All steps are explained further in subsequent sections. 1. Integrate the emwingraphics Library into your PSoC Creator project. Page 2 of 15 Document Number: 001-74206 Rev. **

2. Add a component to communicate with a graphics LCD panel to your project. The emwingraphics library is a software library. The communication to the panel is done using the appropriate hardware component for the panel. The Cypress component library includes two components that interface to an LCD panel: or Graphics LCD Controller. 3. Add a touchscreen component to your project (optional). A touchscreen component such as the Resistive Touch component can be used with the emwingraphics library. 4. Compile, link and test using the provided sample code. The emwingraphics library comes with sample code for both single- and multitask environments. These examples can be used to learn the usage methodology of the library. These examples are found in the Resources directory. 5. For multitasking applications adapt the library to your operation system (OS). If multiple tasks will have access to the display simultaneously, then OS interface routines must be defined. For details and sample applications, please refer to Chapter 13: "Execution Model: Single Task/Multitask" of the emwin User Manual. 6. Write your own application using emwin. At this point you should be ready to start programming using emwin. Consult the reference chapters in the emwin User Manual for the details of each capability the library provides. Integrating the emwingraphics Library into PSoC Creator To integrate the emwingraphics Library into your project, follow these steps. This example uses the Keil_PK51 toolchain. Other toolchains are supported in a similar fashion. 1. First, decide which library you need. The decision is based on whether you are using an RTOS (os), a touchscreen (ts), or both. The emwin libraries are named according to the supported options. In this example, the library name is emwinnosnts.lib, which is a library without OS (nos) and touchscreen (nts) support. 2. Add the necessary include files. The emwin include directory contains include files that are general to the entire application and specific include files in subdirectories based on the options chosen. The Additional Include Directories field of the Compiler options should contain an entry that addresses the path to the general and library-specific include files. From the menu Project > Build Settings > Compiler > General > Additional Include Directories, specify the include path, as shown in Figure 2. Document Number: 001-74206 Rev. ** Page 3 of 15

PSoC Creator Component Datasheet Figure 2. Additional Include Directories Dialog 3. Add the link library file. The emwin GUI can be used with the Keil_PK51, GNU CC, KEIL MDK, or KEIL RVDS toolchain, so select the library according to the toolchain you choose. From the menu Project > Build Settings > Linker > General > Additional Link Files, select the library file shown in Figure 3. Figure 3. Additional Link Files Dialog Page 4 of 15 Document Number: 001-74206 Rev. **

Note The process of adding the library to the linker is different for the GCC toolchain. In this case, the directory containing the library is added to the linker with the Additional Library Directories setting and the library is specified with the Additional Libraries setting. The library name used for this setting must have the lib prefix and.a suffix removed from the name. 4. Add the required source files to the project for the LCD component chosen. Select either the Interface component or the Control component. Based on that selection, the files are available at either the Source\PSoC3\ Parallel directory or the Source\PSoC3\Graphics LCD Controller directory. These files are typically edited for the specific project, so it is recommended that the files needed be copied into the root folder of your project and then added to your project. The files are added to the project using the menu selection Project > Add > Existing Item. If the include files are not placed in the root of the project directory, then the path to the include files must also be added to the build settings. The project shown here has added all the files from the Source\PSoC3\ Parallel directory except for GUI_X_Touch.c. This example uses neither OS nor touchscreen, so the touchscreen-related file is excluded. PSoC Creator Components to Use with emwin The emwingraphics library is a software library. It does not include any hardware to drive an LCD panel. A graphics LCD component ( or Graphics LCD Controller) is required for you to build a design using the emwingraphics library. Both components provide support for multiple graphic panels, but they drive different types of panels. Additionally, an optional touchscreen component can be used with emwin to implement a touch user interface. The communication between these components is implemented entirely in software. Document Number: 001-74206 Rev. ** Page 5 of 15

PSoC Creator Component Datasheet A single LCD graphics design contains exactly one instance of a Graphics LCD component, and optionally, one instance of a touchscreen component. All these components are located in the Display folder of the Component Catalog as highlighted in Figure 4. Figure 4. Display Folder (GraphicLCDIntf) Component The GraphicLCDIntf component is used to interface to the panels that have a graphic LCD controller and driver device integrated into the LCD panel. This type of panel also includes a frame buffer that is managed by the LCD controller integrated into the panel. The component performs read and write transactions to this controller. The following steps are required in order to create a GraphicLCDIntf application 1. Place the Graphic LCD Parallel Interface Macro onto the schematic. Select an 8-bit or 16-bit interface, based on the LCD controller used. 2. Configure the GraphicLCDIntf component to satisfy the requirements for write and read transactions to the LCD controller. For details about the configuration refer to the GraphicLCDIntf datasheet. 3. Make sure that all emwin files specific for the GraphicLCDIntf component are included in your project. The files are located in the subdirectory Parallel which is located in the Code\Source\PSoC3 or Code\Source\PSoC5 directory depending on the PSoC device. 4. Modify the required source files according to your LCD display hardware. Most of the source files can be used unchanged from the emwin distribution, but there are some configuration files that need to be changed for the target system to work properly. For more details about emwin configuration, see the chapter Configuration in the emwin User Manual. emwin files Required for a Graphic LCD Interface Application The following files from the Code\Source\PSoC3\ Parallel directory are required to build a PSoC 3 application using the GraphicLCDIntf component: Page 6 of 15 Document Number: 001-74206 Rev. **

GUI_X.c: You must edit this file to provide the timing routines (the emwin library requires the knowledge of time) and the debugging routines (optionally). GUI_X_Touch.c (optional): Provides the hardware routines to implement the resistive touch interface. You do not need to edit this file. LCD667XX.c: Display driver. You do not need to edit this file. LCDConf.h: You must edit this file to provide general configuration options required for compiling the display driver. For details about the available configuration options, see the Display drivers chapter in the emwin User Manual. LCDConf.c: You must edit this file to provide the initialization routine of the specific display controller used. The following files from the Code\Source\PSoC5\ Parallel folder are required to build a PSoC 5 application using the GraphicLCDIntf component: GUI_X.c: You must edit this file to provide the timing routines (the emwin library requires the knowledge of time) and the debugging routines (optionally). You should include it in the project if your application does not use an OS. If you are using an OS, then you should use an OS specific version of this file instead. GUI_X_embOS.c: This file provides the GUI kernel interface routines adapted for the embos RTOS. Include this file in your project if your application uses the embos real-time kernel. You do not usually need to edit this file. GUI_X_uCOS.c: This file provides the GUI kernel interface routines adapted for the uc/os RTOS. This file should be included in your project if your application uses the uc/os realtime kernel. You do not usually need to edit this file. GUI_X_Touch.c (optional): Provides the hardware routines to implement the resistive touch interface. You do not need to edit this file. GUIConf.c: Allocates memory for emwin operations. You can adjust this file for the specific chip and application. The default setting is for 8,192 bytes of SRAM for emwin to use. GUIDRV_CompactColor_16.c: Display driver. You do not need to edit this file. LCDConf.h: Indicates that you are using the Compact Color Driver. You do not need to edit this file. LCDConf_CompactColor_16.h: You must edit this file to provide general configuration options required to compile the display driver. For details about the available configuration options, see the Display drivers chapter in the emwin User Manual. LCDConf.c:You must edit this file to provide the initialization routine of the specific display controller you are using. Document Number: 001-74206 Rev. ** Page 7 of 15

PSoC Creator Component Datasheet Graphics LCD Controller (GraphicLCDCtrl) Component The GraphicLCDCtrl component provides the interface to an LCD panel that has an LCD driver, but not an LCD controller. This type of panel does not include a frame buffer. The frame buffer must be provided externally. This component directly drives the control signals and manages the frame buffer in an external SRAM. The following steps are required to create a GraphicLCDCtrl application 1. Place the Graphic LCD Controller Macro onto the schematic. 2. Configure the GraphicLCDCtrl component to satisfy the screen refresh requirements and data transaction timing parameters of your LCD panel. For details about the configuration, refer to the GraphicLCDCtrl datasheet. 3. Make sure that all emwin files specific to the GraphicLCDCtrl component are included in the project. The files are located in the subdirectory Graphics LCD Controller which is located in the Code\Source\PSoC3 or Code\Source\PSoC5 directory depending on the PSoC device you are planning to use. 4. Change required source files in accordance with your LCD display hardware. Most of the source files can be used unchanged from the emwin distribution, but there are some configuration files that you will need to edit for the target system to work properly. For more details about emwin configuration, see the Configuration chapter of the emwin User Manual. emwin files Required for a Graphic LCD Controller Application The following files from the Code\Source\PSoC3\Graphics LCD Controller directory are required to build a PSoC 3 application using the GraphicLCDCtrl component: GUI_X.c: You must edit this file to provide the timing routines (the emwin library requires the knowledge of time) and the debugging routines (optionally). GUI_X_Touch.c (optional): Provides the hardware routines to implement the resistive touch interface. You do not need to edit this file. GUIDRV_Control.c: Display driver. You do not need to edit this file. LCDConf.h: You must edit this file to provide general configuration options required to compile the display driver. For details about the available configuration options, see the Display drivers chapter of the emwin User Manual. LCDConf.c: You must edit this file to provide the initialization routine of the specific LCD panel you are using. The following files from the Code\Source\PSoC5\Graphics LCD Controller directory are required to build a PSoC 5 application using GraphicLCDCtrl component: Page 8 of 15 Document Number: 001-74206 Rev. **

GUI_X.c: You must edit this file to provide the timing routines (the emwin library requires the knowledge of time) and the debugging routines (optionally). You should include it in the project if you application does not use an OS. If you are using an OS, then you should use an OS specific version of this file instead. GUI_X_embOS.c: This file provides the GUI kernel interface routines adapted for the embos RTOS. Include this file in your project if your application uses the embos real time kernel. You do not usually need to edit this file. GUI_X_uCOS.c: This file provides the GUI kernel interface routines adapted for the uc/os RTOS. Include this file in your project if your application uses the uc/os real time kernel. You do not usually need to edit this file. GUI_X_Touch.c (optional): Provides the hardware routines to implement the resistive touch interface. You do not need to edit this file. GUIConf.c: Allocates memory for emwin operations. You can adjust this file for the specific chip and application. The default setting is for 8,192 bytes of SRAM for emwin to use. GUIDRV_Control.c: Display driver. You do not need to edit this file. LCDConf.h: Indicates the driver to be used and contains some general configuration options including display orientation and color depth. You can edit this file if you need to. LCDConf.c: You must edit this file to provide the initialization routine of the specific LCD panel you are using. Setting Up the Analog Touchscreen The most common way to connect a touchscreen is the 4-pin analog interface. A driver is supplied with emwin for this. The emwin touchscreen driver manages analog input (from an A/D converter), debouncing, and calibration of the touchscreen. The touchscreen driver continuously monitors and updates the touch panel using the function GUI_TOUCH_Exec(). This function calls the appropriate generic touchscreen API routines when it recognizes that an action has been performed or something has changed. Add touchscreen functionality to your project using the following steps: 1. Make sure that the project settings are made to use the emwin library with touchscreen support. For details about how to select emwin libraries, see the Integrating the emwingraphics Library into PSoC Creator section of this document. 2. Add the GUI_X_Touch.c file to your project. 3. Place the Resistive Touch component onto the schematic. The component is located in the Display folder of the Component Catalog. 4. Implement regular calls to GUI_TOUCH_Exec(). Your application should call it about 100 times/second. If you are using a real-time operating system, the easiest way to make Document Number: 001-74206 Rev. ** Page 9 of 15

PSoC Creator Component Datasheet sure this function is called is to create a separate task. When not using a multitasking system, you can use an interrupt service routine. 5. Determine the minimum and maximum values returned from the A/D converter for your panel and change the parameters of the function GUI_TOUCH_Calibrate() with these values. emwin needs these values to convert the measurement result to the touch position in pixels. For details about touchscreen configuration, see Chapter 19.4.2 The analog touch screen driver in the emwin User Guide. The files TOUCH_Sample.c and TOUCH_Calibrate.c referenced in the User Guide can be found in the Resources\Examples directory. EmWin Sample Files The emwingraphics component is shipped with many emwin sample files available for PSoC 3 and PSoC 5. They are placed in the PSoC 3 or PSoC 5 subdirectories of the Resources\Samples directory. If you are not familiar with emwin, Cypress recommends that you compile, link, and test sample programs before creating your own applications. To get a sample file running: 1. Add one of the demo sample files to your project. 2. Edit the main source file (main.c) to include GUI.h. Enable interrupts and then call MainTask() as shown in the code that follows. All of the emwin examples use MainTask() as the entry point. #include <device.h> #include "GUI.h" extern void MainTask(void); void main() { CyGlobalIntEnable; MainTask(); } for(;;) { /* Place your application code here. */ } 3. Build and run the project. Available Libraries The emwin GUI can be used with the Keil_PK51, GNU CC, KEIL MDK, or KEIL RVDS toolchain. For every toolchain, except Keil_PK51, the libraries are available for two options OS (os) support and touchscreen (ts) support. The OS support provides the necessary hooks during Page 10 of 15 Document Number: 001-74206 Rev. **

initialization of the Graphics library and hooks for locking and unlocking resources within the library by the OS. The options supported by the specific library names are shown here: Option OS support TS support nosnts NO NO nosts NO YES osnts YES NO osts YES YES emwin Libraries for the Keil_PK51 Toolchain The libraries are located in the LinkLibrary\PSoC3\Keil_PK51 directory and are named as follows: emwin<options>.lib The options available are nosnts and nosts. Example: libemwinnosts.a is the library without OS support and with touchscreen support. emwin Libraries for the GCC Toolchain The libraries are located in LinkLibrary\PSoC5\GCC directory and are named as follows: libemwin<options>.a The options available are nosnts, nosts, osnts and osts. Example: libemwinosnts.a is the library with OS support and without touchscreen support. Note that when using the GCC toolchain, the lib prefix and.a file extension of the library name must be omitted in the Additional Libraries field of the Linker options. emwin Libraries for the Keil MDK Toolchain The libraries are located in LinkLibrary\PSoC5\ARM_MDK directory and are named as follows: emwin<options>.lib The options available are nosnts, nosts, osnts and osts. Example: emwinosts.lib is the library with OS and touchscreen support. Document Number: 001-74206 Rev. ** Page 11 of 15

PSoC Creator Component Datasheet emwin Libraries for the ARM RVDS Toolchain The libraries are located in LinkLibrary\PSoC5\ARM_RVDS directory and are named as follows: emwin<options>.lib The options available are nosnts, nosts, osnts and osts. Example: emwinnosnts.lib is the library without OS and touchscreen support. Placement The implementation is entirely software. Performance and Resource Usage The actual performance and resource usage depends on many factors (CPU, compiler, memory model, optimization, configuration, interface to LCD controller, and so on). This section contains performance values of image drawing operations and information about memory resource usage for a typical configuration. Performance Product CPU Speed (MHz) Graphic LCD Component bpp Filling 1 Small Fonts 2 Large Fonts 2 Bitmap 1 bpp Bitmap 8 bpp Bitmap 16 bpp PSoC 3 24 PSoC 3 60 PSoC 3 24 (16-bit) (16-bit) (8-bit) 16 112K 24K 30K 36K 14K NA 16 279K 56K 70K 82K 33K NA 16 63K 20K 24K 28K 13K NA 1 Based on the performance value listed in the table and the resolution of your display, the performance values in frames per second (fps) can be calculated as follows: fps = pixels per second / (LCD_XSIZE LCD_YSIZE) 2 Based on these values, an approximate number of characters per second can be calculated as follows: Characters per second = pixels per second / (character width character height) For details about character size, se the Fonts section of the emwin User Manual. Page 12 of 15 Document Number: 001-74206 Rev. **

Product CPU Speed (MHz) Graphic LCD Component bpp Filling 1 Small Fonts 2 Large Fonts 2 Bitmap 1 bpp Bitmap 8 bpp Bitmap 16 bpp PSoC 3 60 (8-bit) 16 156K 46K 56K 65K 30K NA PSoC 3 24 Graphics LCD Controller 16 34K 21K 23K 26K 12K NA PSoC 3 60 Graphics LCD Controller 16 75K 48K 54K 61K 29K NA PSoC 5 24 PSoC 5 60 PSoC 5 24 PSoC 5 60 (16-bit) (16-bit) (8-bit) (8-bit) 16 662K 156K 177K 195K 150K 589K 16 1.64M 315K 357K 400K 306K 1.40M 16 300K 124K 136K 149K 117K 178K 16 570K 231K 252K 277K 219K 335K PSoC 5 24 Graphics LCD Controller 16 147K 131K 130K 135K 114K 152K PSoC 5 60 Graphics LCD Controller 16 224K 200K 192K 207K 184K 229K Memory Requirements The memory usage for the emwin library varies significantly, depending primarily on the application and features used. The following table provides the overall size (everything including code, fonts, boot, images, and so on) of some sample applications to give you a basic idea about the memory requirements. To do more precise calculations, see the SEGGER documentation for the emwin library. Keil 8051 GCC-4.4.1 Sample Flash SRAM Flash SRAM Description Hello World application 2D Graphics application Window application 19.4 KB 3.6 KB 24.5 KB 2.9 KB This sample project uses only the basic functions for displaying text. 33 KB 3.7 KB 34 KB 2.9 KB This sample displays text using different fonts and performs some drawing operations of a 2D Graphics Library. N/A N/A 84 KB 11 KB This project is a typical application using the window manager and different widgets. Document Number: 001-74206 Rev. ** Page 13 of 15

PSoC Creator Component Datasheet Application Programming Interface The emwingraphics component does not include any API functions that are not present in the standard emwin library. See to the SEGGER emwin documentation for a detailed description of available emwin routines. Functional Description The detailed functionality is documented in the SEGGER emwin documentation. This section identifies each of the major categories of SEGGER functionality with respect to PSoC 3 and PSoC 5. SEGGER emwin Library feature PSoC 3 PSoC 5 2-D graphics library Full support Full support Displaying bitmap files No support for formats other than compiled bitmap format. No support for 16-bit bitmaps. Eight and smaller bit-count bitmaps are fully supported. Support for all compiled bitmap formats Other formats (JPEG, GIF, PNG) may be supportable, but may be impractical because of RAM requirements Fonts Support for proportional fonts only Support for all font types Bitmap converter Compiled windows application shipped as a binary. Color support Full support Full support Memory devices No support Full support Multitask (RTOS) No support Full support Window manager No support Full support Window objects (widgets) No support Full support Virtual screens/virtual pages Full support Full support Multilayer/Multidisplay No support No support Pointer input devices Full support of touchscreens only Full support of touchscreens only Sprites and cursors No support Full support Antialiasing No support Full support Foreign language No support No support VNC No support No support Drivers Compact color driver and Cypress custom driver Page 14 of 15 Document Number: 001-74206 Rev. **

Component Changes Version 1.0 is the first release of the emwingraphics library. Cypress Semiconductor Corporation, 2012. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in lifesupport systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. PSoC is a registered trademark, and PSoC Creator and Programmable System-on-Chip are trademarks of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are property of the respective corporations. Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in lifesupport systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement. Document Number: 001-74206 Rev. ** Page 15 of 15