tamanho de tabela em flash

Software e Hardware para uC Texas

Moderadores: andre_luis, 51

tamanho de tabela em flash

Mensagempor Iran » 27 Mar 2012 20:21

Estou criando uma tabela em flash e simplesmente pegando os valores da tabela e enviando para uma porta de I/O.

O problema é que quando o tamanho da tabela é de até 120 bytes funciona.

Com 128 bytes compila mas nao funciona.

Estou programando em C com o mspgcc + eclipse.

O chip é o msp430g2211.

O que poderia ser ? Tamanho da memoria flash?

Grato,
José Iran.
Avatar do usuário
Iran
Word
 
Mensagens: 558
Registrado em: 16 Out 2006 18:10
Localização: Imperatriz - MA

Mensagempor Fábio Pereira » 27 Mar 2012 23:28

Olá José,

Como você está declarando esta tabela?

Lembre-se de que normalmente os arrays em C são armazenados em RAM, mesmo se você declarar como CONST ainda assim é provável que o compilador armazene na RAM.

Considerando que o G2211 possui 128 bytes de RAM, creio que seja este o problema.

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor Iran » 28 Mar 2012 00:51

Fábio,

Obrigado pela resposta.

Código: Selecionar todos
 const unsigned char tabela [] = {0xfe, 0xfc, 0xf8, 0xf0};



Estou declarando a tabela como CONST e esperava que ela fosse alocada na flash.

Como faço para saber onde a tabela está sendo alocada ?

Como faço para colocar a tabela na flash ?

Grato,
José Iran.
Avatar do usuário
Iran
Word
 
Mensagens: 558
Registrado em: 16 Out 2006 18:10
Localização: Imperatriz - MA

Mensagempor Iran » 28 Mar 2012 07:54

Resolvido.

Eu estava declarando a tabela dentro da função main.

Colocando a tabela como variável global corrigiu o problema.
Avatar do usuário
Iran
Word
 
Mensagens: 558
Registrado em: 16 Out 2006 18:10
Localização: Imperatriz - MA

Mensagempor chrdcv » 28 Mar 2012 10:28

Iran escreveu:Resolvido.

Eu estava declarando a tabela dentro da função main.

Colocando a tabela como variável global corrigiu o problema.


Então o problema era que ela era alocada na pilha (devido ser uma variável local) e não no heap.
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor Fábio Pereira » 28 Mar 2012 10:52

Pois é,

Por isso sempre digo para olhar o código que o compilador gera...

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor barboza » 28 Mar 2012 20:24

chrdcv escreveu:
Iran escreveu:Resolvido.

Eu estava declarando a tabela dentro da função main.

Colocando a tabela como variável global corrigiu o problema.


Então o problema era que ela era alocada na pilha (devido ser uma variável local) e não no heap.


Isso também indica que estava sendo alocada na RAM e não na Flash. Estranho!
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Re: tamanho de tabela em flash

Mensagempor Wagner de Queiroz » 28 Mar 2012 21:00

Iran escreveu:Estou programando em C com o mspgcc + eclipse.
O chip é o msp430g2211.


Esse cara é o meu herói!
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor Iran » 29 Mar 2012 08:51

Esse cara é o meu herói!



Pq Wagner ?
Avatar do usuário
Iran
Word
 
Mensagens: 558
Registrado em: 16 Out 2006 18:10
Localização: Imperatriz - MA


Voltar para Texas

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x