Eclipse #include

大家好!
最近发表了几篇文章对GT 对抗的东西比闪烁的灯光和家庭气象站的发展更有利可图的Arduino应用。我们知道,当技术变得越来越普及给公众时,我们通常会从技术世界中进行这样的讨论。
我了解与微控制器编程直接相关的技术教育和大学专业知识。不仅在我自己的商业化方面拥有多年的经验,而且在很大程度上还具有国外知识和技能的商业化经验,我完全理解那些人。
你说的没错,你也是对的,但事实总是有某个地方靠近中间。

首先,您需要了解参数的含义。 Arduino不仅被意大利人精美地包装在印刷电路板和微控制器盒中,而且不仅是Arduino IDE开发环境。首先,这些是用于快速开发的库,我认为它们具有最大的价值。如果您查看Arduino板的电路图,那么我们将看不到任何特别令人印象深刻的东西。开发环境...让我们说,它还不能完全达到1994年的Borland C ++模型
众所周知,这些库是在GNU许可下分发的,可以在不向其创建者支付版税的情况下使用和使用它们。这样的商业模式需要用特许权使用费以外的其他钱来赚钱。因此,他们通过以20美元的精美包装来生产和销售产品而赚钱,而电子工程师将以20美分的价格购买它们。
在这里重要的不是他们不是这样的贪婪的资产阶级,他们在剥夺劳动人民,并且在整个进步的人类中应受谴责,而是为什么他们可以这样做。因为:
  • 他们在正确的时间在正确的地方,看到了其他人没有看到的第一个机会。
  • 他们向消费者提供了以前有限的有限个人所能获得的东西。
  • 一切都包装精美,并以即用型形式呈现给消费者。


现在介绍为什么以及如何将娱乐性电子消费领域的成就与商业项目的开发周期相结合。在这个周期中,Arduino生态系统具有一个非常有价值的特性-开发速度。
速度是行进距离与时间的比率。越大速度越快,我们将做的工作,或者那些使用更大的工作中,我们将在规定的时间做,我们假设赚更多的钱每单位时间。

想象一下,客户转向您,他有一些愿望,而您在国土的垃圾箱中没有一个具有相似功能特征的近86%的已完成项目。任何客户都有两个基本问题:
  1. 多少钱?
  2. 什么时候准备好?

(他经常需要第二个问题的“昨天”答案)
, , ., , . M X Y Z .

根据业务经验,我敢说客户会选择吸烟者的路径

进一步介绍如何使用Arduino达到自私的目的,进行二十一点和小组开发,版本控制,记录项目以及来自商业开发领域的其他填充天鹅。
实际上,一切都很简单。为此,除了开发人员之外,我们还需要一个开发环境和一个可以在其上进行开发的平台。 C ++,它在非洲C ++,AVR中,在Arduino中仍然是AVR。

作为一种环境,请考虑使用Eclipse。这是一篇很好的文章,介绍如何首先配置Eclipse以使其与AVR工具链配合使用,然后连接Arduino库并使Uno上的LED闪烁。而且这里甚至更好,但是用英语。
我会补充一些我踩过的耙子,也许这样可以节省一个人几个小时的时间。
以下是针对Linux和Leonardo的所有描述。对于Windows,必须首先安装MinGW / msys

要构建Arduino核心中包含的所有源,您需要正确设置预处理器常量。如果查看这些库的源代码,则可以看到许多条件编译结构#ifdef #else #endif。在本文中,作者通过引用由Arduino IDE编译的最终.a文件对所有内容进行了评分。但是并不是所有的库都属于内核,例如,SPI和以太网并不属于它们,并且带有条件编译的相同笑话也在其中等待着我们。
找出哪些常量以及如何设置非常简单。
  1. Arduino IDE
  2. ,
  3. — — —
  4. ,
    *** 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.


为了使编译器能够找到我们要在项目中使用的所有.h文件,我们需要在设置中指定它们的路径。有两种方法。您可以指定Arduino IDE文件夹的绝对路径,也可以将库链接到项目,并从{workspase} / {ProjName}指定相对路径。第二种方法将允许您在Eclipse中编译内核,尽管没有根本区别,并且在Arduino IDE和Eclipse中,avr-g ++负责编译。
另外,为我们在项目中使用的板子指定pins_arduino.h的路径。

为了不违反main.cpp库文件的和谐结构,我们将不对其进行编辑。只需将其从内核中直接包含到项目中,我们就将文件命名为其他名称。不必在其中声明main()函数,它已经在main.cpp中,初始化所需的所有内容并在无限循环中调用loop()函数,链接器将按需收集所有内容。

环境已经准备就绪。我们的编写方式与Arduino IDE中的编写方式几乎相同,但是在这里,它们更加严格地监视对C ++规范的遵守情况。在任何时候,我们都可以从高级编程深入到下面。如果通过digitalWrite使用端口的速度还不够,我们将直接写入端口。
las,习惯通过电话挂断处理器
delay(5000);
Eclipse无法治愈。这是在高中或初中的某个地方教授的,它深刻地渗透了人格,以至于没有道德可以带领人走上正确的道路。

为了填充Arduino IDE和Eclipse,请使用编程器实用程序AVRDude。她确实很了解像Uno这样的董事会,名称是“ arduino”,但是她坚决拒绝承认像Leonardo这样的便宜董事会。
我们转到boards.txt,发现对于 程序员来说,AVRDude设置中程序员称为“ Atmel AppNote AVR109引导加载程序”,这是: 给您带来的一个小麻烦是Eclipse不会执行此操作 好吧,总而言之,在Arduino IDE中组装的同一项目
leonardo.upload.protocol=avr109




leonardo.upload.use_1200bps_touch=true




28 432 (99%) . 28 672 .
1 254 (48%) , 1 306 . : 2 560 .

而且在Eclipse中 有点琐事,但仅完成一磅,还不够。
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/zh-CN390441/


All Articles