Jump to content

Alba800

Members
  • Posts

    9
  • Joined

  • Last visited

  1. Hi Tectu, I'm using the latest version from the master branch. I think the difference is in the meaning we give to "area". My intention was to copy part of the screen to another location, so something that has an x,y starting point and xsize,ysize; in my case It is a block of 150x200 pixels. Looking at your use of the blit routine i see that your dma2d initialization is for a small buffer (32 pixels) so the starting point is always the same and not related to xy coordinates and also never involves more than one line. Thats why I had to modify the dma2d initialization of the start address and the offset. (Which now works both with block coordinates and a buffer) P.S. actually,now I see that my offset initialization could not work for multi lined pixmaps...
  2. Hi, I had to make a change to get the gdisp_lld_blit_area working in gdisp_lld_STM32LTDC.c // Foreground memory address register // DMA2D->FGMAR = g->p.y1 * g->p.x2 * LTDC_PIXELBYTES + g->p.x1 * LTDC_PIXELBYTES + (uint32_t)g->p.ptr; DMA2D->FGMAR = g->p.y1 * g->g.Width * LTDC_PIXELBYTES + g->p.x1 * LTDC_PIXELBYTES + (uint32_t)g->p.ptr; // Foreground offset register (expressed in pixels) // DMA2D->FGOR = g->p.x2 - g->p.cx; DMA2D->FGOR = g->g.Width - g->p.x2; basically I had to change the DMA start address and offset to get it working I still have some problems with the clipping function in gdispGBlitArea where I had to comment this line // if (srcx+cx > srccx) cx = srccx - srcx; but I'm investigating thank you
  3. ok, I found the problem and now I can keep things separate. Unfortunately, my license for uGFX-Studio 0.7 has expired. How can I get a new one? Thanks Alberto
  4. I have done something similar, but with a pushbutton. In principle the system works, but only if I put the custom routine in gwin_button.c (since it refers to buttonVMT,which is static). void gwinButtonDraw_Frame(GWidgetObject *gw, void *param) { const GColorSet * pcol; (void) param; if (gw->g.vmt != (gwinVMT *)&buttonVMT) return; pcol = getButtonColors(gw); gdispGDrawBox(gw->g.display, gw->g.x, gw->g.y, gw->g.width-1, gw->g.height-1, pcol->fill); } Am I doing something wrong? Is there any way to put the custom routine in a separate file? thank You
  5. Ok. i am with ChibiOS 2.6.8, that's the reason. I will put this new define in my main.c and then shortly I will move to chibios 3 Thank you for the prompt response
  6. STM32F4 is a definition that I don't have, maybe STM32F429_439xx
  7. in file gdisp_lld_STM32LTDC.c (line 164) there is: // Enable the LTDC clock RCC->DCKCFGR1 = (RCC->DCKCFGR1 & ~RCC_DCKCFGR1_PLLSAIDIVR) | (1 << 16); /* /4 */ the compiler gives error on DCKCFGR1 (not found) to make it working I have to modify the line using DCKCFGR (without 1) RCC->DCKCFGR = (RCC->DCKCFGR & ~RCC_DCKCFGR_PLLSAIDIVR) | (1 << 16); /* /4 */ as declared in stm32f4xx.h an then everything works ciao Alberto
  8. Thank you for the solution, it works. But let's go a bit further. With this technique what is loaded in ram is a copy of the .bmp file and the actual conversion to pixel format is done later, while drawing the display.I think that this could slow down the drawing speed, also a bitblt is not possible. Any suggestion? Diversified memory allocation? Thank you again
  9. hello everybody and thanks to the uGFX team for the great job. I'm analyzing this library for my next job, so this is the question: suppose I have all my variables and stacks in the processor's internal RAM (STM32F429) and the display RAM (8 mega SDRAM) is on the external bus. If I want to cache an image from the SDcard (a big one, say 800x600), I need to use the external RAM, but I see that there only one allocation mechanism and that one is used for any kind of data. But I don't want to put my variables and stacks in the external RAM. So, how could I do this? Am I missing something? thank You in advance
×
×
  • Create New...