Eclipse #include
Hola a todos!Recientemente, se publicaron un par de artículos sobre el GT contra y por usar el Arduino para algo más rentable que las luces intermitentes y la creación de estaciones meteorológicas domésticas. El discurso habitual del mundo de la tecnología, cuando la tecnología se vuelve cada vez más accesible para el público en general, nadamos, lo sabemos.Con una educación técnica y una especialidad universitaria directamente relacionadas con la programación de microcontroladores, entiendo a quienes están en contra. Y teniendo muchos años de experiencia en la comercialización no solo de la mía, sino también en mayor medida de conocimientos y habilidades extranjeras, entiendo perfectamente a quienes están a su favor.Tienes razón, y también tienes razón, y la verdad, como siempre, está en algún lugar cercano en el medio.En primer lugar, debe comprender de qué se trata el argumento. Arduino no solo está bellamente empaquetado por los italianos en placas de circuito impreso y cajas de microcontroladores, y no solo en el entorno de desarrollo Arduino IDE. En primer lugar, se trata de bibliotecas para un desarrollo rápido y, en mi opinión, son de gran valor. Si observa los diagramas de circuitos de las placas Arduino, no veremos nada particularmente impresionante. Entorno de desarrollo ... Digamos que no alcanza el modelo Borland C ++ de 1994 .Como sabemos, estas bibliotecas se distribuyen bajo la licencia GNU, se pueden tomar y usar sin pagar regalías a sus creadores. Tal modelo de negocio requiere ganar dinero en algo que no sea regalías. Entonces ganan ganando produciendo y vendiendo en un hermoso paquete por 20 dólares lo que un ingeniero electrónico comprará por 20 centavos.Y lo importante aquí no es que sean una burguesía tan codiciosa, robando a los trabajadores y reprensibles de toda la humanidad progresista, sino por qué pueden hacer esto. Porque:- Estaban en el momento correcto en el lugar correcto y vieron las primeras oportunidades que otros no vieron;
- Pusieron a disposición del consumidor lo que antes estaba disponible para un círculo estrecho de individuos limitados;
- Todo estaba muy bien embalado y presentado al consumidor en una forma lista para usar.
, . Arduino — .
— . ,
.
, , - -, 86% . :
- ?
- ?
( «»)
Con base en la experiencia comercial, me atrevo a decir que el cliente elegirá el camino del fumador del arduino.Más información sobre cómo usar Arduino para sus propios fines egoístas, con blackjack y desarrollo grupal, control de versiones, documentación del proyecto y otros cisnes de peluche del mundo del desarrollo comercial.De hecho, todo es muy simple. Para esto, aparte de los desarrolladores, necesitamos un entorno de desarrollo y un soporte en el que puedan desarrollarse. C ++, se encuentra en África C ++, AVR y en Arduino sigue siendo AVR.Como entorno, considere Eclipse. Aquí hay un muy buen artículo sobre cómo configurar Eclipse primero para trabajar con AVR Toolchain, y luego conectar las bibliotecas Arduino y parpadear el LED en Uno.Y aquí está aún mejor , pero en inglés.Los complementaré con algunos rastrillos que he pisado, tal vez esto le ahorrará a alguien un par de horas.Todo lo siguiente se describe para Linux y Leonardo. Para Windows, primero debe instalar MinGW / msys .Para compilar todas las fuentes incluidas en el núcleo Arduino, debe establecer las constantes del preprocesador correctamente. Si observa el código fuente de las bibliotecas, puede ver muchas estructuras de compilación condicional #ifdef #else #endif. En un artículo de referencia, el autor lo calificó todo tomando un archivo .a listo y compilado por el IDE de Arduino. Pero no todas las bibliotecas caen en el núcleo, por ejemplo, SPI y Ethernet no caen en ellas, y las mismas bromas con compilación condicional nos esperan en ellas.Averiguar qué constantes y cómo establecer puede ser muy simple.- 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 el compilador encuentre todos los archivos .h que queremos usar en el proyecto, necesitamos especificar la ruta a ellos en la configuración. Hay dos formas Puede especificar rutas absolutas a las carpetas IDE de Arduino o vincular la biblioteca al proyecto y especificar la ruta relativa desde {workspase} / {ProjName}. El segundo método le permitirá compilar el núcleo en Eclipse, aunque no hay una diferencia fundamental, y en Arduino IDE y Eclipse, avr-g ++ es responsable de la compilación.Además, especifique la ruta a pins_arduino.h para el tablero que usamos en el proyecto.
Para no violar la estructura armoniosa de los archivos de la biblioteca main.cpp, no lo editaremos. Simplemente inclúyalo tal como es desde el núcleo en el proyecto, y llamaremos a nuestro archivo con otro nombre. No es necesario declarar la función main () en ella, ya está en main.cpp, inicializa todo lo que se necesita y llama a la función loop () en un bucle infinito, el enlazador recopilará todo como debería.El ambiente está listo para funcionar. Escribimos de la misma manera que en el IDE de Arduino, pero aquí supervisan el cumplimiento de los cánones de C ++ un poco más estrictamente. Y en cualquier momento podemos bajar de la programación de alto nivel al piso de abajo. Si la velocidad de trabajar con puertos a través de digitalWrite no es suficiente, escribimos directamente en los puertos.Por desgracia, la costumbre de colgar el procesador con una llamadadelay(5000);
Eclipse no cura. Esto se enseña en algún lugar, ya sea en la escuela secundaria o en la escuela secundaria, penetra tan profundamente en la personalidad que ninguna moralización puede llevar a una persona por el camino correcto.Para llenar tanto Arduino IDE como Eclipse, use la utilidad de programación AVRDude. Ella realmente conoce tableros como Uno bajo el nombre de "arduino", pero se niega categóricamente a reconocer los más baratos como Leonardo.Vamos a boards.txt y descubrimos que para el programador, el Programador en la configuración de AVRDude se llama "Atmel AppNote AVR109 Boot Loader", aquí está: Un pequeño inconveniente es que Eclipse no hará esto. Deberá presionar reset con los lápices antes de cargar. Bueno, en conclusión, el mismo proyecto, ensamblado en el IDE Arduinoleonardo.upload.protocol=avr109

leonardo.upload.use_1200bps_touch=true
28 432 (99%) . 28 672 .
1 254 (48%) , 1 306 . : 2 560 .
y en Eclipse A , pero para terminar son solo medio kilo y no lo 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/es390441/
All Articles