In my linker cmd file I have a MEMORY PAGE 1 definition of the below:
SHARED_MEM : origin = 0x100080, length = 0x00FF80
I then defined a section for that memory of the below:
Shared_MemFile : > SHARED_MEM, PAGE = 1
I have a struct defined as below:
struct DATA_TBL
{
Uint16 TBL_TAG_WORD;
Uint16 TIME_TAG[2];
Uint16 DATA_BUF[32];
};
#ifdef
__cplusplus
#pragma DATA_SECTION("Shared_MemFile")
#else
#pragma DATA_SECTION(DataTbl1, "Shared_MemFile");
#endif
volatile struct DATA_TBL DataTbl1[32];
Everything compiles and links fine, but when I look at the map file I have the following for that entry and the next one in memory:
001018c0 _DataTbl1
00101d00 _DataTbl5
The delta size is only 0x40 words, which is one page (I believe that 1 page is 64 words). The size of the struct is 35 words, and I created an array of 32 of those. Why does it only seem to be creating 1 element of the array? As a test, I used the same code section but did: volatile Uint16 test[256]; and put it in the same section of memory. When I look at the map file, that correctly shows up with having a gap of 0x100 between it and the next item in memory. What is unique about the struct and how would I achieve what I want?