ID do artigo: 000085005 Tipo de conteúdo: Solução de problemas Última revisão: 16/10/2012

Por que eu recebo o erro "referência indefinido a 'getc'" ao tentar usar alt_getchar() com Nios II?

Ambiente

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Este problema pode ser visto quando a opção "Habilitar biblioteca C pequena" é marcada e a opção "Habilitar a API do driver de dispositivo leve" está desmarcada.

A opção "Habilitar biblioteca C pequena" tem o efeito de remover uma série de funções do Nios II Board Support Package (BSP), incluindo as rotinas STDIN.  Essas funções incluem a rotina getchar(), que chama getc().

A "Enable Lightweight Device Driver API" otimiza as funções alt_getchar(), alt_putstr(), alt_printf(), e alt_putchar().  Sem esta opção marcada, essas funções chamam diretamente sua biblioteca C de equivalentes de getchar(), putstr(), printf() e putchar().

Assim, com "Habilitar biblioteca C pequena" marcada e "Habilitar API do driver de dispositivo leve" desmarcada, alt_getchar() é mapeado para a função getchar(), que não está mais na biblioteca.

Para usar com sucesso a função alt_getchar, o usuário precisa desmarcar "Habilitar a biblioteca C pequena" ou habilitar a API "Habilitar a API do driver de dispositivo leve" nas configurações de BSP.

Resolução

Este problema pode ser visto quando a opção "Habilitar biblioteca C pequena" é marcada e a opção "Habilitar a API do driver de dispositivo leve" está desmarcada.

A opção "Habilitar biblioteca C pequena" tem o efeito de remover uma série de funções do Nios II Board Support Package (BSP), incluindo as rotinas STDIN.  Essas funções incluem a rotina getchar(), que chama getc().

A "Enable Lightweight Device Driver API" otimiza as funções alt_getchar(), alt_putstr(), alt_printf(), e alt_putchar().  Sem esta opção marcada, essas funções chamam diretamente sua biblioteca C de equivalentes de getchar(), putstr(), printf() e putchar().

Assim, com "Habilitar biblioteca C pequena" marcada e "Habilitar API do driver de dispositivo leve" desmarcada, alt_getchar() é mapeado para a função getchar(), que não está mais na biblioteca.

Para usar com sucesso a função alt_getchar, o usuário precisa desmarcar "Habilitar a biblioteca C pequena" ou habilitar a API "Habilitar a API do driver de dispositivo leve" nas configurações de BSP.

Produtos relacionados

Este artigo aplica-se a 1 produtos

Dispositivos programáveis Intel®

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.