2020-10-05 06:34 AM
Hi,
I'm using a STM32F746G-DISCO and I write my own Graphic Lib.
Now I want to put the bmp icons into the QSPI Flash.
What I've done....
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 320K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K
QUADSPI (r) : ORIGIN = 0x90000000, LENGTH = 16M
}
.iconqspi :
{
. = ALIGN(4);
_qspi_start = .; /* create a global symbol at qspi start */
*(.iconqspi) /* iconqspi sections */
*(.iconqspi*) /* iconqspi* sections */
. = ALIGN(4);
_qspi_end = .; /* define a global symbols at end of iconqspi */
} >QUADSPI
and in the end....
.iconqspi : { *(.iconqspi) } >QUADSPI
In the BuildAnaylzer you can't see the sections.
#define icon_M_height 140
#define icon_M_width 150
#define icon_M_bpp 16
#ifndef IMG_NO_DATA
#if defined ( __ICCARM__ )
#pragma location = ".iconqspi"
#else
__attribute__((section(".iconqspi")))
#endif
const unsigned char icon_M[42000] =
{
0xFF, 0xF,
0xFF, 0xF,
......
};
#else
extern const unsigned char icon_M[];
#endif
In the main.c I added the following code:
#define IMG_NO_DATA
#include "../../Images/Inc/icon_M.h"
....
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
BSP_QSPI_Init();
BSP_QSPI_MemoryMappedMode();
/* Configure QSPI: LPTR register with the low-power time out value */
WRITE_REG(QUADSPI->LPTR, 0xFFF);
/* USER CODE END SysInit */
.....
But the Build Analyzer tells me that there's no data in the QSPI Flash.
What is my mistake ?
Regards
Stefan