Erro compilação IAR

57 views
Skip to first unread message

Bruno Bartos

unread,
Jul 17, 2014, 2:33:23 AM7/17/14
to texa...@googlegroups.com
Ola pessoal,

Estava programando normalmente no IAR até que inclui algumas rotinas e bibliotecas para comunicar com o SD card (Operacionais de outro projeto) e apareceu os seguintes erro de compilação .

Error[Pe020]: identifier "tDisplay" is undefined C:\ti\TivaWare_C_Series-2.0.1.11577\examples\boards\dk-tm4c129x\drivers\kentec320x240x16_ssd2119.h 46 
Error[Pe020]: identifier "tContext" is undefined C:\ti\TivaWare_C_Series-2.0.1.11577\examples\boards\dk-tm4c129x\drivers\frame.h 46 

Esses trechos dos erros não foram mexidos e estavam operando normalmente, entrei nos erros e ambos provem de referencias externas, são elas:   

extern const tDisplay g_sKentec320x240x16_SSD2119;
extern void FrameDraw(tContext *psContext, const char *pcAppName);

Esta tudo declarado corretamente (tbm não foi mexido neles) e mesmo assim os erros aparecem, oque pode estar errado? 

Bruno

 

Rafael Dias

unread,
Jul 17, 2014, 5:53:38 AM7/17/14
to bruno...@uol.com.br, texa...@googlegroups.com

Veja se vc incluiu no projeto o arquivo fonte que implementa a função FrameDraw e declara a variável  g_sKentec320x240x16_SSD2119 ao seu projeto.


--
--
Você recebeu esta mensagem porque está inscrito no Grupo Google "Texas Instruments Info para Designers e Projetistas".
Para postar uma mensagem neste grupo, mande um email para texa...@googlegroups.com
Para deixar o grupo, mande um email para texas-sc+u...@googlegroups.com
Para mais opções, visite este grupo no endereço:
http://groups.google.com/group/texas-sc?hl=pt-BR

---
You received this message because you are subscribed to the Google Groups "Texas Instruments Info para Designers e Projetistas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to texas-sc+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Luiz

unread,
Jul 17, 2014, 9:35:59 AM7/17/14
to bruno...@uol.com.br, texa...@googlegroups.com
Olá Bruno!

Após as inclusões das bibliotecas kentec320x240x16_ssd2119.hframe.h, foram utilizados os comandos FILE, SAVE ALL e PROJECT, REBUILD ALL antes de compilar?

O novo projeto pode estar buscando a variável e a função num caminho diferente ou inexistente...

Att,


--

Bruno Bartos

unread,
Jul 17, 2014, 12:43:17 PM7/17/14
to Luiz, texa...@googlegroups.com

Olá Luiz,

 

Sim, usei o SAVE ALL e PROJECT, REBUILD ALL, mas sem sucesso.

Na verdade esse não é um novo projeto, ele já estava aberto e funcionando, o que fiz foi só incluir novas rotinas.

 

Bruno

Bruno Bartos

unread,
Jul 17, 2014, 12:44:04 PM7/17/14
to rdme...@gmail.com, texa...@googlegroups.com

 

Olá Rafael,

 

Não foi retirado nenhum arquivo do projeto onde o FrameDraw já estava referenciado e funcionando, a fonte dele é o “kentec320x240x16_ssd2119.c” tudo que fiz no projeto foi incluir novas rotinas e bibliotecas para o SDcard, ou seja os erros para essas rotinas só apareceram depois da inclusão, o curioso tbm é que os erros aparecerão nas bibliotecas e não no main onde fiz alterações. (Ambos os erros aparecerão em bibliotecas na não foram mexidas).

Acredito que deve estar ocorrendo algum loop de depuração ou algo assim, mas não sei como descobrir nem se de fato é esse o problema.

Abaixo colei as duas bibliotecas onde o IAR apontou os Erros para tentar ajudar.

 

Obrigado Rafael.

 

 

Frame.h

 

#ifndef __DRIVERS_FRAME_H__

#define __DRIVERS_FRAME_H__

 

//*****************************************************************************

//

// If building with a C++ compiler, make all of the definitions in this header

// have a C binding.

//

//*****************************************************************************

#ifdef __cplusplus

extern "C"

{

#endif

 

//*****************************************************************************

//

// Prototypes.

//

//*****************************************************************************

extern void FrameDraw(tContext *psContext, const char *pcAppName);   ==> “Erro”

 

//*****************************************************************************

//

// Mark the end of the C bindings section for C++ compilers.

//

//*****************************************************************************

#ifdef __cplusplus

}

#endif

 

#endif // __DRIVERS_FRAME_H__

 

 

kentec320x240x16_ssd2119.h

 

#ifndef __DRIVERS_KENTEC320X240X16_SSD2119_H__

#define __DRIVERS_KENTEC320X240X16_SSD2119_H__

 

//*****************************************************************************

//

// If building with a C++ compiler, make all of the definitions in this header

// have a C binding.

//

//*****************************************************************************

#ifdef __cplusplus

extern "C"

{

#endif

 

//*****************************************************************************

//

// Prototypes.

//

//*****************************************************************************

extern const tDisplay g_sKentec320x240x16_SSD2119;       ========> “Erro”

extern void Kentec320x240x16_SSD2119Init(uint32_t ui32SysClock);

 

//*****************************************************************************

//

// Mark the end of the C bindings section for C++ compilers.

//

//*****************************************************************************

#ifdef __cplusplus

}

#endif

 

#endif // __DRIVERS_KENTEC320X240X16_SSD2119_H__

 

 

Bruno

 

De: texa...@googlegroups.com [mailto:texa...@googlegroups.com] Em nome de Rafael Dias
Enviada em: quinta-feira, 17 de julho de 2014 06:54
Para: bruno...@uol.com.br
Cc: texa...@googlegroups.com
Assunto: Re: [Texas Instruments] Erro compilação IAR

 

Veja se vc incluiu no projeto o arquivo fonte que implementa a função FrameDraw e declara a variável  g_sKentec320x240x16_SSD2119 ao seu projeto.

Bruno Bartos

unread,
Jul 17, 2014, 2:58:57 PM7/17/14
to Eder Andrade, texa...@googlegroups.com

Olá Eder,

 

Sim, os dois projetos são da mesma placa e versão, são os exemplos da texas para o kit DK-tm4c129x, os projetos são o “enet_io” e o “enet_lwip”, ambos são para criar um mini servidor http, porem o “enet_lwip” le a pagina http do cartão SDcard já o “enet_io” a pagina é gravada na flash do micro. Minha intenção era também a leitura da pagina httl no SDcard para o projeto “enet_io” que já trabalhei muito encima dele.

Pelo visto deve ser alguma coisa boba de declaração de bibliotecas que esta dando conflito, acho que vou voltar tudo atrás e ir incluindo as rotinas uma a uma até achar o erro.

 

Bruno

 

De: Eder Andrade [mailto:ederan...@gmail.com]
Enviada em: quinta-feira, 17 de julho de 2014 14:45
Para: bruno...@uol.com.br
Assunto: Re: [Texas Instruments] Erro compilação IAR

 

Bruno,

 

Nesse projeto com novas rotinas, este projeto foi compilador no IAR com a mesma versão do anterior que já estava funcionando? Veja isso...


Att,

Eder Tadeu

Bruno Bartos

unread,
Jul 17, 2014, 3:05:23 PM7/17/14
to Rafael Dias, texa...@googlegroups.com

Olá Rafael,

 

Obrigado pela dica, até revisei todo o código que modifiquei na procura de uma falha dessa mas na verdade o erro esta aparecendo nas bibliotecas fora do código onde foi mexido e para as bibliotecas de função e variáveis do main.

 

Bruno  

 

De: Rafael Dias [mailto:rdme...@gmail.com]
Enviada em: quinta-feira, 17 de julho de 2014 14:01
Para: Bruno Bartos
Assunto: Re: [Texas Instruments] Erro compilação IAR

 

verifique se no seu módulo novo vc não se esqueceu de nenhum ponto-e-vírgula.

 

 

 

Veja se vc incluiu no projeto o arquivo fonte que implementa a função FrameDraw e declara a variável  g_sKentec320x240x16_SSD2119 ao seu projeto.

Rafael Dias

unread,
Jul 17, 2014, 3:15:04 PM7/17/14
to Bruno Bartos, texa...@googlegroups.com
então...

imagina que você fez isso:

===  file_a.h
//-----------------------------------------
int foo1();
int foo2()
//-----------------------------------------

===  file_b.h
//-----------------------------------------
int boo1();
int boo2()
//-----------------------------------------


== main.c

#include "file_a.h"
#include "file_b.h"

void main( void)
{
    return;
}


com esse código vc terá erros em file_b.h, sendo que o causador do erro foi file_a.h





Bruno Bartos

unread,
Jul 17, 2014, 3:22:42 PM7/17/14
to Rafael Dias, texa...@googlegroups.com

Na verdade todas as includes estão no inicio do arquivo e são elas.

 

 

#include <stdbool.h>

#include <stdint.h>

#include <string.h>

#include "inc/hw_ints.h"

#include "inc/hw_memmap.h"

#include "inc/hw_nvic.h"

#include "inc/hw_types.h"

#include "driverlib/flash.h"

#include "driverlib/gpio.h"

#include "driverlib/interrupt.h"

#include "driverlib/sysctl.h"

#include "driverlib/systick.h"

#include "driverlib/timer.h"

#include "driverlib/rom.h"

#include "driverlib/ssi.h"

#include "drivers/kentec320x240x16_ssd2119.h"

#include "drivers/pinout.h"

#include "drivers/frame.h"

#include "utils/locator.h"

#include "utils/lwiplib.h"

#include "utils/uartstdio.h"

#include "utils/ustdlib.h"

#include "httpserver_raw/httpd.h"

#include "httpserver_raw/fs.h"

#include "httpserver_raw/fsdata.h"

#include "grlib/grlib.h"

#include "io.h"

#include "cgifuncs.h"

#include "stdio.h"

#include "fatfs\src\ff.h"

Luiz

unread,
Jul 17, 2014, 4:28:33 PM7/17/14
to bruno...@uol.com.br, Rafael Dias, texa...@googlegroups.com
...Se não falta nada, pode ser que haja conflito entre comandos ou configurações/definições que envolvam as funções e variáveis destacadas nas bibliotecas apontadas, ou, outras pré-existentes.

O conteúdo do tópico a seguir, talvez, possa ajudar em algo:

Att,

Bruno Bartos

unread,
Jul 17, 2014, 8:03:00 PM7/17/14
to Luiz, Rafael Dias, texa...@googlegroups.com

Ola a todos,

 

Resolvi o problema iniciando do zero todas as alterações de projeto para implantar o SDcard e compilando passo a passo até que esta tudo funcionando e não sei o que que estava errado.

Mas agradeço a todos pela atenção. Valeu pela força.   

 

Abraço

 

Bruno

Eder Andrade

unread,
Jul 18, 2014, 7:00:17 AM7/18/14
to Bruno Bartos, Luiz, Rafael Dias, texa...@googlegroups.com
Eu sempre digo que a Eletrônica não é uma ciência exata, é quase uma Alquimia... :)

Att,
Eder Tadeu

Luiz

unread,
Jul 18, 2014, 8:27:22 PM7/18/14
to Eder Andrade, Bruno Bartos, Rafael Dias, texa...@googlegroups.com
...Pois é...
Mais uma entre tantas outras dúvidas INEXPLICÁVEIS!

Att,
Reply all
Reply to author
Forward
0 new messages