Eclipse #include
Olá pessoal!Recentemente, alguns artigos foram publicados no GT contra e por usar o Arduino para algo mais lucrativo do que luzes piscantes e criação de estações meteorológicas domésticas. O habitual discurso do mundo da tecnologia, quando a tecnologia se torna cada vez mais acessível ao público em geral, nada, sabemos.Tendo uma educação técnica e uma especialidade universitária diretamente relacionada à programação de microcontroladores, eu entendo aqueles que são contra. E com muitos anos de experiência em comercializar não apenas os meus, mas também, em maior medida, conhecimentos e habilidades estrangeiras, entendo perfeitamente quem é a favor.Você está certo, e você também está certo, e a verdade, como sempre, está em algum lugar próximo no meio.Primeiro de tudo, você precisa entender sobre o que é o argumento. O Arduino não é apenas belamente embalado pelos italianos em placas de circuito impresso e caixas de microcontroladores, e não apenas no ambiente de desenvolvimento do Arduino IDE. Primeiro de tudo, essas são bibliotecas para desenvolvimento rápido e, na minha opinião, são de maior valor. Se você observar os diagramas de circuitos das placas Arduino, não veremos nada de impressionante. Ambiente de desenvolvimento ... Digamos apenas que ele não alcança o modelo Borland C ++ de 1994 .Como sabemos, essas bibliotecas são distribuídas sob a licença GNU, elas podem ser obtidas e usadas sem pagar royalties aos seus criadores. Esse modelo de negócios exige ganhar dinheiro com algo que não seja royalties. Assim, eles ganham produzindo e vendendo em um belo pacote por 20 dólares o que um engenheiro eletrônico comprará por 20 centavos.E o importante aqui não é que eles sejam uma burguesia gananciosa, roubando os trabalhadores e repreensíveis de toda a humanidade progressista, mas por que eles podem fazer isso. Porque:- Eles apareceram na hora certa, no lugar certo e viram as primeiras oportunidades que outros não viram;
- Eles disponibilizaram ao consumidor o que anteriormente estava disponível para um círculo restrito de indivíduos limitados;
- Tudo foi lindamente embalado e apresentado ao consumidor em um formato pronto para uso.
, . Arduino — .
— . ,
.
, , - -, 86% . :
- ?
- ?
( «»)
Com base na experiência comercial, ouso dizer que o cliente escolherá o caminho do fumante do arduino.Mais sobre como usar o Arduino para propósitos egoístas, com desenvolvimento de blackjack e grupo, controle de versão, documentando o projeto e outros cisnes empalhados do mundo do desenvolvimento comercial.De fato, tudo é muito simples. Para isso, além dos desenvolvedores, precisamos de um ambiente de desenvolvimento e de uma posição na qual eles possam se desenvolver. C ++, está na África C ++, AVR e no Arduino permanece AVR.Como ambiente, considere o Eclipse. Aqui está um artigo muito bom sobre como configurar o Eclipse primeiro para funcionar com o AVR Toolchain e, em seguida, conectar as bibliotecas do Arduino e piscar o LED no Uno.E aqui está ainda melhor , mas em inglês.Vou suplementá-los com alguns ancinhos em que pisei, talvez isso economize a alguém algumas horas.Todos os seguintes são descritos para Linux e Leonardo. Para Windows, você deve primeiro instalar o MinGW / msys .Para criar todas as fontes incluídas no núcleo do Arduino, você precisa definir as constantes do pré-processador corretamente. Se você olhar o código fonte das bibliotecas, poderá ver muitas estruturas de compilação condicional #ifdef #else #endif. No artigo, por referência, o autor pontuou tudo ao pegar o arquivo .a finalizado compilado pelo Arduino IDE. Mas nem todas as bibliotecas se enquadram no kernel, por exemplo, SPI e Ethernet não se enquadram nelas, e as mesmas piadas com compilação condicional nos esperam nelas.Descobrir quais constantes e como definir pode ser muito simples.- Arduino IDE
- ,
- — — —
- ,
*** avr-g++ -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_LEONARDO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8036 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="Arduino Leonardo"' ***
, -D ( F_CPU, Eclipse ) Eclipse.
Para que o compilador encontre todos os arquivos .h que queremos usar no projeto, precisamos especificar o caminho para eles nas configurações. Existem duas maneiras. Você pode especificar caminhos absolutos para as pastas IDE do Arduino ou vincular a biblioteca ao projeto e especificar o caminho relativo de {workspase} / {ProjName}. O segundo método permitirá que você compile o kernel no Eclipse, embora não haja diferença fundamental, e no Arduino IDE e no Eclipse, o avr-g ++ é responsável pela compilação.Além disso, especifique o caminho para pins_arduino.h para o quadro que usamos no projeto.
Para não violar a estrutura harmoniosa dos arquivos da biblioteca main.cpp, não a editaremos. Apenas inclua como está no kernel no projeto e chamaremos nosso arquivo com outro nome. Não é necessário declarar a função main (), ela já está em main.cpp, inicializa tudo o que é necessário e chama a função loop () em um loop infinito, o vinculador coletará tudo como deveria.O ambiente está pronto para ir. Nós escrevemos da mesma maneira que no IDE do Arduino, mas aqui eles monitoram a conformidade com os cânones C ++ um pouco mais estritamente. E a qualquer momento podemos passar da programação de alto nível para o andar abaixo. Se a velocidade de trabalho com portas através do digitalWrite não for suficiente, escrevemos diretamente nas portas.Infelizmente, o hábito de desligar o processador com uma chamadadelay(5000);
Eclipse não cura. Isso é ensinado em algum lugar do ensino médio ou do ensino médio, que penetra a personalidade tão profundamente que nenhuma moralização pode levar uma pessoa ao caminho certo.Para preencher o Arduino IDE e o Eclipse, use o utilitário do programador AVRDude. Ela realmente conhece quadros como Uno com o nome "arduino", mas se recusa categoricamente a reconhecer quadros mais baratos como Leonardo.Vamos para o boards.txt e descobrimos que, para o programador, o programador nas configurações do AVRDude é chamado de "Carregador de inicialização Atmel AppNote AVR109", aqui está: Um pequeno inconveniente é que o Eclipse não fará isso. Você precisará pressionar reset com as canetas antes de carregar. Bem, em conclusão, o mesmo projeto, montado no IDE do Arduinoleonardo.upload.protocol=avr109

leonardo.upload.use_1200bps_touch=true
28 432 (99%) . 28 672 .
1 254 (48%) , 1 306 . : 2 560 .
e em Eclipse A ninharia, mas para terminar é apenas um quilo e não é o suficiente.Invoking: Print Size
avr-size --format=avr --mcu=atmega32u4 EthernetController.elf
AVR Memory Usage
----------------
Device: atmega32u4
Program: 27834 bytes (84.9% Full)
(.text + .data + .bootloader)
Data: 1257 bytes (49.1% Full)
(.data + .bss + .noinit)
Finished building: sizedummy
Source: https://habr.com/ru/post/pt390441/
All Articles