ID do artigo: 000077602 Tipo de conteúdo: Documentação e informações do produto Última revisão: 11/09/2012

Como posso incluir um arquivo C no meu projeto de software Nios II C?

Ambiente

    Processador Intel® Nios® II
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

O C2H não suporta a geração de aceleradores a partir de arquivos C. 

 

Há um work-around que permitirá que você ligue para o seu (s) acelerador(s) a partir de um programa C que envolve mover as funções que você deseja acelerar de um arquivo de origem C para um arquivo de origem C.  Quando suas funções estão em um arquivo de origem C, o compilador C2H pode efetivamente "vê-las" e convertê-las em aceleradores de hardware. 

 

Há algumas etapas adicionais necessárias para misturar funções C e C (e arquivos).

 

A cadeia de ferramentas GNU suporta a chamada de funções C de programas C (e vice-versa) por meio de uma metodologia bem definida de afirmação explícita.    A maneira como isso funciona é que, a partir do seu programa C, você diz ao compilador quais funções devem ser chamadas como funções C , em vez de C .  Esta operação é feita por meio do uso da sintaxe "C" do extern dentro do arquivo de origem C.

 

Alguns exemplos da sintaxe "C" do extern em ação são os seguintes:

  1. Chamando a função C do programa C

Configuração:  Você tem uma barra de vazio de função (void), que vive no arquivo de fonte C "bar.c" que você deseja chamar a partir do arquivo de origem C "foo.cpp".

Solução:  adicione isso ao topo de "foo.cpp"-  

                externar "C" void foo(void);

 

  1. Chamando funções C do programa C

Configuração:  uma coleção de funções que vive no arquivo de origem C "bar.c" que você deseja chamar a partir do arquivo de origem C "foo.cpp".

Solução:  basta adicionar chaves ao redor do grupo de funções no topo da instrução de externação em "foo.cpp"-  

                externação "C" {

void foo (vazio);

int foo2 (número int);

int foo3 (int número1, int número2);

}

 

  1. Chamando um cabeçalho C de um programa C

Configuração: você tem toda uma coleção de funções C (ou uma biblioteca) em um arquivo chamado "bar.c" que você deseja chamar do seu programa C "foo.c", e você realmente não deseja listá-las individualmente através do procedimento nº 2 (acima).  Você tem um arquivo de cabeçalho para "bar.c" chamado "bar.h" que declara a interface às funções.

Solução: a instrução extern também funciona para arquivos de cabeçalho... No arquivo "foo.cpp", use a instrução extern para adicionar o arquivo do cabeçalho-

                externação "C" {

                                #include "bar.h"

}

 

 

Qual metodologia é a melhor para usar com C2H? When usando o compilador C2H, é recomendável que um usuário "isole" a função de aceleração em seu próprio arquivo, portanto, usar o primeiro exemplo é a melhor abordagem para acelerar funções com o compilador C2H.

 

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.