Gast
#446382
In der Dokumentation zum MSPGCC steht, dass Variablen mit const immer in
das ROM gelegt werden.
===========================================================
typedef struct
{
float fFA_5 [1][3];
float fFA_1 [3][3];
float fFA_2 [4][3];
} BaseCoefficientType;
const BaseCoefficientType fBaseData =
{ /* A0 A1 A2 */
{
{2654.891 , -12.99346 , 0.01867414 }
},
{
{8290.309 , -19.88772 , 0.01332412 },
{9728.229 , -23.33180 , 0.01538083 },
{8706.964 , -20.79888 , 0.01383870 }
},
{
{16308.73 , -19.62660 , 0.006603774 },
{15266.31 , -18.34927 , 0.006210514 },
{13238.97 , -15.82037 , 0.005437151 },
{16058.35 , -19.30649 , 0.006509235 }
}
};
const float * pBaseDataAdress[3][4] =
{
{
&fBaseData.fFA_5[0][0]
},
{
&fBaseData.fFA_1[0][0] ,
&fBaseData.fFA_1[1][0] ,
&fBaseData.fFA_1[2][0]
},
{
&fBaseData.fFA_2[0][0] ,
&fBaseData.fFA_2[1][0] ,
&fBaseData.fFA_2[2][0] ,
&fBaseData.fFA_2[3][0]
}
};
===========================================================
fBaseData finde ich auch im ROM (.text) wieder.
Die pBaseDataAdress finde ich richtig gefüllt im RAM (.data) wieder.
Offensichtlich gibt es eine Kopie im ROM, die nach dem Reset durch
MSPGCC-Funktionen in das RAM geschoben werden. Da aber die
pBaseDataAdress const, d.h. unveränderlich sind, sollten die gleich in
das ROM. RAM ist kostbar!
Wie bekomme ich das hin?
fragt
Marcus