SilasV
-
Posts
10 -
Joined
-
Last visited
Content Type
Forums
Store
Downloads
Blogs
Posts posted by SilasV
-
-
Hi
Could not work on this for quite sometime, since pulled into some other issues
So now finally I have a working set up - FreeRTOS + uGFX running on STM32F412 boad using FSMC 16 bit using ILI9341 controller - this set up shows me "uGFX" logo on gfxInit() followed by dark screen (as expected as I believe), I have attached the image.
Next I have a simple page using label and button, does not use any custom font or any background designed in uGFXStudio. If I use the Studio generated code files in "output" folder, I definitely get errors. So would anyone please let me know what flags/defines I need to set true or false just to compile and show the "page" on screen? I have also attached the image of the page in the uGFXStudio.
I have the following questions which would help me determine next steps for my products:
Q1: Is there any update on the uGFX-Studio current version (no complete re-written version) so that it generates the required gfxconf.h with exactly what objects are used in the design of the page/s so that I can use the generated code "as is" in my project to compile and work fine without any issues?
Q2: I have a working set up of using Segger emWin / STemWin (see the attached image) - since I am going to use STM32 F4 / L4, I can use STemWin in my products without any lic issues. But I would sure like to consider uGFX for my products since a) this is open source b) fair pricing c) support ( I believe ). If I buy the commerical lic of uGFX, is there a different version of library + uGFX Studio that I would get to make the design and compile experience better?
Q3. If I am going to get the same version of lib and studio from uGFX, is there any plan to fix the existing studio version to generate the code+files exactly the way it should be? I know your team is working on bringing out next version, but that has been promised for quite long. I would consider to fix the issues on the existing version first so that it is usable in production without any issues.
Q4. When I start the project wizard in uGFXStudio, the window shows the note as "This is a beta software, it is far from complete and it is known to contain bugs. Please do not use this software for purely productive tasks" - is this still true? This sure tells me not to use this software for any production purposes. Any comments or clarification please?
Appreciate your help
Thanks
Silas
-
Hi Joel,
Thank you so much for your reply and information. After cleaning up, I followed your directions and excluded the font files. Also defined the functions for gfxillisecondsToTicks() and gfxSystemTicks(). And then ran the build. The following error comes up: would you please help...
Building file: ../ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.c Invoking: MCU GCC Compiler %cd% arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DUSE_HAL_DRIVER -DSTM32F412Zx -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Inc -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/STM32F4xx_HAL_Driver/Inc -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/CMSIS/Include -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Debug -IC:/Ac6/ProjectsFromCube/NucleoWith9341/uGFX -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/DispDriver -IC:/Ac6/ProjectsFromCube/NucleoWith9341/ugfx_2.7 -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fmessage-length=0 -MMD -MP -MF"ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.d" -MT"ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.o" -o "ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.o" "../ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.c" ../ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.c:120:27: fatal error: lwip/sockets.h: No such file or directory compilation terminated. make: *** [ugfx_2.7/drivers/multiple/uGFXnet/gdisp_lld_uGFXnet.o] Error 1
Thanks
Silas
-
Hi
Further trying to resolve the errors, I set the following as "TRUE" in the file gos_options.h in the directory ugfx_2.7/src/gos/
#ifndef GFX_USE_OS_RAW32
#define GFX_USE_OS_RAW32 TRUE
#endif
And then running the build, I was still getting the reference to the user font and still pointing to DejaVuSans10.c in rsc folder - but this is already included in ugfx_2.7/src/gdisp/fonts - so I removed the file userfonts.h generated from the studio code generator - and then run the build after cleaning.
The build wend pretty smooth - it created all object files, and then running the linker - it gave me the following errors:
Any clue / suggestion / pointer will be highly appreciated I think I am pretty close ..
Thanks
Silas
Invoking: MCU GCC Linker
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -specs=nosys.specs -specs=nano.specs -T"../STM32F412ZGTx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -lm -o "NucleoWith9341.elf" @"objects.list"
Src/gfx_mk.o: In function `gfxSemWait':
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:66: undefined reference to `gfxMillisecondsToTicks'
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:68: undefined reference to `gfxSystemTicks'
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:81: undefined reference to `gfxSystemTicks'
Src/gfx_mk.o: In function `gfxSleepMilliseconds':
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:129: undefined reference to `gfxMillisecondsToTicks'
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:130: undefined reference to `gfxSystemTicks'
C:/Ac6/ugfx_2.7/Src/gos/gos_x_threads.c:134: undefined reference to `gfxSystemTicks'
Src/gfx_mk.o: In function `_gtimerInit':
C:/Ac6/ugfx_2.7/Src/gtimer/gtimer.c:119: undefined reference to `gfxMillisecondsToTicks'
Src/gfx_mk.o: In function `_gmouseInit':
C:/Ac6/ugfx_2.7/Src/ginput/ginput_mouse.c:653: undefined reference to `GMOUSEVMT_OnlyOne'
collect2.exe: error: ld returned 1 exit status
make: *** [NucleoWith9341.elf] Error 1 -
Hi Joel & Inmarket
Reading through the forum topics, here is what I tried :
I cleaned up my SystemWorkbench project, removed all uGFX references and brought back to what it was. then followed the steps below:
1. Added gfx_mk.c to the /Src folder of the project,
2. Added #include "gui.h" and #include "gfx.h" to the main.c
3. Added uGFX root directory path "c:/ugfx_2.7" and path "c:/ugfx_2.7/Src" to project "include" paths
4. Also added folder "uGFX" which contains all the code in "output" folder from uGFX_Studio after generating the code
5. In the file gfxconf.h - added the following at the top - seems like the code generator of uGFX_studio does not add these lines
/********************************************************/
/* GOS stuff */
/********************************************************/
#define GFX_USE_OS_RAW32 TRUE6. Copy this gfxconf.h file into uGFX root directory - i.e. "c:/ugfx_2.7" - there is a file called gfxconf.example.h file there in this directory - which I guess need to be updated before use, but I just use the file generated from uGFX_Studio code generator.
Hope whatever I did above is ok, let me know otherwise..
Running the build : I getting errors as under:
would you please help...
Building file: ../uGFX/DispDriver/gdisp_lld_ILI9341.c
Invoking: MCU GCC Compiler
%cd%
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DUSE_HAL_DRIVER -DSTM32F412Zx -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Inc -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/STM32F4xx_HAL_Driver/Inc -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Drivers/CMSIS/Include -IC:/Ac6/ProjectsFromCube/NucleoWith9341/Debug -IC:/Ac6/ugfx_2.7/Src -IC:/Ac6/ugfx_2.7 -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fmessage-length=0 -MMD -MP -MF"uGFX/DispDriver/gdisp_lld_ILI9341.d" -MT"uGFX/DispDriver/gdisp_lld_ILI9341.o" -o "uGFX/DispDriver/gdisp_lld_ILI9341.o" "../uGFX/DispDriver/gdisp_lld_ILI9341.c"
In file included from C:/Ac6/ugfx_2.7/gfx.h:195:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gos/gos_rules.h:20:3: error: #error "GOS: No operating system has been defined."
#error "GOS: No operating system has been defined."
^
C:/Ac6/ugfx_2.7/src/gos/gos_rules.h:24:3: error: #error "GOS: More than one operation system has been defined as TRUE."
#error "GOS: More than one operation system has been defined as TRUE."
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:200:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gos/gos.h:503:3: error: #error "Your operating system is not supported yet"
#error "Your operating system is not supported yet"
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:203:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gmisc/gmisc.h:60:9: error: unknown type name 'int32_t'
typedef int32_t fixed;
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:205:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:46:2: error: unknown type name 'gfxSem'
gfxSem sem;
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:62:2: error: unknown type name 'gfxSem'
gfxSem sem;
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:68:2: error: unknown type name 'gfxSem'
gfxSem sem;
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:80:2: error: unknown type name 'size_t'
size_t size; // @< The size of the buffer area following this structure (in bytes)
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:81:2: error: unknown type name 'size_t'
size_t len; // @< The length of the data in the buffer area (in bytes)
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:140:60: error: unknown type name 'delaytime_t'
gfxQueueGSyncItem *gfxQueueGSyncGet(gfxQueueGSync *pqueue, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:142:60: error: unknown type name 'delaytime_t'
gfxQueueFSyncItem *gfxQueueFSyncGet(gfxQueueFSync *pqueue, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:166:1: error: unknown type name 'bool_t'
bool_t gfxQueueFSyncPut(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:166:74: error: unknown type name 'delaytime_t'
bool_t gfxQueueFSyncPut(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:204:1: error: unknown type name 'bool_t'
bool_t gfxQueueFSyncPush(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:204:75: error: unknown type name 'delaytime_t'
bool_t gfxQueueFSyncPush(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:230:1: error: unknown type name 'bool_t'
bool_t gfxQueueFSyncInsert(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, gfxQueueASyncItem *pafter, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:230:104: error: unknown type name 'delaytime_t'
bool_t gfxQueueFSyncInsert(gfxQueueFSync *pqueue, gfxQueueFSyncItem *pitem, gfxQueueASyncItem *pafter, delaytime_t ms);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:290:1: error: unknown type name 'bool_t'
bool_t gfxQueueASyncIsIn(gfxQueueASync *pqueue, const gfxQueueASyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:291:1: error: unknown type name 'bool_t'
bool_t gfxQueueASyncIsInI(gfxQueueASync *pqueue, const gfxQueueASyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:292:1: error: unknown type name 'bool_t'
bool_t gfxQueueGSyncIsIn(gfxQueueGSync *pqueue, const gfxQueueGSyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:293:1: error: unknown type name 'bool_t'
bool_t gfxQueueGSyncIsInI(gfxQueueGSync *pqueue, const gfxQueueGSyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:294:1: error: unknown type name 'bool_t'
bool_t gfxQueueFSyncIsIn(gfxQueueFSync *pqueue, const gfxQueueFSyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:295:1: error: unknown type name 'bool_t'
bool_t gfxQueueFSyncIsInI(gfxQueueFSync *pqueue, const gfxQueueFSyncItem *pitem);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:359:1: error: unknown type name 'bool_t'
bool_t gfxBufferAlloc(unsigned num, size_t size);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:359:37: error: unknown type name 'size_t'
bool_t gfxBufferAlloc(unsigned num, size_t size);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:370:1: error: unknown type name 'bool_t'
bool_t gfxBufferIsAvailable(void);
^
C:/Ac6/ugfx_2.7/src/gqueue/gqueue.h:383:27: error: unknown type name 'delaytime_t'
GDataBuffer *gfxBufferGet(delaytime_t ms);
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:206:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:33:9: error: unknown type name 'uint16_t'
typedef uint16_t GEventType;
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:58:2: error: unknown type name 'gfxSem'
gfxSem waitqueue; // Private: Semaphore for the listener to wait on.
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:59:2: error: unknown type name 'uint16_t'
uint16_t flags; // Private: Flags for operation
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:72:2: error: unknown type name 'uint32_t'
uint32_t listenflags; // The flags the listener passed when the source was assigned to it.
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:73:2: error: unknown type name 'uint32_t'
uint32_t srcflags; // For the source's exclusive use. Initialised as 0 for a new listener source assignment.
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:133:1: error: unknown type name 'bool_t'
bool_t geventAttachSource(GListener *pl, GSourceHandle gsh, uint32_t flags);
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:133:61: error: unknown type name 'uint32_t'
bool_t geventAttachSource(GListener *pl, GSourceHandle gsh, uint32_t flags);
^
C:/Ac6/ugfx_2.7/src/gevent/gevent.h:164:40: error: unknown type name 'delaytime_t'
GEvent *geventEventWait(GListener *pl, delaytime_t timeout);
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:207:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:55:2: error: unknown type name 'systemticks_t'
systemticks_t when;
^
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:56:2: error: unknown type name 'systemticks_t'
systemticks_t period;
^
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:57:2: error: unknown type name 'uint16_t'
uint16_t flags;
^
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:117:62: error: unknown type name 'bool_t'
void gtimerStart(GTimer *pt, GTimerFunction fn, void *param, bool_t periodic, delaytime_t millisec);
^
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:117:79: error: unknown type name 'delaytime_t'
void gtimerStart(GTimer *pt, GTimerFunction fn, void *param, bool_t periodic, delaytime_t millisec);
^
C:/Ac6/ugfx_2.7/src/gtimer/gtimer.h:139:1: error: unknown type name 'bool_t'
bool_t gtimerIsActive(GTimer *pt);
^
In file included from C:/Ac6/ugfx_2.7/gfx.h:208:0,
from ../uGFX/DispDriver/gdisp_lld_ILI9341.c:8:
C:/Ac6/ugfx_2.7/src/gdisp/gdisp.h:39:9: error: unknown type name 'int16_t'
typedef int16_t coord_t;
^
C:/Ac6/ugfx_2.7/src/gdisp/gdisp.h:157:31: fatal error: gdisp_lld_config.h: No such file or directory
compilation terminated.
make: *** [uGFX/DispDriver/gdisp_lld_ILI9341.o] Error 1 -
hi
Thanks for your replies- here is what I am doing - I have a physical folder in my proejct directory called uGFX - where in I put all the "output" folder content from the uGFX-Studio after the code is generated. I also have a folder "DispDriver" under uGFX where in I put files related to the driver from the particular driver folder from "ugfx_2.7\drivers\gdisp". I have attached the pic file wiht this which would explain better.
With this set up, I am still getting the same error - "fatal error: mf_bwfont.h: No such file or directory" - I know this file is under "ugfx_2.7\src\gdisp\mcufont" would you please help me..
thanks
Silas
-
Thank you so much Joel & Andrew
Silas
-
Hi
I am using AC6 System Workbench for ARM with STM32CubeMx + TFT LCD with ILI9341 8 bit interface over FSMC. I tested the LCD with FSMC for simple routines like put pixel and fill the screen with color and it looks fine. Using the uGFX-Studio, I did only one page, very simple - using default widget style, generated the code. Also updated the template and renamed to board_ILI9341.h. And then finally copied required files into my project in System Workbench. Also added "include" paths.
When I build the project, at first I got error: "The font file is not compatible with this version of mcufont." in the #ifndef MF_BWFONT_VERSION_4_SUPPORTED from the file DejaVuSans10.c, along with other typedef errors. But then found that in the directory ../ugfx_2.7 there are files mf_bwfont.h, mf_rlefont.h and mf_scaledfont.h which are actually empty, and these files exist elsewhere in the subfolders. Also there is this note in these files: "New versions of the font generator do not generate these include lines." - I did not use the font generator. But anyways, I just renamed these files and tried rebuilding - and I get this error: mf_bwfont.h: No such file or directory - this is of course in the include path. Any clue or idea what am I missing here? Under my "includes" I can see all the paths and under each I can see all the files in the tree structure in my project. Not sure what is causing this error..
Thanks in advance
SilasV
-
Looks like this has already been answered I did the search first before posting - searching for "v0.20" and the search did not return anything - something wrong there
Well in the youtube video - it was mentioned that it is a preview and releasing in couple of weeks - and that was in Aug 2016..
Ok so I will play with v0.15 and will come back if questions..
Thanks
SilasV
-
Hi
I am new to uGFX - I thought I will give it a try - coming from STemWin - and in hope to get quick support if needed
I downloaded required files - but I found that uGFX-Studio in the download is v0.15 - where can I get v0.20? I saw the video on youtube (https://www.youtube.com/ watch?v=J4Dss0sHplM - posting the link actually embeds the youtube widget - that is so cool - but I just wanted to put the link). Can anyone help me? Is the version 0.20 still not officially released?
Thanks
SilasV
uGFX-Studio - Generated code used in AC6 System Workbench for ARM - Compile error
in uGFX-Studio
Posted
Thanks @inmarket and @Joel Bodenmann
If the new version is coming out in June, I think I can wait till that time. Just two weeks more !
Silas