AnsweredAssumed Answered

window "locals" and data from 48 bitd width memory

Question asked by bookevg on Nov 27, 2011
Latest reply on Dec 12, 2011 by DavidS

My class allocate in 48 bit width memory and when I go the class method I see in window "Local" wrong value of  my data.

I think because thw window "local" work only with 32bit.

It's ok if I watch my data in three column memory.

I work with ADSP-21489 ADSP214xx Simulator

 

/*****************************************************************************
* locals40bit.cpp
*****************************************************************************/

 

#include <sysreg.h>
#include <platform_include.h>
#include <processor_include.h>

 

typedef struct tABC
{
float A;
float B;
float C;
}TABC;

 

class CABC
{
public:
CABC()               {     ;     }
~CABC()               {     ;     }
void Run(void);
TABC     data;
};
void CABC::Run(void)
{
// here the window "Locals" view wrong
}
//seg_dmda_48 is allocated in block 1
//seg_msp_int_dmda_48          { TYPE(DM RAM) START(0x000b2000) END(0x000b3fff) WIDTH(48) }
//          seg_dxe_int_dmda_48
//          {
//               INPUT_SECTIONS( $OBJS_LIBS_INTERNAL(seg_dmda_48))
//               INPUT_SECTIONS( $OBJS_LIBS_NOT_EXTERNAL(seg_dmda_48))
//               INPUT_SECTIONS( $OBJECTS(seg_dmda_48) $LIBRARIES(seg_dmda_48))
//          } > seg_msp_int_dmda_48
#pragma section("seg_dmda_48",DM)
CABC ABC;

 


int main( void )
{
*pSYSCTL          |= IMDW1;
asm("nop;");
asm("nop;");
asm("nop;");
asm("nop;");
ABC.data.A     = 1.23;
ABC.data.B     = 1.23;
ABC.data.C     = 1.23;
for(;;)
{
ABC.Run();
}
/* Begin adding your custom code here */
return 0;
}

Outcomes