I need write values to my SRAM memory, in fixed positions.
memmap.h
Code:
#define SRAM_ENDERECO_INICIAL 0xE0084000lu // Endereço Inicial da SRAM
void SRAM_Init(void);
typedef struct stRede
{
unsigned int iIP[4];
unsigned int iMascara[4];
unsigned int iGateway[4];
unsigned int iDns[4];
unsigned int iPorta;
} SYSCONFIG_REDE;
typedef struct stSerial
{
unsigned int iIP[4];
unsigned int iMascara[4];
unsigned int iGateway[4];
unsigned int iDns[4];
unsigned int iPorta;
} SYSCONFIG_SERIAL;
SYSCONFIG_REDE *CONFIG_REDE;
SYSCONFIG_SERIAL *CONFIG_SERIAL;
memmap.c
Code:
#include "memmap.h"
void SRAM_Init(void)
{
CONFIG_REDE = (SYSCONFIG_REDE *) SRAM_ENDERECO_INICIAL;
//
CONFIG_SERIAL = (SYSCONFIG_SERIAL *) (SRAM_ENDERECO_INICIAL + sizeof(CONFIG_REDE));
}
void SRAM_Save(void)
{
*CONFIG_REDE->iIP[0] = 192;
*CONFIG_REDE->iIP[1] = 168;
*CONFIG_REDE->iIP[2] = 1;
*CONFIG_REDE->iIP[3] = 222;
*CONFIG_REDE->iPorta = 47000;
*CONFIG_PESAGEM->lPesoCalibracao = 500000;
}
This line: *CONFIG_REDE->iIP[0] = 192;
Error.....: memmap.c:23: error: invalid type argument of ‘unary *’
//
// is This the correct way to write in next address ?
CONFIG_SERIAL = (SYSCONFIG_SERIAL *) (SRAM_ENDERECO_INICIAL + sizeof(CONFIG_REDE));