Página 1 de 1

tamanho de tabela em flash

MensagemEnviado: 27 Mar 2012 20:21
por Iran
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.

MensagemEnviado: 27 Mar 2012 23:28
por Fábio Pereira
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+

MensagemEnviado: 28 Mar 2012 00:51
por Iran
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.

MensagemEnviado: 28 Mar 2012 07:54
por Iran
Resolvido.

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

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

MensagemEnviado: 28 Mar 2012 10:28
por chrdcv
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.

MensagemEnviado: 28 Mar 2012 10:52
por Fábio Pereira
Pois é,

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

T+

MensagemEnviado: 28 Mar 2012 20:24
por barboza
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!

Re: tamanho de tabela em flash

MensagemEnviado: 28 Mar 2012 21:00
por Wagner de Queiroz
Iran escreveu:Estou programando em C com o mspgcc + eclipse.
O chip é o msp430g2211.


Esse cara é o meu herói!

MensagemEnviado: 29 Mar 2012 08:51
por Iran
Esse cara é o meu herói!



Pq Wagner ?