﻿/*******************************************************************************
*
* E M B E D D E D   W I Z A R D   P R O J E C T
*
*                                                Copyright (c) TARA Systems GmbH
*                                    written by Paul Banach and Manfred Schweyer
*
********************************************************************************
*
* This software is delivered "as is" and shows the usage of other software
* components. It is provided as an example software which is intended to be
* modified and extended according to particular requirements.
*
* TARA Systems hereby disclaims all warranties and conditions with regard to the
* software, including all implied warranties and conditions of merchantability
* and non-infringement of any third party IPR or other rights which may result
* from the use or the inability to use the software.
*
********************************************************************************
*
* DESCRIPTION:
*   This package contains everything needed to build and run an Embedded Wizard
*   generated UI application on a NXP IMXRT1060-EVK target.
*   This Build Environment for Embedded Wizard generated UI applications was
*   tested by using the following components:
*   - Embedded Wizard Studio V9.20
*   - Embedded Wizard Platform Package for NXP iMX_RT V9.20
*   - IMXRT1060-EVK Build Environment V9.20
*   - IMXRT1060-EVK development board
*   - MCUXpresso SDK V2.5.0
*   - GCC ARM Embedded Toolchain 8-2018-q4-major
*   - IAR Embedded Workbench 8.32.3, IAR C/C++ Compiler V8.32.3.193/W32 for ARM
*   - Keil MDK-ARM Professional Version 5.26.2.0, ARM Compiler 6.10.1 (armclang)
*   - MCUXpresso IDE V10.3.1
*
*******************************************************************************/

Getting started with IMXRT1060-EVK development board:
-----------------------------------------------------
  In order to get your first Embedded Wizard generated UI application up and
  running on your IMXRT1060-EVK target, we have prepared a detailed article,
  which covers all necessary steps.
  We highly recommend to study the following document:

  https://doc.embedded-wizard.de/getting-started-mimxrt1060-evk


Getting started with Embedded Wizard Studio:
--------------------------------------------
  In order to get familiar with Embedded Wizard Studio and the UI development
  work-flow, we highly recommend to study our online documentation:

  https://doc.embedded-wizard.de

  Furthermore, we have collected many 'Questions and Answers' covering
  typical Embedded Wizard programming aspects. Please visit our community:

  https://ask.embedded-wizard.de

  Please use this platform to drop your questions, answers and ideas.


Build Environment specific changes:
-----------------------------------
* Version 9.20
  - Test with Embedded Wizard V9.20 and iMX_RT Platform Package V9.20
  - The Graphics Engines for color format RGBA8888, RGB888 and RGB565 have
    been enhanced to support the new bitmap resource formats RGB565 and Index8.
  - The target specific module ew_bsp_graphics.c has been enhanced to support
    hardware accelerated drawing operations for the new source format RGB565.
  - The third-party software Xprintf is no more used and has been removed.
  - The dependency to printf() function is removed: The function EwFormat()
    does not exist anymore and has been removed from ewextrte.c. The function
    EwPrint() is now part of the RTE itself and implements a subset of the
    printf() format escape sequences (%d, %u, %f, %s, %c, %x, %X).
  - The new function EwConsoleOutput() has been added to the extern RTE
    module ewextrte.c. The function is used to print the given message on
    the console. No additional formatting, etc. is needed.
  - In case you get LCD underflows (e.g. flickering of LCD while PXP is active),
    you can increase the read priority for the LCD by modifying the NIC read_qos
    value for it. It is at 0x41044100 (register that isn’t in the header file).
    For more details see ew_bsp_display.c.
  - Changed from MCUXpresso SDK V2.4.1 to MCUXpresso SDK V2.5.0.
  - The set of provided examples has been enhanced. Please have a look into
    the subdirectory /Examples.
  - Realtime clock can be set by using new EwBspSetTime() function. RTC is
    now set to a default value during start of application (see ewmain.c).

* Version 9.10
  - Test with Embedded Wizard V9.10 and iMX_RT Platform Package V9.10
  - main.c file is now split into main.c and ewmain.c
  - New function EwPrintSystemInfo() for printing system and configuration
    information - helpful in case of any support issues.
  - The flag EW_USE_QSPI_FLASH is now replaced by EW_USE_EXTERNAL_FLASH
  - The usage of FreeRTOS is now enabled by default within GCC makefile.
  - Support of NXP Pixel Pipeline - The PXP graphics accelerator hardware is
    now used for all hardware supported fill, copy and blend operations in case
    of color format RGB565, RGB888 and RGBA8888.

* Version 9.00.03
  - Bug fix: Display start postion for color format RGBA8888 does not vary
    any more after each reset.

* Version 9.00.02
  - Improved post process scripts for projects using MCUXpresso IDE.
  - Test with MCUXpresso SDK V2.4.0.
  - Known Issues: When using color format RGBA8888, the entire screen may
    appear shifted horizontally on the display. The start position seems
    to vary after each reset.

* Version 9.00.01
  - Support for MCUXpresso IDE added.

* Version 9.00
  - Test with Embedded Wizard V9.00 and iMX_RT Platform Package V9.00
  - The main application and the makefile / project files for the supported
    toolchains are now located within the subdirectory /Application.
  - All third party software components are now located within the subdirectory
    /ThirdParty


The Build Environment:
----------------------
- The Build Environment is based on a Template approach.
  Within the subdirectory /Application you will find one common gcc/iar/keil/mcuxpresso
  project that is prepared for all Embedded Wizard examples and that can be used
  as a starting point for your development.
- Important project settings like 'ColorFormat' and 'ScreenOrientation'
  defined in the Embedded Wizard profile are imported automatically to the
  gcc/iar/keil/mcuxpresso project.
- A set of Embedded Wizard application examples can be found in the subdirectory
  /Examples.
- All target specific source codes (ew_bsp_xxx.c/h) that build the bridge
  between the Embedded Wizard generated code and the underlying NXP drivers
  are located within the folder /TargetSpecific.
- Please also note the toolchain specific notes in folder
  /Application/Project/<toolchain>/ReadMe.txt


3rdParty-Components
-------------------
The following 3rdParty-Components are used:

1. Two Level Segregated Fit memory allocator, version 3.0.
   Written by Matthew Conte, and placed in the Public Domain.
   https://tlsf.baisoku.org

2. NXP Source code

 * Copyright 2018 NXP
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * o Redistributions of source code must retain the above copyright notice, this list
 *   of conditions and the following disclaimer.
 *
 * o Redistributions in binary form must reproduce the above copyright notice, this
 *   list of conditions and the following disclaimer in the documentation and/or
 *   other materials provided with the distribution.
 *
 * o Neither the name of the copyright holder nor the names of its
 *   contributors may be used to endorse or promote products derived from this
 *   software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

3. Gnu Make - GNU General Public License v2 or later

4. Gnu GCC - GNU General Public License v2 or later

5. NXP Redlink flash utility - ./ThirdParty/MCUXpressoIDE/bin/license.txt
