zoukankan      html  css  js  c++  java
  • How arduino IDE works?

    test.ino

    void setup()
    {    
        pinMode(13,OUTPUT);
        
    }
    
    void loop()
    {
    
        digitalWrite(13,HIGH);
        delay(500);
        digitalWrite(13,LOW);
        delay(500);
    
    }

    Arduino IDE console output(for easy read , I formated)

    #step 1
    E:Arduinoarduino-1.7.10/hardware/tools/avr/bin/avr-g++ -c # just process , complie , assembl e , not link , so it generate object file -g # for debug -Os # optimize for size -w # suppress all warning -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=107010 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IE:Arduinoarduino-1.7.10hardwarearduinoavrcoresarduino -IE:Arduinoarduino-1.7.10hardwarearduinoavrvariantseightanaloginputs C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp est.cpp -o
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp est.cpp.o
    #step2 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmphooks.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpWInterrupts.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpwiring.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpwiring_analog.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpwiring_digital.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpwiring_pulse.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpwiring_shift.c.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpabi.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpCDC.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHardwareSerial.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHardwareSerial0.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHardwareSerial1.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHardwareSerial2.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHardwareSerial3.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpHID.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpIPAddress.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpmain.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmp
    new.cpp.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpPrint.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpStream.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpTone.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpUSBCore.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpWMath.cpp.o 使用已经编译的文件:C:Usersxxx AppDataLocalTempuild4353357245568764721.tmpWString.cpp.o 使用已经编译的文件:C:UsersxxxAppDataLocalTempuild4353357245568764721.tmpcore.a

    #step 3 E:Arduinoarduino
    -1.7.10/hardware/tools/avr/bin/avr-gcc
    -w
    -Os
    -Wl,
    --gc-sections
    -mmcu=atmega328p
    -o C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/test.cpp.elf
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp est.cpp.o
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/core.a
    -L C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp -lm
    E:Arduinoarduino
    -1.7.10/hardware/tools/avr/bin/avr-objcopy
    -O ihex
    -j .eeprom --set-section-flags=.eeprom=alloc,load
    --no-change-warnings
    --change-section-lma .eeprom=0
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/test.cpp.elf
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/test.cpp.eep
    E:Arduinoarduino
    -1.7.10/hardware/tools/avr/bin/avr-objcopy
    -O ihex
    -R .eeprom
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/test.cpp.elf
    C:UsersxxxAppDataLocalTempuild4353357245568764721.tmp/test.cpp.hex

    procedure map(I guss)

  • 相关阅读:
    UltraEdit语法高亮解决办法
    tcpdump命令格式及使用
    VS tricks
    git ready
    [FirefoxPlugin]Print pages to Pdf
    Searching and Navigating Code in VS 2010 (VS 2010 and .NET 4.0 Series)
    How to avoid StepInto unnecessary code area?
    Search and Navigation Tips/Tricks with Visual Studio
    squashing commits with rebase
    【原创】钻石继承与虚继承
  • 原文地址:https://www.cnblogs.com/lulipro/p/6657890.html
Copyright © 2011-2022 走看看