WinAVR: Utilização de variaveis 'volatile' vs. 'static'

Software e Hardware para ATMEL

Moderadores: 51, guest2003, brasilma

WinAVR: Utilização de variaveis 'volatile' vs. 'static'

Mensagempor andre_luis » 15 Jan 2017 10:17

Olá pessoal,


Já utilizei diversos compiladores em toda minha sofrida existencia de programador de firmware, mas com nenhum deles enfrentei uma situação bizarra como essa; Algo que deveria ser trivial de resolver, mas não saio do mesmo lugar a 2 dias:

Tenho uma rotina, que deve atribuir o valor de uma variavel num array, sendo a parte do código que nao funciona de jeito nenhum:

Código: Selecionar todos
Frame[2] = SequentialNumber   // variavel global - ora declarada como 'volatile' ou não;
// OU
Frame[2] = Sequential // variavel local estática - testado ora com pre-atribuição de valor na declaração, ou na linha seguinte


Pra me certificar que o compilador não estaria decidindo algo por conta propria, removi qualquer outra referencia á essa variavel 'SequentialNumber"' de todo o resto do programa. Testei todas as combinações possiveis, incluindo os 5 tipos de 'otimização', do 0 ao 3 incluindo o 's', e nada.

Alguem já passou por algo semelhante, e/ou saberia de algum mecanismo para resolver isso ?
Acredito que pelo compilador ser 'muito bom', esteja fazendo algo trivial na linguagem, tipo fazendo o que deveria ser feito, mas eu não estou conseguindo enxergar porque raios uma simples utilização como a que já fiz em dezenas de outros códigos em outros compiladores, não funciona de jeito maneira aqui.

Nota: As demais atribuições nesse array Frame[n] são ou para constantes, ou para funções executadas inline, sendo que inclusive já tentei criar uma função GetValue() para utilizar o mesmo criterio que funcionou para os demais casos.


AT+
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: WinAVR: Utilização de variaveis 'volatile' vs. 'static'

Mensagempor andre_luis » 16 Jan 2017 08:35

"RESOLVIDO"

Descobri que eu não precisaria reaprender tudo novamente, mas era apenas o bendito uC que está resetando, fazendo os conteudos anteriores se perderem.
Proximo passo agora, é descobrir o que está causando esse bendito reset.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ


Voltar para AVR

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x