cancel
Showing results for 
Search instead for 
Did you mean: 

Compilation Error while running the target

NS.16
Associate II

i have making a project which i can simulate the project but i can't run the same on my target.0690X000006DFkpQAG.png

35 REPLIES 35

Hi @NS.16​,

You're always restricted by the hardware you're trying to run on. TouchGFX has no native support for decoding image formats runtime, only at source code generation time/compile time. But as you know there are examples of how to use libJPEG to do jpeg decoding and you could do the same for PNG and BMP.

So it is a manual effort if you want to dynamically decode BMP files (No transparency supported) at runtime from an SD card. Also consider that this has a performance penalty because data cannot simply be read from memory mapped flash.

How many images are we talking about? In the gigabytes?

Hi @Martin KJELDSEN​ 

Ok sir.The one image is 70kb i need to to insert atleast 25 images.So 25*70=1.7MB right.

By default the images are stored in External Flash. I think external flash is SDRAM .so the SDRAM size is 64Mbits known as 8MB.We have about 6.5 MB balance ,then why the graphics error is came?

Is SDRAM used for external flash? if not means where the stuffs are going to in flash or SRAM or SDRAM?

Why the graphics problem can you brief in detail?

Sorry for my poor english.

SDRAM is not the same as Flash. In fact, coming from the STM32F429-DISCO board there is no external flash available, only internal - So you are very restricted in terms of graphics assets.

Hi @Martin KJELDSEN​ 

Thank you sir.so finally our assets are stored into flash memory.So we can not insert more images than flash memory size which is 2MB.

Is that the 2MB memory is the reason for restricting our graphics?

What does it mean 64Mbits?is this represents speed

The SDRAM has 8 MB (64mbit / 8). The SDRAM doesn't maintain content across a power cycle, so the content must be filled with data stored elsewhere, ie the Internal FLASH

If you have multiple megabytes of content you will need a storage medium that will accommodate that, it could be an external memory chip, microSD card, or whatever.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Yes, you're limited to 2MB for both code and assets (fonts and images). This is not a lot for an application, even if it's only 240x320. We mostly discuss how to decode jpegs into DynamicBitmap(s), but it's also possible to do so with PNGs (that have an alpha channel). As i said before, decoding time is to be considered, so you cannot use images stored on an SD-card for screens that must show graphics e.g. dynamically.

When we've ported demos to the F429-DISCO we've had to cut a lot of screens and graphics to make things fit in the past. Is that something you can do? Can you have the majority of the "essential" application assets in internal flash and then use an SD-card for less important assets that can be loaded/cached at strategic points in time?

Hi @NS.16​,

The F429 should be capable of software jpeg decoding. But we do not have a project for it, so you will need to adapt your project to work. The steps would probably be:

  1. Build libJPEG. Get some inspiration from the makefiles / projects in the examples i've shared.
  2. Perform the decoding into a DynamicBitmap like in the demo, add it to your screen container and invalidate it to render it to the framebuffer.

I know that's easy to say, but i'm just outlining the general steps here.

I'm in the process of preparing a screencast where i go through dynamic decoding and DynamicBitmaps with TouchGFX (software for a start) - Maybe both jpeg and pngs.

Thank you @Martin KJELDSEN​  Sir.Please share me once you finish the preparation of screencast of png and jpeg decoding.

Once again thank you for your assistance.

I'll be sure to do that! I'll make a sticky post about the topic, i think.