Jump to content

Using uGFX on bare metal with STM32F4/EMbestDMSTF4BB


aymen

Recommended Posts

Hello

I have some trouble using uGFX on STM32. I work with coocox IDE and after a compilation i get some errors with conflicting types, undeclared structures ( IOBUS, PWMConfig...) and countless warnings. Here is the compilation report :

GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.9 2015q1\bin
compile:
[mkdir] Skipping C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\rfid_project\Debug\bin because it already exists.
[mkdir] Skipping C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\rfid_project\Debug\obj because it already exists.
[cc] 50 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119 -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\include -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gqueue -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB\example_chibios_2.x -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_boot -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516 -IC:\CooCox\CoIDE\workspace -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdriver -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base -IC:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src -IC:\CooCox\CoIDE C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput_dial.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image_bmp.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdriver\gdriver.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_scang.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_printg.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\source\stm32f4xx_usart.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_petitfs_wrapper.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gmisc\gmisc_matrix2d.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos\gos_raw32.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput_keyboard.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image_jpg.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_rom.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput_toggle.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_stdio.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image_gif.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput_keyboard_microcode.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_ram.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_boot\startup\startup_stm32f4xx.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_strings.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\main.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\source\stm32f4xx_rcc.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gaudio\gaudio.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gtimer\gtimer.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_fonts.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_petitfs.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_native.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_fatfs.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gmisc\gmisc.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\source\stm32f4xx_fsmc.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\source\stm32f4xx_gpio.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image_png.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_boot\system_stm32f4xx.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_lib\source\stm32f4xx_dma.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fs_mem.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfile\gfile_fatfs_wrapper.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image_native.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput\ginput_mouse.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gadc\gadc.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin\gwin.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gmisc\gmisc_arrayops.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_pixmap.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gfx.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp\gdisp_image.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gevent\gevent.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gmisc\gmisc_trig.c C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gqueue\gqueue.c
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos\gos_raw32.c: In function '_gosInit':
[cc] #warning "GOS: Raw32 - Make sure you initialize your hardware and the C runtime before calling gfxInit() in your application!"
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos\gos_raw32.c:34:3: warning: #warning "GOS: Raw32 - Make sure you initialize your hardware and the C runtime before calling gfxInit() in your application!" [-Wcpp]
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos\gos_raw32.c: In function 'gfxSystemTicks':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gos\gos_raw32.c:66:4: warning: implicit declaration of function 'HAL_GetTick' [-Wimplicit-function-declaration]
[cc] return HAL_GetTick();
[cc] ^
[cc] In file included from c:\program files\gnu tools arm embedded\4.9 2015q1\lib\gcc\arm-none-eabi\4.9.3\include\stdint.h:9:0,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis/core_cm4.h:153,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_boot/stm32f4xx.h:240,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:8,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:16:
[cc] c:\program files\gnu tools arm embedded\4.9 2015q1\arm-none-eabi\include\stdint.h:44:19: error: conflicting types for 'int32_t'
[cc] typedef __int32_t int32_t ;
[cc] ^
[cc] In file included from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/src/gos/gos.h:462:0,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/gfx.h:201,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:8:
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/src/gos/gos_raw32.h:51:22: note: previous declaration of 'int32_t' was here
[cc] typedef signed int int32_t;
[cc] ^
[cc] In file included from c:\program files\gnu tools arm embedded\4.9 2015q1\lib\gcc\arm-none-eabi\4.9.3\include\stdint.h:9:0,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis/core_cm4.h:153,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE\cmsis_boot/stm32f4xx.h:240,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:8,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:16:
[cc] c:\program files\gnu tools arm embedded\4.9 2015q1\arm-none-eabi\include\stdint.h:45:20: error: conflicting types for 'uint32_t'
[cc] typedef __uint32_t uint32_t ;
[cc] ^
[cc] In file included from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/src/gos/gos.h:462:0,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/gfx.h:201,
[cc] from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:8:
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516/src/gos/gos_raw32.h:52:23: note: previous declaration of 'uint32_t' was here
[cc] ^
[cc] In file included from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:16:0:
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:33:14: error: unknown type name 'PWMConfig'
[cc] static const PWMConfig pwmcfg = {
[cc] ^
[cc] typedef unsigned int uint32_t;
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:35:2: warning: excess elements in scalar initializer
[cc] 100, /* PWM period is 100 cycles. */
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:35:2: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:36:2: warning: excess elements in scalar initializer
[cc] 0,
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:36:2: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:37:2: warning: braces around scalar initializer
[cc] {
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:37:2: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:38:3: warning: braces around scalar initializer
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0},
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:38:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:38:4: error: 'PWM_OUTPUT_ACTIVE_HIGH' undeclared here (not in a function)
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0},
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:38:3: warning: excess elements in scalar initializer
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0},
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:38:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: braces around scalar initializer
[cc] ^
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0},
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:39:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: braces around scalar initializer
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0},
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:40:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: braces around scalar initializer
[cc] {PWM_OUTPUT_ACTIVE_HIGH, 0}
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:41:3: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:42:2: warning: excess elements in scalar initializer
[cc] },
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:42:2: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:43:2: warning: excess elements in scalar initializer
[cc] 0,
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:43:2: warning: (near initialization for 'pwmcfg')
[cc] };
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:45:1: warning: excess elements in scalar initializer
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:45:1: warning: (near initialization for 'pwmcfg')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h: In function 'init_board':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:56:4: warning: implicit declaration of function 'rccEnableAHB3' [-Wimplicit-function-declaration]
[cc] rccEnableAHB3(RCC_AHB3ENR_FSMCEN, 0);
[cc] ^
[cc] In file included from C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\drivers\gdisp\SSD2119\gdisp_lld_SSD2119.c:16:0:
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:69:3: error: unknown type name 'IOBus'
[cc] ^
[cc] IOBus busD = {GPIOD, (1 << 0) | (1 << 1) | (1 << 4) | (1 << 5) | (1 << 7) | (1 << 8) |
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:69:3: warning: initialization makes integer from pointer without a cast
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:69:3: warning: (near initialization for 'busD')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:70:9: warning: excess elements in scalar initializer
[cc] (1 << 9) | (1 << 10) | (1 << 14) | (1 << 15), 0};
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:70:9: warning: (near initialization for 'busD')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:70:9: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:70:9: warning: (near initialization for 'busD')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:72:3: error: unknown type name 'IOBus'
[cc] IOBus busE = {GPIOE, (1 << 3) | (1 << 7) | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12) |
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:72:3: warning: initialization makes integer from pointer without a cast
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:72:3: warning: (near initialization for 'busE')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:73:9: warning: excess elements in scalar initializer
[cc] (1 << 13) | (1 << 14) | (1 << 15), 0};
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:73:9: warning: (near initialization for 'busE')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:73:9: warning: excess elements in scalar initializer
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:73:9: warning: (near initialization for 'busE')
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:76:3: warning: implicit declaration of function 'palSetBusMode' [-Wimplicit-function-declaration]
[cc] palSetBusMode(&busD, PAL_MODE_ALTERNATE(12));
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:76:3: warning: implicit declaration of function 'PAL_MODE_ALTERNATE' [-Wimplicit-function-declaration]
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:80:1: warning: multi-line comment [-Wcomment]
[cc] // FSMC_Bank1->BTCR[0 + 1] = (FSMC_BTR1_ADDSET_2 | FSMC_BTR1_ADDSET_1) \
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:93:3: warning: implicit declaration of function 'pwmStart' [-Wimplicit-function-declaration]
[cc] pwmStart(&PWMD4, &pwmcfg);
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:93:13: error: 'PWMD4' undeclared (first use in this function)
[cc] pwmStart(&PWMD4, &pwmcfg);
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:93:13: note: each undeclared identifier is reported only once for each function it appears in
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:94:3: warning: implicit declaration of function 'palSetPadMode' [-Wimplicit-function-declaration]
[cc] palSetPadMode(GPIOD, 13, PAL_MODE_ALTERNATE(2));
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:95:3: warning: implicit declaration of function 'pwmEnableChannel' [-Wimplicit-function-declaration]
[cc] pwmEnableChannel(&PWMD4, 1, 100);
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h: In function 'setpin_reset':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:107:3: warning: implicit declaration of function 'palClearPad' [-Wimplicit-function-declaration]
[cc] CLR_RST;
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:109:3: warning: implicit declaration of function 'palSetPad' [-Wimplicit-function-declaration]
[cc] SET_RST;
[cc] ^
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h: In function 'set_backlight':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\boards\base\Embest-STM32-DMSTF4BB/board_SSD2119.h:115:20: error: 'PWMD4' undeclared (first use in this function)
[cc] pwmEnableChannel(&PWMD4, 1, percent);
[cc] ^

BUILD FAILED
Total time: 7 seconds

Can someone please help me? Thank you very much !

Link to comment
Share on other sites

Hello aymen and welcome to the community!

The errors about the PWM that you're getting are because your'se using the ChibiOS/RT board files without actually using ChibiOS/RT. The board file that we provide for the STM32F4 Embest board are only for use together with ChibiOS/RT. If you don't want to use ChibiOS and go bare metal you have to implement your own board files. For this, please copy the empty template board files from /drivers/gdisp/SSD2119 (for the display) and /drivers/ginput/touch/STMPE811 (for the touchscreen) and implement them according to your setup.

Note: You can copy the empty files without implementing them and the project will still compile. This is handy as you can make sure that your build environment is working properly before you start implementing the board files.

In case of you're implementing board files for this board using the STDperiph library we would be happy to include them into the repository.

~ Tectu

Link to comment
Share on other sites

Hi!

Thank you Tectu you have solved my problem, everything is compiling fine. Now I am working to implement my driver according to my board (STM32F4 discovery). I will keep you in touch if i succeed in this task or if i have some issues doing this.

Thank you again for all this wonderful work!

Link to comment
Share on other sites

Just to clarify: You don't have to implement your own drivers, the drivers are already part of the uGFX library. What you have to do is implementing the board file which is just the interface through which uGFX talks to your hardware.

Let us know should you face any other problems.

~ Tectu

Link to comment
Share on other sites

Thank you for your answer Tectu. In fact by "drivers" i meant just the interface between uGFX and my board. I've managed to display something on the screen but i now have trouble using the GWIN libraries. I still have a bunch of undefined reference to various parameters in the code :

 Starting link
[cc][...]
[cc] ..\obj\main.o: In function `main':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\MMI_ProjectCoIDE/main.c:50: undefined reference to `ginputGetKeyboard'
[cc] ..\obj\ginput.o: In function `_ginputInit':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\ginput/ginput.c:34: undefined reference to `_gkeyboardInit'
[cc] ..\obj\gdisp_fonts.o: In function `gdispOpenFont':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp_fonts.c:48: undefined reference to `mf_get_font_list'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp_fonts.c:54: undefined reference to `mf_get_font_list'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp_fonts.c:60: undefined reference to `mf_get_font_list'
[cc] ..\obj\gwin_console.o: In function `gwinGConsoleCreate':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:344: undefined reference to `gwinSetVisible'
[cc] ..\obj\gwin_console.o: In function `gwinPutChar':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:479: undefined reference to `_gwinDrawStart'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:481: undefined reference to `_gwinDrawEnd'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:548: undefined reference to `_gwinDrawStart'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:550: undefined reference to `_gwinDrawEnd'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:565: undefined reference to `_gwinDrawStart'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin_console.c:590: undefined reference to `_gwinDrawEnd'
[cc] ..\obj\gdisp.o: In function `fillcharglyph':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp.c:3167: undefined reference to `mf_render_character'
[cc] ..\obj\gdisp.o: In function `gdispGDrawChar':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp.c:3176: undefined reference to `mf_character_width'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp.c:3179: undefined reference to `mf_render_character'
[cc] ..\obj\gdisp.o: In function `gdispGFillStringBox':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp.c:3300: undefined reference to `mf_render_aligned'
[cc] ..\obj\gdisp.o: In function `gdispGetCharWidth':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gdisp/gdisp.c:3322: undefined reference to `mf_character_width'
[cc] ..\obj\gwin.o: In function `_gwinInit':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin.c:51: undefined reference to `_gwmInit'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin.c:55: undefined reference to `_gwidgetInit'
[cc] ..\obj\gwin.o: In function `_gwindowCreate':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin.c:106: undefined reference to `_gwinWMAdd'
[cc] ..\obj\gwin.o: In function `gwinClear':
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin.c:228: undefined reference to `_gwinDrawStart'
[cc] C:\CooCox\CoIDE\workspace\ugfx_release_23_150516\src\gwin/gwin.c:230: undefined reference to `_gwinDrawEnd

Did i forget something? I am a little bit lost with all these file to include or not. Thank you for your help!

Link to comment
Share on other sites

You definitely forgot to include some files. Looking at the names of the undefined references will give you a pretty good idea which files you missed as we structured everything neatly.

What you're definitely missing: The actual GWIN files (gwinSetVisible is part of /src/gwin/gwin.[ch]), the mcufont code (which is located under /src/gdisp/mcufont/), the GINPUT keyboard code (include all the interface codes, even though you don't use them (keep them disabled in your configuration file)).

I hope that helps you to figure out what you're missing. It would take a very very very long time to list every single file here. If you hit any other problems please let us know. Happy to help where we can.

~ Tectu

Link to comment
Share on other sites

Hello,

Thank you for your answer Tectu the display is really working fine now! But i still have some trouble with the touch calibration. It keeps telling me that the calibration fail. Do i need to adjust some variables?

Link to comment
Share on other sites

There is some validation happening inside the calibration code: The very last cross that you click (the one in the middle) is to verify that the calibration was somewhat accurate. It basically checks the coordinates and when they are within a certain limit then you pass the calibration - otherwise it fails and you have to repeat the calibration process.

The first thing to do is not using your finger but something like an old plastic PDA pen or something that will vastly increase accuracy. If you can pass the calibration with a pen then your problem is definitely that you're not accurate enough with your finger. You can increase the value GMOUSE_STMPE811_FINGER_CALIBRATE_ERROR which is located inside of the touch board file. This value specifies the tolerance of the verification in pixels.

~ Tectu

Link to comment
Share on other sites

Hello !

I have followed your advice and used a pen but i very rarely pass the calibration process. I used the raw input readings functions and it returns these values (which are really weird in my opinion). Please find attached a screenshot of the test. When i touch the screen the values changes but does not correspond at the real coordinates. Thanks for your help.

20150609_214354_HDR.thumb.jpg.6c078137fa

Link to comment
Share on other sites

Thank you inmarket everything is working now! as you said my touch driver board file needed some rectifications :) I still have a question : is there somewhere in the code where i can configure the value for the Movement jitter and click jitter constants?

20150612_213845_HDR.thumb.jpg.25430423c0

Link to comment
Share on other sites

Well done on getting it working!

Yes. The default values can be set in your mouse board file or in your gfxconf.h

If you look at the template board file you will probably find they are listed there already. If not look at a couple of the other mouse driver template files, you will see how it works.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...