Hi
I am using LPC1788 with Emwin graphical library and my configuration is Emwin graphical library is in Internal Flash Emwin fonts are downloaded into External Flash from PC and copied to SDRAM on boot up which is on EMC of LPC1788. my scatter file is configured accordingly
Everything is working fine with above configuration but as i have many fonts in my application and 4 languages the font binary file size is 14MB which is downloaded to the unit and into NAND flash which is on EMC. It takes around 30 minutes to download all the fonts to the NAND with 115200 baud on UART.
My fonts are copied to SDRAM from NAND at boot up. This booting time also is 15-20 secs as data is 14MB This configuration is working fine and LCD displays my fonts perfectly
I wanted to ask is there any way to directly access fonts in external NAND instead of copying to SDRAM as it will save lot of boot up time. my external NAND is also connected to LPC1788 on EMC
Has anyone used such a configuration - Emwin with fonts in external NAND Flash Memory
Thanks in Advance
Anuj
NAND is a block accessed memory, where blocks of data are requested and sequentially read, and have error-correction data stored with the blocks. You can't just set and access it like NOR flash.
You could perhaps reduce the start up time by only reading blocks as you need them and caching them in SDRAM. This would require you to manage block lists, and where in the memory you're assorted images are located, if you don't have some form of file system type structure.
Sorry, I have a stupid question. (know too less, want to learn a little more.)
So, the Flash integrated with general MCU is NOR Flash?
I have only some experiences with Winbond SPI Flash, I think I can access any address with a successful SPI communication.
I believe I must misunderstand something here. Where is the key-point I missed? the format of EmWin fonts? or the external memory controller?
Hi,
Thanks for your reply. I know that NAND is block wise but as my NAND is connected to EMC of my controller LPC1788 can we directly specify the address to read data?.
Currently i have routines to write and read from NAND which work perfectly and through EMC only. we give the address to the EMC for reading data. So instead of giving the address i will just give the direct address and check if am able to read the data at that address.
Currently i do the same thing but instead of copying what is required i copy whole chunk of data. One of my colleague has used similar configuration with NOR flash which is block wise he says.
Anyway i am also going to try copying only the data which is needed to reduce boot time.
Thanks
If you all grasped how things worked you wouldn't be asking questions about them.
NAND behaves more like a Hard Disk, and is why you can have a device holding 64GB in a 32-bit machine that can address only 4GB. Sometime look very closely at how many address pins are connected to your NAND device, and equivalent NOR device, and ponder how that might interact with a system executing code, or reading bytes of data from arbitrary addresses.
Like I said, if you don't want to pay the upfront cost of reading vast tracts of NAND into SDRAM, you're going to need to do it in a piece-meal fashion, keeping track of what you've read, and where the data you want is situated. So either a direct cache, or lazy reader type strategy.
Dear Anuj, I have more or less the same scenario. I have 15-20MB of resources (font and bitmap) and I need to transfer them in ram. I would like to understand how you are doing to compile resources and how you handle them. Do you generate a list of Flash addresses together with bineries? Any help is apreciated as well documents and application notes. Best regards.