<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.ugfx.io/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cpu20</id>
		<title>uGFX Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ugfx.io/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cpu20"/>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php/Special:Contributions/Cpu20"/>
		<updated>2026-05-12T22:28:41Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=Using_Eclipse&amp;diff=1871</id>
		<title>Using Eclipse</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=Using_Eclipse&amp;diff=1871"/>
				<updated>2017-05-26T11:47:55Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: Fixing broken links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article will explain how to setup a new project with the µGFX library or add the µGFX library to your existing project in [https://eclipse.org Eclipse].&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
First you will have to set up Eclipse to use your preferred tools and compiler. This can be done for any platform eg. Linux, Windows, ARM,... In this guide a project for a STM32Fxxx ARM µcontroller will be set up. To set up the necessary tools and compiler for ARM development in [https://eclipse.org Eclipse] the [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] website can be used. There is explained step by step how to install all nescessary components and configure [https://eclipse.org Eclipse].&lt;br /&gt;
It does not matter if you are using Windows, Linux, MacOS or any other operating system. As long as you can install eclipse and your preferred toolchain on it, this guide can be used.&lt;br /&gt;
&lt;br /&gt;
For setting up the ST-Link V2 debugger on Windows check out the [[Using_ChibiStudio#ST-Link_V2|CibiStudio]] guide.&lt;br /&gt;
&lt;br /&gt;
=== µGFX ===&lt;br /&gt;
You will also need a fresh copy of the µGFX library to start with. As described in the [[Using_ChibiStudio#uGFX|Getting Started]] guide, µGFX can either be downloaded as a stable release or you can get the latest version from the git repository. Please note that it's strongly recommended to use the git repository in order to get the latest bug fixes, features and improvements.&lt;br /&gt;
&lt;br /&gt;
== Creating a project ==&lt;br /&gt;
Now that al the required elements are installed, a new project can be made. When opening [https://eclipse.org Eclipse] a dialog will popup to choose where to locate the current workspace. A new one can be created by entering the path to the directory to store the workspace, or an existing workspace can be used. Note that one workspace can contain many projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Choosing_workspace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
When the new workspace has been setup, a new project can be made. Now there are two options to configure the project. The 'single file inclusion mechanism' can be used to include µGFX into your project, or a Makefile can be used. Both approaches will be discussed here.&lt;br /&gt;
&lt;br /&gt;
=== Single file inclusion ===&lt;br /&gt;
The single file inclusion mechanism will include the µGFX library using a single c-file. This way the appropriate files are included and [https://eclipse.org Eclipse] will automatically generate the Makefile. The advantages and disadvantages of this approach are:&lt;br /&gt;
* File inclusions and generating the appropriate Makefile are managed by [https://eclipse.org Eclipse].&lt;br /&gt;
* Easy to setup in a short time.&lt;br /&gt;
* All files will be copied into the project. Libraries can not easily be shared between projects.&lt;br /&gt;
* It's harder to keep libraries up-to-date.&lt;br /&gt;
* Easier to integrate into existing projects.&lt;br /&gt;
If you want to integrate the library in an exisiting project skip to [[Using_Eclipse#Importing_the_.C2.B5GFX_library|Importing the µGFX library]].&lt;br /&gt;
&lt;br /&gt;
==== Making a new project ====&lt;br /&gt;
To start with this technique a new project has to be made. For most embedded applications a C-project is the appropriate choice. ''File -&amp;gt; New -&amp;gt; C-project'' Setting up a C/C++-project is exactly the same.&lt;br /&gt;
&lt;br /&gt;
[[File:Make_new_project.png|500px]]&lt;br /&gt;
&lt;br /&gt;
If the [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] setup went well, there should be a couple of example projects in the next screen. Selecting these projects will already include the appropriate CMSIS and HAL-libraries for your desired µcontroller series.&lt;br /&gt;
It is also perfectly possible to make an empty project and to include everything yourself.&lt;br /&gt;
&lt;br /&gt;
[[File:STM32F4xx_example_project.png|500px]]&lt;br /&gt;
&lt;br /&gt;
As an example a project for the STM32F4xx series µcontrollers is created. When clicking next, the chip family should be chosen and specified which external clock is fitted on the µcontroller board. It's important to choose the right value here, else the project will not run after uploading it to the MCU.&lt;br /&gt;
&lt;br /&gt;
[[File:MCU_specifications.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The other settings can be kept at default value.&lt;br /&gt;
In the next step of the project creation, the folder names used in the project can be specified. It's up to the user to choose if anything should change here.&lt;br /&gt;
&lt;br /&gt;
[[File:Folder_specifiation.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the guide on [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] the ''GNU Tools for ARM Embedded Processors'' toolchain is installed. The installation directory of the toolchain must be specified so that [https://eclipse.org Eclipse] can use it to compile the project. The default location of the toolchain to be used can be set in [https://eclipse.org Eclipse]. The recommended way to this can also be found on the [https://gnuarmeclipse.github.io/toolchain/path/ GNU ARM Eclipse website].&lt;br /&gt;
&lt;br /&gt;
[[File:Compiler_specification.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The project is now automatically generated by [https://eclipse.org Eclipse] with the correct file inclusions. Building the project should be successful. If not, make sure that the corrected toolchain is selected.&lt;br /&gt;
&lt;br /&gt;
[[File:Compiled_project.png|900px]]&lt;br /&gt;
&lt;br /&gt;
The project file tree can be seen on the left of the screen in the project explorer. The most important folders here are:&lt;br /&gt;
* src: All the user source files are placed here&lt;br /&gt;
* include: All the users header files are located here.&lt;br /&gt;
* system: Microcontroller specific libraries are located here, such as CMSIS, HAL-libraries,...&lt;br /&gt;
* Debug: Project outputs generated when compiling the debug configuration are put here.&lt;br /&gt;
* Release: Same as debug but for the release configuration.&lt;br /&gt;
&lt;br /&gt;
==== Importing the µGFX library ====&lt;br /&gt;
Now the µGFX library has to be added to the project. To do this go to ''File -&amp;gt; Import''.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_file_system.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the import screen, the option ''File system'' should be selected under ''General''. Then click next.&lt;br /&gt;
Now the location of your µGFX library should be specified. [https://eclipse.org Eclipse] will scan the whole folder and display the contents. Everything should be imported using the option ''Select All''.&lt;br /&gt;
&lt;br /&gt;
[[File:Specify_import_location.png|500px]]&lt;br /&gt;
&lt;br /&gt;
As a last step, the location to import the library into the project must be specified. This can be done by specifying the name of the project followed by the folder name to import the library into. Do not only specify the project name or all the files will be imported into the project root directory!!!&lt;br /&gt;
The result of importing the library into the project is a new folder containing all the contents of the µGFX library.&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_uGFX.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==== Adding basic resources ====&lt;br /&gt;
After importing the library into the project, the correct resources have to be added in the project options. This way Eclipse will automatically generate a makefile containing the µGFX library.&lt;br /&gt;
To do this go to ''Project -&amp;gt; Properties''. This will open a dialog with all the possible project settings. Here navigate to ''C/C++ General -&amp;gt; Paths and Symbols -&amp;gt; Includes tab''.&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_include_directory.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the includes tab, are all the folders specified that are included when building the project. Here the whole µGFX folder that was just imported into the project must be added. Just simply click the ''Add...'' button and select the root folder of the library.&lt;br /&gt;
&lt;br /&gt;
[[File:Including_uGFX.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Eclipse will detect automatically that this is a path within the workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:Included_uGFX.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This is the result after including the library folder in the include directories. These steps must be repeated for all languages visible under the Languages pane.&lt;br /&gt;
Note that when the project was started from scratch, you will have to specify the location of your ''include'' directory here as well as the location of the CMSIS and HAL-libaries.&lt;br /&gt;
Now that the correct files are included, the correct sources have to be added to the project. For this again go to ''Project -&amp;gt; properties -&amp;gt; C/C++ General -&amp;gt; Paths and Symbols -&amp;gt; Source Location tab''&lt;br /&gt;
&lt;br /&gt;
[[File:Add_sources.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In this screen the ''src'' folder and the ''HAL-sources'' will already have been included in the build. Again if you started an empty project you will have to include all these sources yourself.&lt;br /&gt;
Now with the button ''Add Folder...'' the µGFX library folder should be added to the list.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_uGFX_filter.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The result will be that all the files and folders in the ''uGFX'' directory are included in the project sources. This however will lead to alot of compilation errors. The only file that has to be included in the build is the ''gfx_mk.c''. To do this, a filter will be added for the uGFX folder. (Note that this is also what is done for the system folder. Only the HAL-sources used are included in the build and all the others are excluded with a filter.)&lt;br /&gt;
To edit the filter click on the button ''Edit Filter...'' when the uGFX folder is selected. To keep things simple, this will be done in two steps.&lt;br /&gt;
&lt;br /&gt;
[[File:Exclude_all_excpt_src.png|300px]]&lt;br /&gt;
[[File:Exclude_all_excpt_gfx_mk.png|300px]]&lt;br /&gt;
&lt;br /&gt;
First select all the files and folders in the uGFX directory except for the ''src'' folder. Then click ''OK''. Now choose ''Edit Filter...'' again and fold open the ''src'' directory. Select all files except the ''gfx_mk.c''.&lt;br /&gt;
When excluding these files Eclipse will ask from which configuration to exclude the files. Here just choose all available configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:Exclude_from_configurations.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Now all the necessary files are included in the build using the ''gfx_mk.c'' file. The last step before being able to build for the first time is to configure the µGFX library. This is done by copying the ''gfxconf.example.h'', found in the uGFX root folder into the include directory of the project. Rename it to ''gfxconf.h'' and set ''GFX_USE_OS_RAW32'' to ''TRUE''.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_gfxconf_build.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Note that to run use RAW32 as the OS two functions need to be implemented by the user in order for it to work. Chances are that for popular boards the RAW32 implementation is already present under ''boards/base''. If not a very good example of what you need can be found under ''boards/base/STM32F439i-EVAL''. The startup code found here was generated with STMCube. In this example the initialization is done with the functions found int the ''_initialize_hardware.c'' so there is no need for this code.&lt;br /&gt;
In the example used here these functions are added by copying them into the file called ''stm32f4xx_raw32_ugfx.c'' in the ''src'' folder.&lt;br /&gt;
&lt;br /&gt;
[[File:First_time_compiled.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Add ''#include &amp;quot;gfx.h&amp;quot;'' to the ''main.c'' and everything should compile now like in the example above. However there is not much use for this project as there are no drivers included.&lt;br /&gt;
&lt;br /&gt;
==== Adding driver resources ====&lt;br /&gt;
The basic configuration of the project is now complete. The only thing that is missing to use the library is a driver for the desired display, touch driver, audio driver,... All currently available drivers are found in ''src/drivers'' and all supported boards in ''boards/base''.&lt;br /&gt;
To include the necessary board files go to ''Includes'' tab in the project properties again. Here add the location of the required driver for your display, touch controller,... As an example a driver will be added to drive a display with the ILI9225 driver. The driver files for this driver are found in ''drivers/gdisp/ILI9225''.&lt;br /&gt;
&lt;br /&gt;
[[File:Include_path_ILI9225.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The ''gdisp_lld_ili9225.c'' has to be included into the build also. This can be done by going back to the ''Source Location Tab''. Here the drivers folder entry must first be deleted. Else the whole folder will still be excluded even after setting individual rules to include the driver source file.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_drivers.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Now everything inside the drivers folder has to be excluded individually except for the folder containing the the driver that has to be included. This is the exact same procedure as for the ''gfx_mk.c''.&lt;br /&gt;
&lt;br /&gt;
[[File:Include_ILI9225_source.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The result of including the driver folder can immediately be seen in the Project Explorer.&lt;br /&gt;
&lt;br /&gt;
[[File:ILI9225_included.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The last step to get the driver working is to add the board file. If your specific board is supported, the board file will be located at ''boards/base''. Or an example for your board could be located at ''boards/addons. In the folder of your board, copy the ''board_driver.h'' file and paste it into the include folder of the project.&lt;br /&gt;
Is your board not supported yet, copy a template board file to the include folder and edit it to make it work with your board. There are plenty of examples at ''boards/base''. Also consider sharing it so other people can use it for their projects!&lt;br /&gt;
Now in the ''gfxconf.h'' file enable the corresponding GFX module to start using the driver. In this case the ''#GFX_USE_GDISP'' has to be set ''TRUE'' along with the desired drawing functions to use the display.&lt;br /&gt;
&lt;br /&gt;
[[File:Compiled_with_gdisp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
The project is now complete and should compile without errors. Is this guide incomplete or do you have trouble setting everything up correctly just leave a message on the [https://community.ugfx.io/forum/9-support/ support forums] for help!&lt;br /&gt;
&lt;br /&gt;
=== Makefile approach ===&lt;br /&gt;
The second way to setup a project with µGFX in Eclipse, is the Makefile approach. This approach also has it's advantages and disadvantages:&lt;br /&gt;
* Libraries are included via relative paths and thus shared between projects.&lt;br /&gt;
* Requires a bit more work to set up and understand.&lt;br /&gt;
* Once set up easy to maintain and add resources.&lt;br /&gt;
* Projects are easily ported to other systems/platforms.&lt;br /&gt;
&lt;br /&gt;
==== Making a new project ====&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=Using_Eclipse&amp;diff=1870</id>
		<title>Using Eclipse</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=Using_Eclipse&amp;diff=1870"/>
				<updated>2017-05-26T11:43:19Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: First version of the single file inclusion guide for Eclipse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article will explain how to setup a new project with the µGFX library or add the µGFX library to your existing project in [https://eclipse.org Eclipse].&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
First you will have to set up Eclipse to use your preferred tools and compiler. This can be done for any platform eg. Linux, Windows, ARM,... In this guide a project for a STM32Fxxx ARM µcontroller will be set up. To set up the necessary tools and compiler for ARM development in [https://eclipse.org Eclipse] the [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] website can be used. There is explained step by step how to install all nescessary components and configure [https://eclipse.org Eclipse].&lt;br /&gt;
It does not matter if you are using Windows, Linux, MacOS or any other operating system. As long as you can install eclipse and your preferred toolchain on it, this guide can be used.&lt;br /&gt;
&lt;br /&gt;
For setting up the ST-Link V2 debugger on Windows check out the [[Using_ChibiStudio#ST-Link_V2|CibiStudio]] guide.&lt;br /&gt;
&lt;br /&gt;
=== µGFX ===&lt;br /&gt;
You will also need a fresh copy of the µGFX library to start with. As described in the [[Using_ChibiStudio#uGFX Getting Started]] guide, µGFX can either be downloaded as a stable release or you can get the latest version from the git repository. Please note that it's strongly recommended to use the git repository in order to get the latest bug fixes, features and improvements.&lt;br /&gt;
&lt;br /&gt;
== Creating a project ==&lt;br /&gt;
Now that al the required elements are installed, a new project can be made. When opening [https://eclipse.org Eclipse] a dialog will popup to choose where to locate the current workspace. A new one can be created by entering the path to the directory to store the workspace, or an existing workspace can be used. Note that one workspace can contain many projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Choosing_workspace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
When the new workspace has been setup, a new project can be made. Now there are two options to configure the project. The 'single file inclusion mechanism' can be used to include µGFX into your project, or a Makefile can be used. Both approaches will be discussed here.&lt;br /&gt;
&lt;br /&gt;
=== Single file inclusion ===&lt;br /&gt;
The single file inclusion mechanism will include the µGFX library using a single c-file. This way the appropriate files are included and [https://eclipse.org Eclipse] will automatically generate the Makefile. The advantages and disadvantages of this approach are:&lt;br /&gt;
* File inclusions and generating the appropriate Makefile are managed by [https://eclipse.org Eclipse].&lt;br /&gt;
* Easy to setup in a short time.&lt;br /&gt;
* All files will be copied into the project. Libraries can not easily be shared between projects.&lt;br /&gt;
* It's harder to keep libraries up-to-date.&lt;br /&gt;
* Easier to integrate into existing projects.&lt;br /&gt;
If you want to integrate the library in an exisiting project skip to [[Importing the µGFX library]].&lt;br /&gt;
&lt;br /&gt;
==== Making a new project ====&lt;br /&gt;
To start with this technique a new project has to be made. For most embedded applications a C-project is the appropriate choice. ''File -&amp;gt; New -&amp;gt; C-project'' Setting up a C/C++-project is exactly the same.&lt;br /&gt;
&lt;br /&gt;
[[File:Make_new_project.png|500px]]&lt;br /&gt;
&lt;br /&gt;
If the [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] setup went well, there should be a couple of example projects in the next screen. Selecting these projects will already include the appropriate CMSIS and HAL-libraries for your desired µcontroller series.&lt;br /&gt;
It is also perfectly possible to make an empty project and to include everything yourself.&lt;br /&gt;
&lt;br /&gt;
[[File:STM32F4xx_example_project.png|500px]]&lt;br /&gt;
&lt;br /&gt;
As an example a project for the STM32F4xx series µcontrollers is created. When clicking next, the chip family should be chosen and specified which external clock is fitted on the µcontroller board. It's important to choose the right value here, else the project will not run after uploading it to the MCU.&lt;br /&gt;
&lt;br /&gt;
[[File:MCU_specifications.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The other settings can be kept at default value.&lt;br /&gt;
In the next step of the project creation, the folder names used in the project can be specified. It's up to the user to choose if anything should change here.&lt;br /&gt;
&lt;br /&gt;
[[File:Folder_specifiation.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the guide on [https://gnuarmeclipse.github.io/ GNU ARM Eclipse] the ''GNU Tools for ARM Embedded Processors'' toolchain is installed. The installation directory of the toolchain must be specified so that [https://eclipse.org Eclipse] can use it to compile the project. The default location of the toolchain to be used can be set in [https://eclipse.org Eclipse]. The recommended way to this can also be found on the [https://gnuarmeclipse.github.io/toolchain/path/ GNU ARM Eclipse website].&lt;br /&gt;
&lt;br /&gt;
[[File:Compiler_specification.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The project is now automatically generated by [https://eclipse.org Eclipse] with the correct file inclusions. Building the project should be successful. If not, make sure that the corrected toolchain is selected.&lt;br /&gt;
&lt;br /&gt;
[[File:Compiled_project.png|900px]]&lt;br /&gt;
&lt;br /&gt;
The project file tree can be seen on the left of the screen in the project explorer. The most important folders here are:&lt;br /&gt;
* src: All the user source files are placed here&lt;br /&gt;
* include: All the users header files are located here.&lt;br /&gt;
* system: Microcontroller specific libraries are located here, such as CMSIS, HAL-libraries,...&lt;br /&gt;
* Debug: Project outputs generated when compiling the debug configuration are put here.&lt;br /&gt;
* Release: Same as debug but for the release configuration.&lt;br /&gt;
&lt;br /&gt;
==== Importing the µGFX library ====&lt;br /&gt;
Now the µGFX library has to be added to the project. To do this go to ''File -&amp;gt; Import''.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_file_system.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the import screen, the option ''File system'' should be selected under ''General''. Then click next.&lt;br /&gt;
Now the location of your µGFX library should be specified. [https://eclipse.org Eclipse] will scan the whole folder and display the contents. Everything should be imported using the option ''Select All''.&lt;br /&gt;
&lt;br /&gt;
[[File:Specify_import_location.png|500px]]&lt;br /&gt;
&lt;br /&gt;
As a last step, the location to import the library into the project must be specified. This can be done by specifying the name of the project followed by the folder name to import the library into. Do not only specify the project name or all the files will be imported into the project root directory!!!&lt;br /&gt;
The result of importing the library into the project is a new folder containing all the contents of the µGFX library.&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_uGFX.png|900px]]&lt;br /&gt;
&lt;br /&gt;
==== Adding basic resources ====&lt;br /&gt;
After importing the library into the project, the correct resources have to be added in the project options. This way Eclipse will automatically generate a makefile containing the µGFX library.&lt;br /&gt;
To do this go to ''Project -&amp;gt; Properties''. This will open a dialog with all the possible project settings. Here navigate to ''C/C++ General -&amp;gt; Paths and Symbols -&amp;gt; Includes tab''.&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_include_directory.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the includes tab, are all the folders specified that are included when building the project. Here the whole µGFX folder that was just imported into the project must be added. Just simply click the ''Add...'' button and select the root folder of the library.&lt;br /&gt;
&lt;br /&gt;
[[File:Including_uGFX.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Eclipse will detect automatically that this is a path within the workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:Included_uGFX.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This is the result after including the library folder in the include directories. These steps must be repeated for all languages visible under the Languages pane.&lt;br /&gt;
Note that when the project was started from scratch, you will have to specify the location of your ''include'' directory here as well as the location of the CMSIS and HAL-libaries.&lt;br /&gt;
Now that the correct files are included, the correct sources have to be added to the project. For this again go to ''Project -&amp;gt; properties -&amp;gt; C/C++ General -&amp;gt; Paths and Symbols -&amp;gt; Source Location tab''&lt;br /&gt;
&lt;br /&gt;
[[File:Add_sources.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In this screen the ''src'' folder and the ''HAL-sources'' will already have been included in the build. Again if you started an empty project you will have to include all these sources yourself.&lt;br /&gt;
Now with the button ''Add Folder...'' the µGFX library folder should be added to the list.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_uGFX_filter.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The result will be that all the files and folders in the ''uGFX'' directory are included in the project sources. This however will lead to alot of compilation errors. The only file that has to be included in the build is the ''gfx_mk.c''. To do this, a filter will be added for the uGFX folder. (Note that this is also what is done for the system folder. Only the HAL-sources used are included in the build and all the others are excluded with a filter.)&lt;br /&gt;
To edit the filter click on the button ''Edit Filter...'' when the uGFX folder is selected. To keep things simple, this will be done in two steps.&lt;br /&gt;
&lt;br /&gt;
[[File:Exclude_all_excpt_src.png|300px]]&lt;br /&gt;
[[File:Exclude_all_excpt_gfx_mk.png|300px]]&lt;br /&gt;
&lt;br /&gt;
First select all the files and folders in the uGFX directory except for the ''src'' folder. Then click ''OK''. Now choose ''Edit Filter...'' again and fold open the ''src'' directory. Select all files except the ''gfx_mk.c''.&lt;br /&gt;
When excluding these files Eclipse will ask from which configuration to exclude the files. Here just choose all available configuration.&lt;br /&gt;
&lt;br /&gt;
[[File:Exclude_from_configurations.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Now all the necessary files are included in the build using the ''gfx_mk.c'' file. The last step before being able to build for the first time is to configure the µGFX library. This is done by copying the ''gfxconf.example.h'', found in the uGFX root folder into the include directory of the project. Rename it to ''gfxconf.h'' and set ''GFX_USE_OS_RAW32'' to ''TRUE''.&lt;br /&gt;
&lt;br /&gt;
[[File:Edit_gfxconf_build.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Note that to run use RAW32 as the OS two functions need to be implemented by the user in order for it to work. Chances are that for popular boards the RAW32 implementation is already present under ''boards/base''. If not a very good example of what you need can be found under ''boards/base/STM32F439i-EVAL''. The startup code found here was generated with STMCube. In this example the initialization is done with the functions found int the ''_initialize_hardware.c'' so there is no need for this code.&lt;br /&gt;
In the example used here these functions are added by copying them into the file called ''stm32f4xx_raw32_ugfx.c'' in the ''src'' folder.&lt;br /&gt;
&lt;br /&gt;
[[File:First_time_compiled.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Add ''#include &amp;quot;gfx.h&amp;quot;'' to the ''main.c'' and everything should compile now like in the example above. However there is not much use for this project as there are no drivers included.&lt;br /&gt;
&lt;br /&gt;
==== Adding driver resources ====&lt;br /&gt;
The basic configuration of the project is now complete. The only thing that is missing to use the library is a driver for the desired display, touch driver, audio driver,... All currently available drivers are found in ''src/drivers'' and all supported boards in ''boards/base''.&lt;br /&gt;
To include the necessary board files go to ''Includes'' tab in the project properties again. Here add the location of the required driver for your display, touch controller,... As an example a driver will be added to drive a display with the ILI9225 driver. The driver files for this driver are found in ''drivers/gdisp/ILI9225''.&lt;br /&gt;
&lt;br /&gt;
[[File:Include_path_ILI9225.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The ''gdisp_lld_ili9225.c'' has to be included into the build also. This can be done by going back to the ''Source Location Tab''. Here the drivers folder entry must first be deleted. Else the whole folder will still be excluded even after setting individual rules to include the driver source file.&lt;br /&gt;
&lt;br /&gt;
[[File:Remove_drivers.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Now everything inside the drivers folder has to be excluded individually except for the folder containing the the driver that has to be included. This is the exact same procedure as for the ''gfx_mk.c''.&lt;br /&gt;
&lt;br /&gt;
[[File:Include_ILI9225_source.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The result of including the driver folder can immediately be seen in the Project Explorer.&lt;br /&gt;
&lt;br /&gt;
[[File:ILI9225_included.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The last step to get the driver working is to add the board file. If your specific board is supported, the board file will be located at ''boards/base''. Or an example for your board could be located at ''boards/addons. In the folder of your board, copy the ''board_driver.h'' file and paste it into the include folder of the project.&lt;br /&gt;
Is your board not supported yet, copy a template board file to the include folder and edit it to make it work with your board. There are plenty of examples at ''boards/base''. Also consider sharing it so other people can use it for their projects!&lt;br /&gt;
Now in the ''gfxconf.h'' file enable the corresponding GFX module to start using the driver. In this case the ''#GFX_USE_GDISP'' has to be set ''TRUE'' along with the desired drawing functions to use the display.&lt;br /&gt;
&lt;br /&gt;
[[File:Compiled_with_gdisp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
The project is now complete and should compile without errors. Is this guide incomplete or do you have trouble setting everything up correctly just leave a message on the [https://community.ugfx.io/forum/9-support/ support forums] for help!&lt;br /&gt;
&lt;br /&gt;
=== Makefile approach ===&lt;br /&gt;
The second way to setup a project with µGFX in Eclipse, is the Makefile approach. This approach also has it's advantages and disadvantages:&lt;br /&gt;
* Libraries are included via relative paths and thus shared between projects.&lt;br /&gt;
* Requires a bit more work to set up and understand.&lt;br /&gt;
* Once set up easy to maintain and add resources.&lt;br /&gt;
* Projects are easily ported to other systems/platforms.&lt;br /&gt;
&lt;br /&gt;
==== Making a new project ====&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:STM32F4xx_example_project.png&amp;diff=1869</id>
		<title>File:STM32F4xx example project.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:STM32F4xx_example_project.png&amp;diff=1869"/>
				<updated>2017-05-26T11:42:12Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Specify_import_location.png&amp;diff=1868</id>
		<title>File:Specify import location.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Specify_import_location.png&amp;diff=1868"/>
				<updated>2017-05-26T11:41:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Result_exclusion.png&amp;diff=1867</id>
		<title>File:Result exclusion.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Result_exclusion.png&amp;diff=1867"/>
				<updated>2017-05-26T11:41:41Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Remove_drivers.png&amp;diff=1866</id>
		<title>File:Remove drivers.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Remove_drivers.png&amp;diff=1866"/>
				<updated>2017-05-26T11:41:17Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:MCU_specifications.png&amp;diff=1865</id>
		<title>File:MCU specifications.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:MCU_specifications.png&amp;diff=1865"/>
				<updated>2017-05-26T11:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Make_new_project.png&amp;diff=1864</id>
		<title>File:Make new project.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Make_new_project.png&amp;diff=1864"/>
				<updated>2017-05-26T11:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Including_uGFX.png&amp;diff=1863</id>
		<title>File:Including uGFX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Including_uGFX.png&amp;diff=1863"/>
				<updated>2017-05-26T11:40:35Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Included_uGFX.png&amp;diff=1862</id>
		<title>File:Included uGFX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Included_uGFX.png&amp;diff=1862"/>
				<updated>2017-05-26T11:40:21Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Include_path_ILI9225.png&amp;diff=1861</id>
		<title>File:Include path ILI9225.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Include_path_ILI9225.png&amp;diff=1861"/>
				<updated>2017-05-26T11:40:08Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Include_ILI9225_source.png&amp;diff=1860</id>
		<title>File:Include ILI9225 source.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Include_ILI9225_source.png&amp;diff=1860"/>
				<updated>2017-05-26T11:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Imported_uGFX.png&amp;diff=1859</id>
		<title>File:Imported uGFX.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Imported_uGFX.png&amp;diff=1859"/>
				<updated>2017-05-26T11:39:38Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Import_file_system.png&amp;diff=1858</id>
		<title>File:Import file system.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Import_file_system.png&amp;diff=1858"/>
				<updated>2017-05-26T11:39:18Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:ILI9225_included.png&amp;diff=1857</id>
		<title>File:ILI9225 included.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:ILI9225_included.png&amp;diff=1857"/>
				<updated>2017-05-26T11:39:06Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Folder_specifiation.png&amp;diff=1856</id>
		<title>File:Folder specifiation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Folder_specifiation.png&amp;diff=1856"/>
				<updated>2017-05-26T11:38:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:First_time_compiled.png&amp;diff=1855</id>
		<title>File:First time compiled.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:First_time_compiled.png&amp;diff=1855"/>
				<updated>2017-05-26T11:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Finished_single_file_inclusion.png&amp;diff=1854</id>
		<title>File:Finished single file inclusion.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Finished_single_file_inclusion.png&amp;diff=1854"/>
				<updated>2017-05-26T11:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Exclude_from_configurations.png&amp;diff=1853</id>
		<title>File:Exclude from configurations.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Exclude_from_configurations.png&amp;diff=1853"/>
				<updated>2017-05-26T11:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Exclude_all_excpt_src.png&amp;diff=1851</id>
		<title>File:Exclude all excpt src.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Exclude_all_excpt_src.png&amp;diff=1851"/>
				<updated>2017-05-26T11:36:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Exclude_all_excpt_gfx_mk.png&amp;diff=1850</id>
		<title>File:Exclude all excpt gfx mk.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Exclude_all_excpt_gfx_mk.png&amp;diff=1850"/>
				<updated>2017-05-26T11:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Edit_uGFX_filter.png&amp;diff=1849</id>
		<title>File:Edit uGFX filter.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Edit_uGFX_filter.png&amp;diff=1849"/>
				<updated>2017-05-26T11:36:31Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Edit_gfxconf_build.png&amp;diff=1848</id>
		<title>File:Edit gfxconf build.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Edit_gfxconf_build.png&amp;diff=1848"/>
				<updated>2017-05-26T11:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Compiler_specification.png&amp;diff=1847</id>
		<title>File:Compiler specification.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Compiler_specification.png&amp;diff=1847"/>
				<updated>2017-05-26T11:36:01Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Compiled_with_gdisp.png&amp;diff=1846</id>
		<title>File:Compiled with gdisp.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Compiled_with_gdisp.png&amp;diff=1846"/>
				<updated>2017-05-26T11:35:48Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Compiled_project.png&amp;diff=1845</id>
		<title>File:Compiled project.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Compiled_project.png&amp;diff=1845"/>
				<updated>2017-05-26T11:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Choosing_workspace.png&amp;diff=1844</id>
		<title>File:Choosing workspace.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Choosing_workspace.png&amp;diff=1844"/>
				<updated>2017-05-26T11:35:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Adding_include_directory.png&amp;diff=1843</id>
		<title>File:Adding include directory.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Adding_include_directory.png&amp;diff=1843"/>
				<updated>2017-05-26T11:35:08Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Add_sources.png&amp;diff=1842</id>
		<title>File:Add sources.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Add_sources.png&amp;diff=1842"/>
				<updated>2017-05-26T11:34:55Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	<entry>
		<id>https://wiki.ugfx.io/index.php?title=File:Add_multiple_filter.png&amp;diff=1841</id>
		<title>File:Add multiple filter.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ugfx.io/index.php?title=File:Add_multiple_filter.png&amp;diff=1841"/>
				<updated>2017-05-26T11:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;Cpu20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cpu20</name></author>	</entry>

	</feed>