AnsweredAssumed Answered

LPC54608 Board Flash Access

Question asked by rui wang on Feb 1, 2018
Latest reply on Feb 4, 2018 by rui wang

I am working on a emwin project, to display some images on the lcd, at the beginning, I put the image data in the internal flash, it works good. As I need to use many pictures in the project, later I move the image data to external  board flash, with this statement:

#include <cr_section_macros.h>

 

__RODATA(BOARD_FLASH) const U8 _acImage_0[5862] = {.....};

 

but the screen is all black, I debuged the programm, found the address of &_acImage_0[0] is at 0x10000000, which is the start of the BOARD_FLASH (Flash2), but the content of it is all zero, and another finding is, the two satement get different result:

1, 

const U8* pData =&_acImage_0[0];

printf("%x\n", *pData);

2, 

printf("%x\n", _acImage_0[0]);

 

the first statment gets 0, but the second gets the correct value.

what's the difference between these two methods? in my emwin function, I have to pass the _acImage_0 address as a pointer, so this may be the point.

Outcomes