Skip to main content
Chuev.Vladimir
Associate III
December 7, 2018
Question

LTDC does not work with RAM

  • December 7, 2018
  • 2 replies
  • 1232 views

Hello.

When I loaded the array into Flash (used const) It was displayed on the screen

But as soon as I use RAM to store the image it stops displaying, I see a black square

I also can not fill the color programmatically LTDC just does not react

This topic has been closed for replies.

2 replies

Tesla DeLorean
Guru
December 7, 2018

What RAM?

The LTDC needs the data in the AXIM RAM

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Tesla DeLorean
Guru
December 7, 2018

0690X000006ClmyQAC.jpg

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Chuev.Vladimir
Associate III
December 7, 2018

Thank you.

So I have to run an external SDRAM?

I was just creating an array (uint8_t image[100 * 100])

Tesla DeLorean
Guru
December 7, 2018

>>So I have to run an external SDRAM?

No

>>I was just creating an array (uint8_t image[100 * 100])

Pay attention to the memory region from which it gets allocated, review linker script or scatter file, and that it describes available memories properly, and that you direct allocations from the appropriate pools/sections.

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Chuev.Vladimir
Associate III
December 9, 2018

I don't really understand.

Is it possible to put a variable in the desired area of memory without explicitly specifying an address?

I'd like the compiler to do it myself.

In linker script script there is

MEMORY
{
	DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
	RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K
	RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K
	RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K
	ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
	FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
}

Do I need RAM_D1 or RAM_D2 or RAM_D3?