Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. Hello! Hello! I want to write my display driver for uGFX My display on the microcontroller otm8009a is connected via a 16 bit parallel bus to stm32f407ve via FSMC. Using the cube, I generated the FSMC initialization code. I have addresses in the memory of the microcontroller: #define LCD_REG 0x60000000 #define LCD_DATA 0x6007FFFE I wrote the initialization of the display controller and in the end I have a working functions like: void LCD_DrawPoint(uint16_t x, uint16_t y, uint16_t color) //color in RGB565 { LCD_SetWindows(x, y, x, y); LCD_DATA = Color; } void LCD_Clear(uint16_t Color) { unsigned int i; uint32_t total_point = width * height; LCD_SetWindows(0, 0, width - 1, height - 1); for(i = 0; i < total_point; i++) { LCD_DATA = Color; } } Help me please understand how I should write a driver for uGFX.
  3. inmarket

    Chinese font

    Yes. A font that large (tall) is likely to not work. Given that most embedded displays are 320x240 or smaller it is not unexpected that a line height of 267 would be considered invalid. That means a single line of text won't fit on most displays. Given the aspect ratio of most fonts you would be struggling to fit 3 characters width wise as well. I know displays are getting larger and you obviously have a use case for such a large font, but I am not surprised it fails at this size. We will have a look to see if we can fix this but that won't be quick due to our other workloads. Alternatives, 1. You can try editing the produced c file and manually adjusting the line height down to 255 (the largest value currently supported). 2. Fix the font problem in ugfx and the encoder and submit them as patches to ugfx. We would greatly appreciate them.
  4. DrAB

    Chinese font

    I will look for another Simplified Chinese font (definitely TTF) and try with that. Regarding large font size ... if you try DejaVuSans-Bold you will see that you can't generate a size >150 ... mcufont just exits (with no error reported). Also, if you do manage to generate a large font ... e.g. Anton-Regular at size=182 (the largest that produces a DAT file) you will find that the gU8 font->line_height field is "267, /* line height */", which isn't working well because the field was too small! 😞
  5. Joel Bodenmann

    Chinese font

    Hi, The font converter engine supports TTF and BDF font files. I think the font converter should reject other files but maybe that's not the case and it can't process at some point. The online font converter definitely checks for the proper file extension.
  6. DrAB

    Chinese font

    Trying to use Google Noto Sans SC (Simplified Chinese) font. Downloaded the OTF and (import_ttf) converted to DAT using mcufont.exe 16 bw. But bwfont_export terminates with a partially complete .c file. 😞 Separately mcufont terminates when generating large, say 200, font sizes, and doesn't produce a usable DAT file. 😞
  7. Make sure that all your DMA stuff is setup properly (i.e that there are no conflicts). Keep in mind that the DMA stuff is not part of µGFX - it's part of the application. You need to configure all the DMA components in a way that it works for the entire application. You might also find this forum post helpful:
  8. Earlier
  9. hai, before it i have done make data aquition with ADC external using SPI DMA... but when i mix it in uGFX, interrupt not show up... anyone can help? this is my code ------------------------------------------------------------------------------------------------------------------------------------------------------------------- #if 1 //DMA1 stream 3 CH_FAST_IRQ_HANDLER(STM32_DMA1_CH3_HANDLER){ CH_IRQ_PROLOGUE(); chSysLockFromISR(); // THIS IS NEVER RUNNING palSetLine(LINE_ARD_D4); palClearLine(LINE_ARD_D4); //TCIF[3:0]: stream x transfer complete interrupt flag (x = 3..0) //in DMA low interrupt status register (DMA_LISR) if ((DMA1->LISR & DMA_LISR_TCIF3) != 0) { //NSS high SPI2->CR1 |= SPI_CR1_SSI; //disable SPI SPI2->CR1 &= ~SPI_CR1_SPE; stop_sclk(); palSetLine(LINE_ARD_D4); uint32_t e_adc = (ADC_ConvertedValue[0] << 16) | (ADC_ConvertedValue[ 1 ]);// & 0xFF00); if(titik_spi<SAMPLING_AMBIL){ #ifdef LIHAT_HEX data_sample[titik_spi] = e_adc; #else data_sample[titik_spi] = e_adc & 0xffffff00; #endif // DEBUG titik_spi++; }else sudah_penuh=true; //CTCIF[3:0]: stream x clear transfer complete interrupt flag (x = 3..0) //Writing 1 to this bit clears the corresponding TCIFx flag in the DMA_LISR register. DMA1->LIFCR |= DMA_LIFCR_CTCIF3; palClearLine(LINE_ARD_D4); spi_process++; } chSysUnlockFromISR(); CH_IRQ_EPILOGUE(); } #endif // this is run in main function void dma_config(){ // enable clock dma1 RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN; // de init dma DMA1_Stream3->CR = 0; DMA1_Stream3->FCR = 0; DMA1_Stream3->NDTR = 0; DMA1_Stream3->PAR = 0; DMA1_Stream3->M0AR = 0; uint32_t tmpreg = 0; /*------------------------- DMAy Streamx CR Configuration ------------------*/ /* Get the DMAy_Streamx CR value */ tmpreg = DMA1_Stream3->CR; /* Clear CHSEL, MBURST, PBURST, PL, MSIZE, PSIZE, MINC, PINC, CIRC and DIR bits */ tmpreg &= ((uint32_t)~(DMA_SxCR_CHSEL | DMA_SxCR_MBURST | DMA_SxCR_PBURST | \ DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \ DMA_SxCR_MINC | DMA_SxCR_PINC | DMA_SxCR_CIRC | \ DMA_SxCR_DIR)); /* Configure DMAy Streamx: */ /* Set CHSEL bits according to DMA_CHSEL value */ tmpreg |= 0; //000: channel 0 selected /* Set DIR bits according to DMA_DIR value */ tmpreg |= 0; //00: peripheral-to-memory /* Set PINC bit according to DMA_PeripheralInc value */ tmpreg |= 0; //0: peripheral address pointer is fixed /* Set MINC bit according to DMA_MemoryInc value */ tmpreg |= DMA_SxCR_MINC; //1: memory address pointer is incremented after each data transfer (increment is done according to MSIZE) /* Set PSIZE bits according to DMA_PeripheralDataSize value */ tmpreg |= DMA_SxCR_PSIZE_0; //01: half-word (16-bit) (8 bit) /* Set MSIZE bits according to DMA_MemoryDataSize value */ tmpreg |= DMA_SxCR_MSIZE_0; //01: half-word (16-bit) /* Set CIRC bit according to DMA_Mode value */ tmpreg |= 0; //0: circular mode disabled /* Set PL bits according to DMA_Priority value */ tmpreg |= DMA_SxCR_PL_1 | DMA_SxCR_PL_0; //11: very high /* Set MBURST bits according to DMA_MemoryBurst value */ tmpreg |= 0; //00: single transfer /* Set PBURST bits according to DMA_PeripheralBurst value */ tmpreg |= 0; //00: single transfer /* Write to DMAy Streamx CR register */ DMA1_Stream3->CR = tmpreg; /*------------------------- DMAy Streamx FCR Configuration -----------------*/ /* Get the DMAy_Streamx FCR value */ tmpreg = DMA1_Stream3->FCR; /* Clear DMDIS and FTH bits */ tmpreg &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH); /* Configure DMAy Streamx FIFO: Set DMDIS bits according to DMA_FIFOMode value Set FTH bits according to DMA_FIFOThreshold value */ //WE NOT USE FIFO!!!! tmpreg |= DMA_SxFCR_FTH_0; //01: 1/2 full FIFO /* Write to DMAy Streamx CR */ DMA1_Stream3->FCR = tmpreg; /*------------------------- DMAy Streamx NDTR Configuration ----------------*/ /* Write to DMAy Streamx NDTR register */ DMA1_Stream3->NDTR = 2; // 16 bit * 2 /*------------------------- DMAy Streamx PAR Configuration -----------------*/ /* Write to DMAy Streamx PAR */ //dari OVM #define SPI3_DR_ADDRESS ((uint32_t) 0x40003C0C) /* lihat halaman 709 dan table 1 hal 50 */ #define SPI2_DR_ADDRESS ((uint32_t) 0x4000380C) DMA1_Stream3->PAR = (uint32_t)SPI2_DR_ADDRESS; /*------------------------- DMAy Streamx M0AR Configuration ----------------*/ /* Write to DMAy Streamx M0AR */ DMA1_Stream3->M0AR = &ADC_ConvertedValue[0]; // /* Enable the selected DMA transfer interrupts */ DMA1_Stream3->CR |= DMA_SxCR_TCIE; //| DMA_SxCR_HTIE | DMA_SxCR_TEIE | DMA_SxCR_DMEIE; //STM32_GPT_TIM5_IRQ_PRIORITY //STM32_SPI_SPI2_DMA_PRIORITY nvicEnableVector(DMA1_Stream3_IRQn,2);//CORTEX_PRIO_MASK tmpreg = DMA1_Stream3->CR; chprintf(chp,"---> See DMA1_Stream3->CR = 0x%x\r\n",tmpreg); tmpreg = DMA1_Stream3->FCR; chprintf(chp,"---> See DMA1_Stream3->FCR = 0x%x\r\n",tmpreg); tmpreg = DMA1_Stream3->NDTR; chprintf(chp,"---> See DMA1_Stream3->NDTR = 0x%x\r\n",tmpreg); tmpreg = DMA1_Stream3->PAR; chprintf(chp,"---> See DMA1_Stream3->PAR = 0x%x\r\n",tmpreg); tmpreg = DMA1_Stream3->M0AR; chprintf(chp,"---> See DMA1_Stream3->MOAR = 0x%x\r\n",tmpreg); } thank u...
  10. hai, i have same problem with u when i use DMA interrupt to do aquire data ADC external with spi, interrupt doesnt show up. can u tell me step by step?
  11. Hi, Thank you for the note. That's correct & intended behavior. The public beta phase of the µGFX-Studio is currently paused.
  12. Dear Joel, just a short technical note: the download page at https://community.ugfx.io/files/category/4-ugfx-studio-beta/ appears to be empty (in particular there is no red box with hints). Thank you for your work Claus
  13. 1Mg byte of memory. I think series STMF303 have opamps and comparators too, but memory limit is 512kb. I'm going to read about those PSoC, but I like the huge amount of information about STM32 series. Have Cypress an IDE like CubeIDE or so??
  14. What exactly is "1mg" or "1Mg"? If you also need OpAmps you might want to have a look at the "PSoC" series of Cypress. The PSoC 4, 5 and 6 all feature Cortex-M cores. Those devices come with your regular amount of peripherals (SPI, I2C, ...) but also feature programmable analog components such as OpAmps, comparators and so on. There's a guide on how to use µGFX with the PSoC creator studio (their IDE) in our wiki.
  15. Thank you very much, Joel, for your quick response. The choose for the STM32F103 was for be very cheap. In the project with the ESP8266 I use almost the 1mg memory, so I'll choose a MCU with 1Mg memory minim. I need also OpAmps (1 or 2) and some comparators. I'll use 2 ISP devices, and 3 or 4 I2C devices. I want the finished device can be updated for the final user by USB, in an easy way (some electronic to avoid moving jumpers). Wich MCU should I choose?
  16. Hello and welcome to the µGFX community! The answer to all your questions is: Yes. µGFX has been written to run on virtually any system/platform. The STM32F103 is very well supported. In fact, when I started writing µGFX the initial development took place on an STM32F103RB6T. However, while still working great the STM32F103 is "quite an old" chip by now. There have been several revisions on even basic things such as the SPI and I2C peripherals ever since then (and they provided huge improvements). If you could better state your requirements (especially in terms of memory & CPU resources) we might be able to recommend a "better" chip to you. But keep in mind that this would just be optimizing: µGFX will definitely run just well within the environment that you described. µGFX also allows you to compile your resources (eg. images) directly as part of the application itself using GFILE's ROMFS so you don't have to fiddle around with linker scripts.
  17. Hi all, I have a project developed with an ESP8266 and a 1,8" TFT ST7735. I have also some devices connected to I2C bus and the ISP bus has the TFT and another device. The graphics used are BMP for differents menu options (The user can choose differents options, and every option has their own screen. Some bars moving up and down, some text and no need for 3d graphics nor video. The beter way I found for this is to work on Photohop, export as BMP and convert to RGB565 with a program. All data (program and graphics) are in oly one .bin file, and the final user can update the firmware more or less in an easy way :) The project is finished, and works very well. But I'm discovering the STM32 MCUs family and I'm very impressed with them, so I'm thinking about migrating to these MCU. Some reasons are: -Endless GPIOs to work -Very well documented. -Very powerfull MCU -An integrated IDE supported by ST. For the migrating, I'm thinking on the STM32F103 family, because they are very cheap an power enough. My questions are: 1.-Can work together the STM32F103 with and 1,8"/2,3"/3,2" TFT screens? 2.-If yes, Is there a way to add external memory for the graphics (I'm using all the memory on the ESP8266, basically with the graphics data)? 3.-If yes, Will I can to upload all the .bin (program and graphics) with just one file)? 4.-Can I develope the graphics with the ugFX? 5.-Do you think will be better another family of STM32? I'm very newbye with this, so any information will be welcome. If you can point me to the proper readings could be fantastic!
  18. joedarock

    Next Page....

    The Next Page links on this forum don't seem to work. Joe
  19. Hello, I'm currently evaluating different embedded graphic frameworks and ugfx looks very promising except that I can't find any version of the GUI-Designer. Could you point me into any direction where I could find a copy of ugfx-studio? best regards
  20. Thank you for your reply. I do not know how, but I tried use the 2.8 version and my friend found the mistake in sending process at 8 bit mode in library for ili9488, so now it's working. Also we found, that rotation of 0 degree do not resize the frame (stay to show that rotated frame, but not the size of displaying, and it cats half of picture). If somebody have same problem, I used to take this project at first: https://github.com/logical/ili9488-stm32f103 build uGFX for STM32cubeIDE with this instruction: https://wiki.ugfx.io/index.php/Using_Eclipse and changed function for reading: uint16_t ILI9488ReadData(void) { uint16_t data; BUS_input(); HAL_GPIO_WritePin(GPIOB, GPIO_DC,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB,GPIO_WR,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET); data=READ_LCD; HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET); BUS_output(); return data; } part: HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET); data=READ_LCD; HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET); to HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET); data=READ_LCD; May be my comments will be more useful for someone else
  21. As I said, you either need to... 1. Not use the F7 specific code for RAW32, or 2. Fix the assembler so that it works with your compiler, or 3. Use a different underlying operating system. Whilst the c code in ugfx is extremely portable, any assembler code is optional and both cpu and compiler dependant. With Keil v6 it is passing our protection tests limiting that assembler to arm code chain compilers however it is not compiling it. So, you have 3 alternative actions you can take above that will solve the problem. Persisting without doing one of the above will not work.
  22. hello, after some more hours of senseless working and testing. I can not compile ugfx. In my opinion, when GFX_CPU_CORTEX_M7_FP is activated, Arm Complier 6.12 can not compile this version fo ugfx. my compiler settings: // Options that (should where relevant) apply to all operating systems // #define GFX_NO_INLINE GFXOFF #define GFX_COMPILER GFX_COMPILER_KEIL // #define GFX_SHOW_COMPILER GFXOFF #define GFX_CPU GFX_CPU_CORTEX_M7_FP // #define GFX_CPU_NO_ALIGNMENT_FAULTS GFXOFF // #define GFX_CPU_ENDIAN GFX_CPU_ENDIAN_UNKNOWN // #define GFX_OS_HEAP_SIZE 0 // #define GFX_OS_NO_INIT GFXON #define GFX_OS_INIT_NO_WARNING GFXON // #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine // #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine // #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine // #define GFX_OS_CALL_UGFXMAIN GFXOFF // #define GFX_OS_UGFXMAIN_STACKSIZE 0 // #define GFX_EMULATE_MALLOC GFXOFF // #define GFX_MEM_LT64K GFXOFF Compiler 5 compiles with 0 errors and 47 warnings same code with compiler 6 compiles with 2 errors and 37 warnins Errors are: ../../ugfx/src/gos/gos_x_threads_cortexm47fp.h(63): error: expected identifier or '(' static __asm void _gfxStartThread(thread *oldt, thread *newt) {
  23. Did you set your GFX_CPU macro to the appropriate value (eg. GFX_CPU_CORTEX_M7_FP in your case)? If you keep using the Raw32 port setting that macro will ensure that the assembly code is understandable by Keil (together with GFX_COMPILER_KEIL). You can find more information in the documentation: https://wiki.ugfx.io/index.php/GOS
  24. There are two errors in this. The warnings can be ignored, there is actually nothing wrong with those, the compiler is being unnecessarily noisy. The two errors relate to assembler code usd for the F7 specific version of the RAW32 task switcher. There are two alternate ways around this... 1. Turn off the F7 specific code in the task switcher by setting the appropriate macro in your gfxconf.h file. (I am not at my desktop right now so I can't immediately tell you which that macro is). We wrote the assembler routines for some cpu's and some compilers because the setjmp routines in their C libraries were broken. Keil was one of those. Hopefully in upgrading the compiler they have also fixed their C library. Alternatively you could fix the assembler so i works for Keil v6 and contribute the code back to us 2. Use a different underlying operating system. You are currently using RAW32 (our own implmentation of a minimal os). You could try the Keil ROS for which both versions are supported, the later being the better os. You could also try FreeRTOS or ChibiOS
  25. With F7 CPU and a minimal config file I get these errors(2) and warings(14 ../../ugfx/src/gfx_mk.c(14): warning: In file included from... ../../ugfx/src/gfx.c(16): warning: In file included from... ../../ugfx/src/../gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(93): warning: In file included from... ../../ugfx/src/gfx_compilers.h(624): warning: '#pragma anon_unions' is an ARM Compiler 5 extension, and is not supported by ARM Compiler 6 [-Warmcc-pragma-anon-unions] #pragma anon_unions // Allow anonymous unions ^ ../../ugfx/src/gfx_mk.c(14): warning: In file included from... ../../ugfx/src/gfx.c(16): warning: In file included from... ../../ugfx/src/gdisp/../../gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(177): warning: In file included from... ../../ugfx/src/gdisp/gdisp.h(54): warning: redefinition of typedef 'gPoint' is a C11 feature [-Wtypedef-redefinition] } gPoint; ^ ../../ugfx/src/gmisc/gmisc.h(29): note: previous definition is here typedef struct gPoint gPoint; ^ ../../ugfx/src/gfx_mk.c(14): warning: In file included from... ../../ugfx/src/gfx.c(16): warning: In file included from... ../../ugfx/src/gwin/../../gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(178): warning: In file included from... ../../ugfx/src/gwin/gwin.h(60): warning: redefinition of typedef 'GHandle' is a C11 feature [-Wtypedef-redefinition] } GWindowObject, * GHandle; ^ ../../ugfx/src/gwin/gwin.h(33): note: previous definition is here typedef struct GWindowObject *GHandle; ^ ../../ugfx/src/gfx_mk.c(15): warning: In file included from... ../../ugfx/src/gos/gos_mk.c(14): warning: In file included from... ../../ugfx/src/gos/gos_raw32.c(30): warning: "GOS: Raw32 - Make sure you initialize your hardware and the C runtime before calling gfxInit() in your application!" [-W#warnings] #warning "GOS: Raw32 - Make sure you initialize your hardware and the C runtime before calling gfxInit() in your application!" ^ ../../ugfx/src/gfx_mk.c(15): warning: In file included from... ../../ugfx/src/gos/gos_mk.c(21): warning: In file included from... ../../ugfx/src/gos/gos_x_threads.c(201): warning: In file included from... ../../ugfx/src/gos/gos_x_threads_cortexm47fp.h(49): error: expected identifier or '(' static __asm void _gfxTaskSwitch(thread *oldt, thread *newt) { ^ ../../ugfx/src/gos/gos_x_threads_cortexm47fp.h(63): error: expected identifier or '(' static __asm void _gfxStartThread(thread *oldt, thread *newt) { ^ ../../ugfx/src/gfx_mk.c(15): warning: In file included from... ../../ugfx/src/gos/gos_mk.c(21): warning: In file included from... ../../ugfx/src/gos/gos_x_threads.c(484): warning: implicit declaration of function '_gfxTaskSwitch' is invalid in C99 [-Wimplicit-function-declaration] _gfxTaskSwitch(me, _gfxCurrentThread); ^ ../../ugfx/src/gos/gos_x_threads.c(506): warning: implicit declaration of function '_gfxTaskSwitch' is invalid in C99 [-Wimplicit-function-declaration] _gfxTaskSwitch(me, _gfxCurrentThread); ^ ../../ugfx/src/gos/gos_x_threads.c(540): warning: implicit declaration of function '_gfxStartThread' is invalid in C99 [-Wimplicit-function-declaration] _gfxStartThread(me, t); ^ ../../ugfx/src/gfx_mk.c(16): warning: In file included from... ../../ugfx/src/gdriver/gdriver_mk.c(8): warning: In file included from... ../../ugfx/src/gdriver/gdriver.c(12): warning: In file included from... ../../ugfx/src/gdriver/gdriver.h(90): warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] typedef const struct GDriverVMT const GDriverVMTList[1]; ^ ../../ugfx/src/gfx_mk.c(18): warning: In file included from... ../../ugfx/src/gdisp/gdisp_mk.c(21): warning: In file included from... ../../ugfx/src/gdisp/gdisp.c(586): warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] extern const GDISPVMT const GDISPVMT_OnlyOne[1]; ^ 9 warnings and 2 errors generated. compiling gfx_mk.c... compiling GLCD.c... ../../ugfx/drivers/gdisp/SSD1289/gdisp_lld_SSD1289.c(8): warning: In file included from... ../../ugfx\gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(93): warning: In file included from... ../../ugfx/src/gfx_compilers.h(624): warning: '#pragma anon_unions' is an ARM Compiler 5 extension, and is not supported by ARM Compiler 6 [-Warmcc-pragma-anon-unions] #pragma anon_unions // Allow anonymous unions ^ ../../ugfx/drivers/gdisp/SSD1289/gdisp_lld_SSD1289.c(8): warning: In file included from... ../../ugfx/src/gdisp/../../gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(177): warning: In file included from... ../../ugfx/src/gdisp/gdisp.h(54): warning: redefinition of typedef 'gPoint' is a C11 feature [-Wtypedef-redefinition] } gPoint; ^ ../../ugfx/src/gmisc/gmisc.h(29): note: previous definition is here typedef struct gPoint gPoint; ^ ../../ugfx/drivers/gdisp/SSD1289/gdisp_lld_SSD1289.c(8): warning: In file included from... ../../ugfx/src/gwin/../../gfx.h(7): warning: In file included from... ../../ugfx/src/gfx.h(178): warning: In file included from... ../../ugfx/src/gwin/gwin.h(60): warning: redefinition of typedef 'GHandle' is a C11 feature [-Wtypedef-redefinition] } GWindowObject, * GHandle; ^ ../../ugfx/src/gwin/gwin.h(33): note: previous definition is here typedef struct GWindowObject *GHandle; ^ ../../ugfx/drivers/gdisp/SSD1289/gdisp_lld_SSD1289.c(14): warning: In file included from... ../../ugfx/drivers/gdisp/SSD1289/../../../src/gdisp/gdisp_driver.h(22): warning: In file included from... ../../ugfx/src/gdisp/../gdriver/gdriver.h(90): warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] typedef const struct GDriverVMT const GDriverVMTList[1]; ^ ../../ugfx/drivers/gdisp/SSD1289/gdisp_lld_SSD1289.c(14): warning: In file included from... ../../ugfx/drivers/gdisp/SSD1289/../../../src/gdisp/gdisp_driver.h(735): warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] const GDISPVMT const GDISP_DRIVER_VMT[1] = {{ ^ 5 warnings generated. compiling gdisp_lld_SSD1289.c... ".\PA_F7_B201\PA_F7_B201.axf" - 2 Error(s), 14 Warning(s).
  26. I fully agree with @inmarket here. We've yet to come across a C-Compiler that can't handle µGFX. We're running this project for over 7 years now and never encountered any issue on this end of things. As before: We're happy to help where we can - but you need to provide a bit more information.
  1. Load more activity
×
×
  • Create New...