Índice:
- Etapa 1: Baixe ferramentas Sunxi
- Etapa 2: descompacte o código fonte
- Etapa 3: Baixe o código:: blocos
- Etapa 4: teste seu IDE
- Etapa 5: teste completo
- Etapa 6: Criar Novo Projeto
- Etapa 7: Adicionar arquivos ao projeto
- Etapa 8: Faça o Gcc seguir o padrão de linguagem ISO C de 1999
- Etapa 9: encontre a dependência ausente
- Etapa 10: Descompacte o Mman
- Etapa 11: e adicioná-los ao projeto
- Etapa 12: Caminho correto
- Etapa 13: Exorcismo
- Etapa 14: NOTAS
Vídeo: Orange PI HowTo: Compilar a ferramenta Sunxi para Windows no Windows: 14 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
PREQUISITOS:
Você vai precisar
- Um computador (desktop) com Windows.
- Uma conexão com a Internet.
- Uma placa PI laranja.
O último é opcional, mas tenho certeza de que Você já o possui. Caso contrário, você não lerá este instrutível.
Quando você compra o computador de placa única Orange PI, ele permanece apenas um pedaço de metal morto até ser configurado corretamente. E seu arquivo de configuração principal: "script.bin" é a primeira chave para trazê-lo à vida. Este arquivo está localizado na partição de inicialização do cartão SD inicializável. E, felizmente para nós, na maioria das distribuições Linux do site oficial (https://www.orangepi.org/downloadresources/) esta partição é FAT32 e pode ser facilmente vista por qualquer computador Windows. Isso realmente simplifica as coisas, já que ainda não há uma maneira confiável de escrever nas partições ext2 do Linux a partir do Windows.
Infelizmente para nós, o arquivo de configuração script.bin tem formato binário completamente hostil para edição humana. É necessário algum tipo de ferramenta de software para descriptografá-lo e criptografá-lo de volta após as modificações necessárias terem sido feitas. E esse conjunto de ferramentas existe. É o famoso SUNXI-TOOLS. A mosca na sopa é que ele se destina a rodar no Linux e temos que manter uma máquina Linux dedicada apenas para usar as ferramentas sunxi, ou encontrar uma maneira de compilá-las para o Windows.
Eu poderia simplesmente compilá-lo e compartilhar o executável, mas nunca se sabe se eles gostariam de fazer um novo lançamento e você precisará de uma nova compilação o mais rápido possível. Então decidi fazer um guia de como compilar a ferramenta essencial a partir das fontes. Vamos começar.
Etapa 1: Baixe ferramentas Sunxi
Obtenha a versão mais recente (ou necessária) do código fonte sunxi-tools. Vá para a URL: https://github.com/linux-sunxi/sunxi-tools/releases e escolha fazer o download como arquivo zip.
Etapa 2: descompacte o código fonte
Assim que o download for concluído, descompacte o código-fonte para a pasta de sua escolha. (além disso, assumirei que esta pasta é c: / sunxitools \, então substitua este caminho pelo seu próprio caminho).
Etapa 3: Baixe o código:: blocos
Se você tiver uma cópia instalada de algum compilador c ++ operacional para Windows. e se você souber como usá-lo, poderá prosseguir diretamente para a etapa 3. Outros devem obter um compilador C ++ adequado e um shell (IDE) para usá-lo confortavelmente. A minha escolha é code:: blocks para Windows junto com o conjunto de ferramentas MinGW pré-instalado. Você pode obtê-lo aqui:
Baixe e instale-o.
Etapa 4: teste seu IDE
Para testar se as coisas estão bem, inicie os codeblocks, clique em "criar um novo projeto", escolha "aplicativo de console", escolha c ou c ++, digite o título do projeto de checkout, mantenha os padrões intactos na próxima janela e clique em "terminar"
Etapa 5: teste completo
Em seguida, clique em um triângulo verde no painel superior do IDE ou use o ponto de menu Build-> Run. Se tudo correr bem, você deverá ver uma mensagem do aplicativo "Hello world" gerado automaticamente na janela preta do "DOS".
Caso contrário, significa que o IDE e o compilador não estão funcionando corretamente e você terá que investigar como configurá-lo corretamente. Provavelmente, você terá que baixar outra versão das ferramentas de programação ou verificar suas permissões em Seu software de firewall / antivírus.
Etapa 6: Criar Novo Projeto
Agora você deve ter um kit de ferramentas do programador C / C ++ operacional e os códigos-fonte das ferramentas sunxi descompactados na pasta c: / sunxitools / em Seu computador. É hora de montar um projeto. Crie um novo projeto em seu IDE. Escolha o projeto C simples (não c ++) do tipo "aplicativo de console".
Certifique-se de que você está criando o projeto na pasta c: / sunxitools / e não em algum outro lugar. (Os codeblocks EG tendem a fazer uma subpasta com o mesmo nome do projeto. Então, se você nomeou Seu projeto, diga "teste" e tente colocá-lo em c: / sunxitools \, você pode acabar com o projeto acabado para c: / sunxitools / test / se você não estiver atento o suficiente.) As ferramentas Sunxi contêm vários utilitários, mas para o nosso propósito precisaremos apenas de um: o chamado utilitário "fexc".
Etapa 7: Adicionar arquivos ao projeto
Exatamente o utilitário "fexc" é responsável pela conversão do script.bin em formato de texto e pela conversão de volta para binário. É essencial que o executável deste utilitário tenha o nome "fexc.exe", então é bom se você nomeou seu projeto como "fexc". No entanto, você pode usar qualquer outro nome do projeto, uma vez que você sempre pode renomear o executável após a compilação, ou você pode escolher "Projeto-> Propriedades" no menu suspenso superior e na janela que aparece clique na guia "Construir destinos", e edite o campo "Nome do arquivo de saída" para substituir o nome do executável.
Ao seu projeto gerado automaticamente, você deve adicionar apenas cinco arquivos de origem:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
e sete arquivos de cabeçalho:
- list.h (mova do formulário c: / sunxitools / include / folder para c: / sunxitools / folder)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- version.h
Certifique-se de excluir o main.c gerado automaticamente do projeto, porque fexc.c já contém a função "int main". (Lembre-se de que qualquer programa deve ter apenas uma função principal?).
Todos os arquivos de código-fonte necessários já estão na subpasta, onde você descompactou os códigos-fonte. Os arquivos de cabeçalho merecem um par de palavras, onde obtê-los. "list.h" - geralmente está na subpasta "include" do conjunto de códigos-fonte descompactado. "version.h" - apenas crie você mesmo. Coloque aí uma string como:
#define VERSÃO "Win32"
Em seguida, salve e feche o arquivo. (Você pode decorá-lo com #define's e # ifdef's se quiser.)
Se você tentar compilar o projeto agora, ele reclamará de muitos erros e de um arquivo ausente. Os erros são principalmente devido a um pouco de liberdade de estilo excessiva, os programadores sunxi-tools costumavam aplicar, e o arquivo ausente é a dependência não incluída no pacote do código-fonte. Vamos lidar com isso passo a passo.
Etapa 8: Faça o Gcc seguir o padrão de linguagem ISO C de 1999
Para que o compilador não reclame do estilo de programação muito livre, defina o padrão "с99" da compilação. Em codeblocks, vá para o menu "Projeto -> Opções de construção" e em "Configurações do compilador -> Sinalizadores do compilador" marque a caixa de seleção "Fazer com que o gcc siga o padrão de linguagem ISO C de 1999". Ou você pode simplesmente adicionar "-std = c99" em sua string de opções do compilador. Agora, se você tentar compilar o projeto, essas toneladas de erros devem começar e você estará um a um com a dependência ausente.
Etapa 9: encontre a dependência ausente
A dependência que falta é o arquivo "mman.h" - o cabeçalho de algum tipo de gerenciador de memória Linux. O Windows C nativamente não tem esse arquivo, mas felizmente há uma versão para Windows dele. Acesse https://github.com/witwall/mman-win32 para Windows. Baixe o instantâneo do repositório git.
Etapa 10: Descompacte o Mman
Descompacte os arquivos mman.ce mman.h, coloque-os na pasta c: / sunxitools \.
Etapa 11: e adicioná-los ao projeto
Etapa 12: Caminho correto
E na linha raplece do arquivo "fex.c":
#incluir
ao
#include "mman.h"
Nesta etapa, seu compilador não deve reclamar de nada e você obterá a longa espera fexc.exe como saída. Não seja feliz muito cedo. O utilitário ainda não está totalmente funcional. Você pode garantir isso descriptografando algum arquivo script.bin válido no formato de texto - arquivo script.fex com a consequente criptografia do arquivo script.fex de volta no script.bin. Você pode notar que o tamanho do script.bin resultante difere um pouco do tamanho do script.bin original. E se você tentar descriptografar o resultado mais uma vez, ele falhará. Nem o Orange PI funcionará com este script.bin. Para obter a utilidade funcional, temos que lançar uma bomba de código, que alguém colocou no código-fonte sunxi-tools. Será nosso próximo passo.
Etapa 13: Exorcismo
Para descarregar a bomba de código, abra o arquivo de código fexc.c e encontre lá uma string de texto do próximo conteúdo:
else if ((out = open (filename, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {
Basta substituí-lo pela próxima string:
else if ((out = open (filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {
Se não os dígitos malignos "666" na primeira string, eu acho que o codificador apenas se esqueceu de usar a bandeira O_BINARY. Mas o Número da Besta esclarece suas intenções de forma transparente. Imagine, como é engenhoso: devido à sutil diferença em como os arquivos são processados no Windows e no Linux, a bomba não tem efeito quando o utilitário é compilado e usado no Linux. Mas estraga tudo quando o utilitário é usado no Windows.
Depois que a bomba for desarmada, você pode finalmente compilar e usar com segurança o utilitário fexc em seu computador desktop Windows.
Etapa 14: NOTAS
1) Para usar o utilitário fexc confortavelmente, você deve obter dois arquivos em lote:
bin2fex.bat - e - fex2bin.bat.
Você pode obtê-los em alguma compilação com falha de fexc.exe para Windows ou Você pode digitá-los você mesmo:
- bin2fex.bat deve conter "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat deve conter "fexc -O bin -I fex script.fex script.bin"
2) Se for difícil encontrar o gerenciador mman para Windows, pode-se evitar o seu uso. No entanto, é preciso muito mais edição do arquivo fexc.c e requer pelo menos algum conhecimento de c. Para sua conveniência, compartilho o código-fonte editado do fexc do sunxi-tools v1.4 livre da dependência para mman.h junto com o arquivo de projeto codeblocks e com o script.bin de amostra de algum pi laranja. Você pode baixar fexc_nomman.zip
3) É possível que nas versões subsequentes das ferramentas sunxi eles adicionem mais algumas dependências. Sinta-se à vontade para encontrá-los na Internet e adicioná-los ao Seu projeto de compilação.
5) Finalmente, aqui está a versão pré-compilada de fexc.exe para Win32:
fexc_nomman.zip
Se você for preguiçoso o suficiente, sinta-se à vontade para usar o ver. No entanto, esteja ciente de que não será atualizado se / quando as versões mais recentes do SunxiTools / Windows estiverem disponíveis. Portanto, é melhor aprender como compilá-los do que depender de alguma construção binária fixa, eu presumo.
4) O "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", etc … são marcas comerciais correspondentes de seus respectivos proprietários.
5) Se o compilador reclamar de não encontrar funções mman, como:
referência indefinida a '_imp_mmap'
esteja ciente de que definir os amantes da comunidade de desenvolvimento mman se esqueceram de que o código pode ser compilado não apenas como uma biblioteca dll. Também pode ser uma biblioteca estática ou um código autônomo como temos aqui. Para corrigir o problema, edite o arquivo "mman.h" da seguinte maneira:
a) encontre as strings:
#if definido (MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif
b) adicione a corda
#define MMANSHARED_EXPORT
logo abaixo das strings encontradas na etapa anterior
Recomendado:
Kahoot! Ferramenta Web 2.0 - Instruções para fazer testes para professores: 10 etapas
Kahoot! Ferramenta Web 2.0 - Instruções de criação de questionários para professores: O seguinte Instructable destina-se a mostrar aos professores como usar o recurso de criação de questionários para a ferramenta Web 2.0, Kahoot! Kahoot! pode ser usado como uma ferramenta de jogo digital para revisar e avaliar o conhecimento do conteúdo do aluno em várias disciplinas e em mult
Ferramenta de braço robótico para cortador de fio quente: 8 etapas (com imagens)
Ferramenta de braço robótico para cortador de fio quente: Como parte do meu projeto de tese no KADK em Copenhagen, tenho explorado o corte com fio quente e a fabricação robótica. Para testar esse método de fabricação, fiz um acessório de fio quente para o braço do robô. O fio tinha que abranger 700 mm, mas o material
Reggie: uma ferramenta intuitiva para portas não intuitivas: 5 etapas (com imagens)
Reggie: uma ferramenta intuitiva para portas não intuitivas: Reggie é uma ferramenta simples para simular de forma divertida o design de portas não intuitivas. Faça o seu próprio. Leve um com você e, então, quando você encontrar tal porta, bata-a! Portas marcadas com um botão " empurrar " ou " puxar " sinal normalmente destaca casos de uso. R
Orange PI HowTo: configuração para uso com um monitor LCD TFT HDMI de 5 ": 8 etapas (com imagens)
Orange PI HowTo: configure-o para uso com um display LCD TFT HDMI de 5 ": Se você foi prudente o suficiente para solicitar um display LCD TFT HDMI junto com o seu Orange PI, provavelmente está desanimado pelas dificuldades em tentar forçá-lo a funcionar . Enquanto outros poderiam até não notar nenhum obstáculo. A chave é que há um
Orange PI HowTo: configuração para uso com visor retrovisor do carro e adaptador HDMI para RCA: 15 etapas
Orange PI HowTo: Configure-o para uso com display retrovisor do carro e HDMI para adaptador RCA: PREFÁCIO. Parece que todos os outros usam um aparelho de TV ou monitor grande e ainda maior com uma placa Orange PI idiota. E parece um pouco exagero quando destinado a sistemas embarcados. Aqui, precisamos de algo pequeno e barato. Como um