├── .codespellrc
├── .github
├── dependabot.yml
└── workflows
│ ├── check-arduino.yml
│ ├── compile-platform-examples.yml
│ ├── report-size-deltas.yml
│ └── spell-check.yml
├── README.md
├── boards.txt
├── bootloaders
├── atmega
│ ├── ATmegaBOOT_168.c
│ ├── ATmegaBOOT_168_atmega1280.hex
│ ├── ATmegaBOOT_168_atmega328.hex
│ ├── ATmegaBOOT_168_atmega328_pro_8MHz.hex
│ ├── ATmegaBOOT_168_diecimila.hex
│ ├── ATmegaBOOT_168_ng.hex
│ ├── ATmegaBOOT_168_pro_8MHz.hex
│ └── Makefile
├── atmega8
│ ├── ATmegaBOOT-prod-firmware-2009-11-07.hex
│ ├── ATmegaBOOT.c
│ ├── ATmegaBOOT.hex
│ ├── ATmegaBOOT.txt
│ └── Makefile
├── bt
│ ├── ATmegaBOOT_168.c
│ ├── ATmegaBOOT_168.hex
│ ├── ATmegaBOOT_168_atmega328_bt.hex
│ └── Makefile
├── caterina-Arduino_Robot
│ ├── Caterina-Robot-Control.hex
│ ├── Caterina-Robot-Motor.hex
│ ├── Caterina-Robot.txt
│ ├── Caterina.c
│ ├── Caterina.h
│ ├── Descriptors.c
│ ├── Descriptors.h
│ ├── Makefile
│ └── README.md
├── caterina-LilyPadUSB
│ ├── Caterina-LilyPadUSB.hex
│ ├── Caterina.c
│ ├── Caterina.h
│ ├── Descriptors.c
│ ├── Descriptors.h
│ ├── Makefile
│ └── Readme.txt
├── caterina
│ ├── Caterina-Circuitplay32u4.hex
│ ├── Caterina-Esplora.hex
│ ├── Caterina-Esplora.txt
│ ├── Caterina-Industrial101.hex
│ ├── Caterina-Leonardo.hex
│ ├── Caterina-Leonardo.txt
│ ├── Caterina-LeonardoEthernet.hex
│ ├── Caterina-LininoOne.hex
│ ├── Caterina-Micro.hex
│ ├── Caterina-Micro.txt
│ ├── Caterina-Yun-noblink.hex
│ ├── Caterina-Yun.hex
│ ├── Caterina-YunMini.hex
│ ├── Caterina.c
│ ├── Caterina.h
│ ├── Descriptors.c
│ ├── Descriptors.h
│ ├── Esplora-prod-firmware-2012-12-10.hex
│ ├── Esplora-prod-firmware-2012-12-10.txt
│ ├── Leonardo-prod-firmware-2012-04-26.hex
│ ├── Leonardo-prod-firmware-2012-04-26.txt
│ ├── Leonardo-prod-firmware-2012-12-10.hex
│ ├── Leonardo-prod-firmware-2012-12-10.txt
│ ├── Makefile
│ ├── Micro-prod-firmware-2012-11-23.hex
│ ├── Micro-prod-firmware-2012-11-23.txt
│ ├── Micro-prod-firmware-2012-12-10.hex
│ └── Micro-prod-firmware-2012-12-10.txt
├── gemma
│ ├── README.md
│ ├── avrdude.conf
│ ├── gemma_v1.hex
│ ├── usbconfig.h
│ └── usbconfig.patch
├── lilypad
│ ├── LilyPadBOOT_168.hex
│ └── src
│ │ ├── ATmegaBOOT.c
│ │ └── Makefile
├── optiboot
│ ├── Makefile
│ ├── README.TXT
│ ├── boot.h
│ ├── makeall
│ ├── omake
│ ├── omake.bat
│ ├── optiboot.c
│ ├── optiboot_atmega168.hex
│ ├── optiboot_atmega168.lst
│ ├── optiboot_atmega328-Mini.hex
│ ├── optiboot_atmega328.hex
│ ├── optiboot_atmega328.lst
│ ├── optiboot_atmega8.hex
│ ├── optiboot_atmega8.lst
│ ├── pin_defs.h
│ └── stk500.h
└── stk500v2
│ ├── License.txt
│ ├── Makefile
│ ├── Mega2560-prod-firmware-2011-06-29.hex
│ ├── STK500V2.pnproj
│ ├── STK500V2.pnps
│ ├── avr_cpunames.h
│ ├── avrinterruptnames.h
│ ├── command.h
│ ├── stk500boot.c
│ ├── stk500boot.ppg
│ └── stk500boot_v2_mega2560.hex
├── cores
└── arduino
│ ├── Arduino.h
│ ├── CDC.cpp
│ ├── Client.h
│ ├── HardwareSerial.cpp
│ ├── HardwareSerial.h
│ ├── HardwareSerial0.cpp
│ ├── HardwareSerial1.cpp
│ ├── HardwareSerial2.cpp
│ ├── HardwareSerial3.cpp
│ ├── HardwareSerial_private.h
│ ├── IPAddress.cpp
│ ├── IPAddress.h
│ ├── PluggableUSB.cpp
│ ├── PluggableUSB.h
│ ├── Print.cpp
│ ├── Print.h
│ ├── Printable.h
│ ├── Server.h
│ ├── Stream.cpp
│ ├── Stream.h
│ ├── Tone.cpp
│ ├── USBAPI.h
│ ├── USBCore.cpp
│ ├── USBCore.h
│ ├── USBDesc.h
│ ├── Udp.h
│ ├── WCharacter.h
│ ├── WInterrupts.c
│ ├── WMath.cpp
│ ├── WString.cpp
│ ├── WString.h
│ ├── abi.cpp
│ ├── binary.h
│ ├── hooks.c
│ ├── main.cpp
│ ├── new
│ ├── new.cpp
│ ├── new.h
│ ├── wiring.c
│ ├── wiring_analog.c
│ ├── wiring_digital.c
│ ├── wiring_private.h
│ ├── wiring_pulse.S
│ ├── wiring_pulse.c
│ └── wiring_shift.c
├── drivers
├── AdafruitCircuitPlayground.cat
├── AdafruitCircuitPlayground.inf
├── FTDI USB Drivers
│ ├── Static
│ │ ├── amd64
│ │ │ └── ftd2xx.lib
│ │ └── i386
│ │ │ └── ftd2xx.lib
│ ├── amd64
│ │ ├── ftbusui.dll
│ │ ├── ftcserco.dll
│ │ ├── ftd2xx.lib
│ │ ├── ftd2xx64.dll
│ │ ├── ftdibus.sys
│ │ ├── ftlang.dll
│ │ ├── ftser2k.sys
│ │ └── ftserui2.dll
│ ├── ftd2xx.h
│ ├── ftdibus.cat
│ ├── ftdibus.inf
│ ├── ftdiport.cat
│ ├── ftdiport.inf
│ └── i386
│ │ ├── ftbusui.dll
│ │ ├── ftcserco.dll
│ │ ├── ftd2xx.dll
│ │ ├── ftd2xx.lib
│ │ ├── ftdibus.sys
│ │ ├── ftlang.dll
│ │ ├── ftser2k.sys
│ │ └── ftserui2.dll
├── arduino-org.cat
├── arduino-org.inf
├── arduino.cat
├── arduino.inf
├── dpinst-amd64.exe
├── dpinst-x86.exe
├── gemma
│ ├── amd64
│ │ ├── libusb0.dll
│ │ └── libusb0.sys
│ ├── arduino_gemma.cat
│ ├── arduino_gemma.inf
│ ├── ia64
│ │ ├── libusb0.dll
│ │ └── libusb0.sys
│ ├── license
│ │ └── libusb0
│ │ │ └── installer_license.txt
│ └── x86
│ │ ├── libusb0.sys
│ │ └── libusb0_x86.dll
├── genuino.cat
├── genuino.inf
├── linino-boards_amd64.cat
├── linino-boards_x86.cat
└── linino.inf
├── extras
├── pack.hourlybuild.bash
├── pack.pullrequest.bash
├── pack.release.bash
├── package_index.json.Hourly.template
└── package_index.json.PR.template
├── firmwares
├── arduinoISP
│ └── readme.txt
├── atmegaxxu2
│ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex
│ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex
│ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
│ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-R3.hex
│ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex
│ ├── MEGA-dfu_and_usbserial_combined.hex
│ ├── README.txt
│ ├── UNO-dfu_and_usbserial_combined.hex
│ ├── arduino-usbdfu
│ │ ├── Arduino-usbdfu.c
│ │ ├── Arduino-usbdfu.h
│ │ ├── Board
│ │ │ └── LEDs.h
│ │ ├── Descriptors.c
│ │ ├── Descriptors.h
│ │ ├── makefile
│ │ └── readme.txt
│ └── arduino-usbserial
│ │ ├── Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex
│ │ ├── Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex
│ │ ├── Arduino-usbserial-atmega16u2-Uno-Rev3.hex
│ │ ├── Arduino-usbserial-mega.hex
│ │ ├── Arduino-usbserial-uno.hex
│ │ ├── Arduino-usbserial.c
│ │ ├── Arduino-usbserial.h
│ │ ├── Board
│ │ └── LEDs.h
│ │ ├── Descriptors.c
│ │ ├── Descriptors.h
│ │ ├── Genuino-usbserial-atmega16u2-Mega2560-R3.hex
│ │ ├── Genuino-usbserial-atmega16u2-Uno-R3.hex
│ │ ├── Lib
│ │ └── LightweightRingBuff.h
│ │ ├── makefile
│ │ └── readme.txt
└── wifishield
│ ├── binary
│ ├── wifiHD.elf
│ ├── wifiHD.hex
│ ├── wifiHD_2_1.elf
│ ├── wifi_dnld.elf
│ ├── wifi_dnld.hex
│ └── wifi_dnld_2_1.elf
│ ├── scripts
│ ├── ArduinoWifiShield_upgrade.sh
│ └── ArduinoWifiShield_upgrade_mac.sh
│ ├── wifiHD
│ ├── .cproject
│ ├── .project
│ ├── Release
│ │ ├── wifiHD.elf
│ │ └── wifiHD.hex
│ ├── src
│ │ ├── CONFIG
│ │ │ ├── conf_access.h
│ │ │ ├── conf_at45dbx.h
│ │ │ ├── conf_ebi.h
│ │ │ └── conf_sd_mmc_spi.h
│ │ ├── SOFTWARE_FRAMEWORK
│ │ │ ├── ASM
│ │ │ │ └── trampoline.x
│ │ │ ├── BOARDS
│ │ │ │ ├── ARDUINO
│ │ │ │ │ ├── arduino.h
│ │ │ │ │ ├── led.c
│ │ │ │ │ └── led.h
│ │ │ │ ├── EVK1105
│ │ │ │ │ ├── evk1105.h
│ │ │ │ │ ├── led.c
│ │ │ │ │ └── led.h
│ │ │ │ ├── board.h
│ │ │ │ └── board.h.my
│ │ │ ├── COMPONENTS
│ │ │ │ ├── MEMORY
│ │ │ │ │ └── DATA_FLASH
│ │ │ │ │ │ └── AT45DBX
│ │ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ │ └── at45dbx_mem.h
│ │ │ │ └── WIFI
│ │ │ │ │ └── HD
│ │ │ │ │ ├── v2.7.0
│ │ │ │ │ ├── UCR1
│ │ │ │ │ │ └── GCC
│ │ │ │ │ │ │ ├── lib_ucr1_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ ├── lib_ucr1_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ └── lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ ├── UCR2
│ │ │ │ │ │ └── GCC
│ │ │ │ │ │ │ ├── lib_ucr2_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ ├── lib_ucr2_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ └── lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ └── revision.txt
│ │ │ │ │ ├── wl_api.h
│ │ │ │ │ ├── wl_fw.h
│ │ │ │ │ ├── wl_os.h
│ │ │ │ │ ├── wl_sdio.h
│ │ │ │ │ ├── wl_spi.h
│ │ │ │ │ └── wlap_api.h
│ │ │ ├── DRIVERS
│ │ │ │ ├── CPU
│ │ │ │ │ └── CYCLE_COUNTER
│ │ │ │ │ │ └── cycle_counter.h
│ │ │ │ ├── EBI
│ │ │ │ │ └── SMC
│ │ │ │ │ │ ├── smc.c
│ │ │ │ │ │ └── smc.h
│ │ │ │ ├── EIC
│ │ │ │ │ ├── eic.c
│ │ │ │ │ └── eic.h
│ │ │ │ ├── FLASHC
│ │ │ │ │ ├── flashc.c
│ │ │ │ │ └── flashc.h
│ │ │ │ ├── GPIO
│ │ │ │ │ ├── gpio.c
│ │ │ │ │ └── gpio.h
│ │ │ │ ├── INTC
│ │ │ │ │ ├── exception.x
│ │ │ │ │ ├── intc.c
│ │ │ │ │ └── intc.h
│ │ │ │ ├── PDCA
│ │ │ │ │ ├── pdca.c
│ │ │ │ │ └── pdca.h
│ │ │ │ ├── PM
│ │ │ │ │ ├── pm.c
│ │ │ │ │ ├── pm.h
│ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ ├── RTC
│ │ │ │ │ ├── rtc.c
│ │ │ │ │ └── rtc.h
│ │ │ │ ├── SPI
│ │ │ │ │ ├── spi.c
│ │ │ │ │ └── spi.h
│ │ │ │ ├── TC
│ │ │ │ │ ├── tc.c
│ │ │ │ │ └── tc.h
│ │ │ │ └── USART
│ │ │ │ │ ├── usart.c
│ │ │ │ │ └── usart.h
│ │ │ ├── SERVICES
│ │ │ │ ├── DELAY
│ │ │ │ │ ├── delay.c
│ │ │ │ │ └── delay.h
│ │ │ │ ├── LWIP
│ │ │ │ │ ├── lwip-1.3.2
│ │ │ │ │ │ └── src
│ │ │ │ │ │ │ ├── core
│ │ │ │ │ │ │ ├── dhcp.c
│ │ │ │ │ │ │ ├── dns.c
│ │ │ │ │ │ │ ├── init.c
│ │ │ │ │ │ │ ├── ipv4
│ │ │ │ │ │ │ │ ├── autoip.c
│ │ │ │ │ │ │ │ ├── icmp.c
│ │ │ │ │ │ │ │ ├── igmp.c
│ │ │ │ │ │ │ │ ├── inet.c
│ │ │ │ │ │ │ │ ├── inet_chksum.c
│ │ │ │ │ │ │ │ ├── ip.c
│ │ │ │ │ │ │ │ ├── ip_addr.c
│ │ │ │ │ │ │ │ └── ip_frag.c
│ │ │ │ │ │ │ ├── mem.c
│ │ │ │ │ │ │ ├── memp.c
│ │ │ │ │ │ │ ├── netif.c
│ │ │ │ │ │ │ ├── pbuf.c
│ │ │ │ │ │ │ ├── raw.c
│ │ │ │ │ │ │ ├── stats.c
│ │ │ │ │ │ │ ├── tcp.c
│ │ │ │ │ │ │ ├── tcp_in.c
│ │ │ │ │ │ │ ├── tcp_out.c
│ │ │ │ │ │ │ └── udp.c
│ │ │ │ │ │ │ ├── include
│ │ │ │ │ │ │ ├── ipv4
│ │ │ │ │ │ │ │ └── lwip
│ │ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ │ ├── inet.h
│ │ │ │ │ │ │ │ │ ├── inet_chksum.h
│ │ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ │ ├── ip_addr.h
│ │ │ │ │ │ │ │ │ └── ip_frag.h
│ │ │ │ │ │ │ ├── lwip
│ │ │ │ │ │ │ │ ├── api.h
│ │ │ │ │ │ │ │ ├── api_msg.h
│ │ │ │ │ │ │ │ ├── arch.h
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── def.h
│ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ ├── err.h
│ │ │ │ │ │ │ │ ├── init.h
│ │ │ │ │ │ │ │ ├── mem.h
│ │ │ │ │ │ │ │ ├── memp.h
│ │ │ │ │ │ │ │ ├── memp_std.h
│ │ │ │ │ │ │ │ ├── netbuf.h
│ │ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ │ ├── netif.h
│ │ │ │ │ │ │ │ ├── netifapi.h
│ │ │ │ │ │ │ │ ├── opt.h
│ │ │ │ │ │ │ │ ├── pbuf.h
│ │ │ │ │ │ │ │ ├── raw.h
│ │ │ │ │ │ │ │ ├── sio.h
│ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ ├── snmp_asn1.h
│ │ │ │ │ │ │ │ ├── snmp_msg.h
│ │ │ │ │ │ │ │ ├── snmp_structs.h
│ │ │ │ │ │ │ │ ├── sockets.h
│ │ │ │ │ │ │ │ ├── stats.h
│ │ │ │ │ │ │ │ ├── sys.h
│ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ ├── tcpip.h
│ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ └── netif
│ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ ├── loopif.h
│ │ │ │ │ │ │ │ ├── ppp_oe.h
│ │ │ │ │ │ │ │ └── slipif.h
│ │ │ │ │ │ │ └── netif
│ │ │ │ │ │ │ ├── etharp.c
│ │ │ │ │ │ │ └── loopif.c
│ │ │ │ │ └── lwip-port-1.3.2
│ │ │ │ │ │ └── HD
│ │ │ │ │ │ ├── if
│ │ │ │ │ │ ├── include
│ │ │ │ │ │ │ ├── arch
│ │ │ │ │ │ │ │ ├── cc.h
│ │ │ │ │ │ │ │ └── perf.h
│ │ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ │ └── netif
│ │ │ │ │ │ │ │ └── wlif.h
│ │ │ │ │ │ └── netif
│ │ │ │ │ │ │ └── wlif.c
│ │ │ │ │ │ └── readme.txt
│ │ │ │ └── MEMORY
│ │ │ │ │ └── CTRL_ACCESS
│ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ └── ctrl_access.h
│ │ │ └── UTILS
│ │ │ │ ├── DEBUG
│ │ │ │ ├── debug.c
│ │ │ │ ├── debug.h
│ │ │ │ ├── print_funcs.c
│ │ │ │ └── print_funcs.h
│ │ │ │ ├── LIBS
│ │ │ │ └── NEWLIB_ADDONS
│ │ │ │ │ ├── INCLUDE
│ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ ├── LINKER_SCRIPTS
│ │ │ │ └── AT32UC3A
│ │ │ │ │ ├── 1256
│ │ │ │ │ └── GCC
│ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ └── 0512
│ │ │ │ │ └── GCC
│ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ ├── PREPROCESSOR
│ │ │ │ ├── mrepeat.h
│ │ │ │ ├── preprocessor.h
│ │ │ │ ├── stringz.h
│ │ │ │ └── tpaste.h
│ │ │ │ ├── STARTUP_FILES
│ │ │ │ └── GCC
│ │ │ │ │ └── crt0.x
│ │ │ │ ├── compiler.h
│ │ │ │ ├── conf_isp.h
│ │ │ │ └── parts.h
│ │ ├── ard_spi.c
│ │ ├── ard_spi.h
│ │ ├── ard_tcp.c
│ │ ├── ard_tcp.h
│ │ ├── ard_utils.c
│ │ ├── ard_utils.h
│ │ ├── avr32_spi.c
│ │ ├── board_init.c
│ │ ├── board_init.h
│ │ ├── cmd_wl.c
│ │ ├── cmd_wl.h
│ │ ├── console.c
│ │ ├── console.h
│ │ ├── debug.h
│ │ ├── fw_download.h
│ │ ├── fw_download_extflash.c
│ │ ├── license.txt
│ │ ├── lwip_setup.c
│ │ ├── lwip_setup.h
│ │ ├── lwipopts.h
│ │ ├── main.c
│ │ ├── nvram.c
│ │ ├── nvram.h
│ │ ├── owl_os.c
│ │ ├── ping.c
│ │ ├── ping.h
│ │ ├── printf-stdarg.c
│ │ ├── printf-stdarg.h
│ │ ├── timer.c
│ │ ├── timer.h
│ │ ├── top_defs.h
│ │ ├── trace.h
│ │ ├── util.c
│ │ ├── util.h
│ │ ├── wifi_spi.h
│ │ ├── wl_cm.c
│ │ ├── wl_cm.h
│ │ └── wl_definitions.h
│ └── wifiHD.cproj
│ ├── wifi_dnld
│ ├── .cproject
│ ├── .project
│ ├── Release
│ │ └── wifi_dnld.elf
│ ├── src
│ │ ├── CONFIG
│ │ │ ├── conf_access.h
│ │ │ └── conf_at45dbx.h
│ │ ├── Doc
│ │ │ ├── SPB104 product brief.pdf
│ │ │ └── gettingstarted.pdf
│ │ ├── SOFTWARE_FRAMEWORK
│ │ │ ├── ASM
│ │ │ │ └── trampoline.x
│ │ │ ├── BOARDS
│ │ │ │ ├── ARDUINO
│ │ │ │ │ ├── arduino.h
│ │ │ │ │ ├── led.c
│ │ │ │ │ └── led.h
│ │ │ │ ├── EVK1105
│ │ │ │ │ ├── evk1105.h
│ │ │ │ │ ├── led.c
│ │ │ │ │ └── led.h
│ │ │ │ ├── board.h
│ │ │ │ └── board.h.ori
│ │ │ ├── COMPONENTS
│ │ │ │ └── MEMORY
│ │ │ │ │ └── DATA_FLASH
│ │ │ │ │ └── AT45DBX
│ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ └── at45dbx_mem.h
│ │ │ ├── DRIVERS
│ │ │ │ ├── FLASHC
│ │ │ │ │ ├── flashc.c
│ │ │ │ │ └── flashc.h
│ │ │ │ ├── GPIO
│ │ │ │ │ ├── gpio.c
│ │ │ │ │ └── gpio.h
│ │ │ │ ├── INTC
│ │ │ │ │ ├── exception.x
│ │ │ │ │ ├── intc.c
│ │ │ │ │ └── intc.h
│ │ │ │ ├── PM
│ │ │ │ │ ├── pm.c
│ │ │ │ │ ├── pm.h
│ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ ├── SPI
│ │ │ │ │ ├── spi.c
│ │ │ │ │ └── spi.h
│ │ │ │ └── USART
│ │ │ │ │ ├── usart.c
│ │ │ │ │ └── usart.h
│ │ │ ├── SERVICES
│ │ │ │ └── MEMORY
│ │ │ │ │ └── CTRL_ACCESS
│ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ └── ctrl_access.h
│ │ │ └── UTILS
│ │ │ │ ├── DEBUG
│ │ │ │ ├── debug.c
│ │ │ │ ├── debug.h
│ │ │ │ ├── print_funcs.c
│ │ │ │ └── print_funcs.h
│ │ │ │ ├── LIBS
│ │ │ │ └── NEWLIB_ADDONS
│ │ │ │ │ ├── INCLUDE
│ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ ├── LINKER_SCRIPTS
│ │ │ │ └── AT32UC3A
│ │ │ │ │ ├── 1256
│ │ │ │ │ └── GCC
│ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ └── 0512
│ │ │ │ │ └── GCC
│ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ ├── PREPROCESSOR
│ │ │ │ ├── mrepeat.h
│ │ │ │ ├── preprocessor.h
│ │ │ │ ├── stringz.h
│ │ │ │ └── tpaste.h
│ │ │ │ ├── STARTUP_FILES
│ │ │ │ └── GCC
│ │ │ │ │ └── crt0.x
│ │ │ │ ├── compiler.h
│ │ │ │ ├── conf_isp.h
│ │ │ │ └── parts.h
│ │ ├── clocks.c
│ │ ├── clocks.h
│ │ ├── flash_fw.c
│ │ ├── license.txt
│ │ ├── nor_flash.c
│ │ ├── nor_flash.h
│ │ ├── printf-stdarg.c
│ │ ├── printf-stdarg.h
│ │ ├── startup.c
│ │ ├── startup.h
│ │ └── wl_fw.h
│ └── wifi_dnld.cproj
│ └── wifishield.atsln
├── libraries
├── EEPROM
│ ├── README.md
│ ├── examples
│ │ ├── eeprom_clear
│ │ │ └── eeprom_clear.ino
│ │ ├── eeprom_crc
│ │ │ └── eeprom_crc.ino
│ │ ├── eeprom_get
│ │ │ └── eeprom_get.ino
│ │ ├── eeprom_iteration
│ │ │ └── eeprom_iteration.ino
│ │ ├── eeprom_put
│ │ │ └── eeprom_put.ino
│ │ ├── eeprom_read
│ │ │ └── eeprom_read.ino
│ │ ├── eeprom_update
│ │ │ └── eeprom_update.ino
│ │ └── eeprom_write
│ │ │ └── eeprom_write.ino
│ ├── keywords.txt
│ ├── library.properties
│ └── src
│ │ └── EEPROM.h
├── HID
│ ├── keywords.txt
│ ├── library.properties
│ └── src
│ │ ├── HID.cpp
│ │ └── HID.h
├── SPI
│ ├── examples
│ │ ├── BarometricPressureSensor
│ │ │ └── BarometricPressureSensor.ino
│ │ └── DigitalPotControl
│ │ │ └── DigitalPotControl.ino
│ ├── keywords.txt
│ ├── library.properties
│ └── src
│ │ ├── SPI.cpp
│ │ └── SPI.h
├── SoftwareSerial
│ ├── examples
│ │ ├── SoftwareSerialExample
│ │ │ └── SoftwareSerialExample.ino
│ │ └── TwoPortReceive
│ │ │ └── TwoPortReceive.ino
│ ├── keywords.txt
│ ├── library.properties
│ └── src
│ │ ├── SoftwareSerial.cpp
│ │ └── SoftwareSerial.h
└── Wire
│ ├── examples
│ ├── SFRRanger_reader
│ │ └── SFRRanger_reader.ino
│ ├── digital_potentiometer
│ │ └── digital_potentiometer.ino
│ ├── i2c_scanner
│ │ └── i2c_scanner.ino
│ ├── master_reader
│ │ └── master_reader.ino
│ ├── master_writer
│ │ └── master_writer.ino
│ ├── slave_receiver
│ │ └── slave_receiver.ino
│ └── slave_sender
│ │ └── slave_sender.ino
│ ├── keywords.txt
│ ├── library.properties
│ └── src
│ ├── Wire.cpp
│ ├── Wire.h
│ └── utility
│ ├── twi.c
│ └── twi.h
├── platform.txt
├── post_install.bat
├── programmers.txt
└── variants
├── circuitplay32u4
└── pins_arduino.h
├── eightanaloginputs
└── pins_arduino.h
├── ethernet
└── pins_arduino.h
├── gemma
└── pins_arduino.h
├── leonardo
└── pins_arduino.h
├── mega
└── pins_arduino.h
├── micro
└── pins_arduino.h
├── robot_control
└── pins_arduino.h
├── robot_motor
└── pins_arduino.h
├── standard
└── pins_arduino.h
└── yun
└── pins_arduino.h
/.codespellrc:
--------------------------------------------------------------------------------
1 | # See: https://github.com/codespell-project/codespell#using-a-config-file
2 | [codespell]
3 | # In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here:
4 | ignore-words-list = clearin,clen,hart,pullrequest,shiftin,waitin
5 | builtin = clear
6 | check-filenames =
7 | check-hidden =
8 | skip = ./.git,./firmwares/arduinoISP,./firmwares/wifishield,./bootloaders
9 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # See: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#about-the-dependabotyml-file
2 | version: 2
3 |
4 | updates:
5 | # Configure check for outdated GitHub Actions actions in workflows.
6 | # See: https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot
7 | - package-ecosystem: github-actions
8 | directory: / # Check the repository's workflows under /.github/workflows/
9 | schedule:
10 | interval: daily
11 |
--------------------------------------------------------------------------------
/.github/workflows/check-arduino.yml:
--------------------------------------------------------------------------------
1 | name: Check Arduino
2 |
3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
4 | on:
5 | push:
6 | pull_request:
7 | schedule:
8 | # Run every Tuesday at 8 AM UTC to catch breakage caused by new rules added to Arduino Lint.
9 | - cron: "0 8 * * TUE"
10 | workflow_dispatch:
11 | repository_dispatch:
12 |
13 | jobs:
14 | lint:
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 | - name: Checkout repository
19 | uses: actions/checkout@v4
20 |
21 | - name: Arduino Lint
22 | uses: arduino/arduino-lint-action@v2
23 | with:
24 | compliance: specification
25 | # Always use this setting for official repositories. Remove for 3rd party projects.
26 | official: true
27 | project-type: platform
28 |
--------------------------------------------------------------------------------
/.github/workflows/report-size-deltas.yml:
--------------------------------------------------------------------------------
1 | name: Report Size Deltas
2 |
3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
4 | on:
5 | push:
6 | paths:
7 | - ".github/workflows/report-size-deltas.yml"
8 | schedule:
9 | # Run at the minimum interval allowed by GitHub Actions.
10 | # Note: GitHub Actions periodically has outages which result in workflow failures.
11 | # In this event, the workflows will start passing again once the service recovers.
12 | - cron: "*/5 * * * *"
13 | workflow_dispatch:
14 | repository_dispatch:
15 |
16 | jobs:
17 | report:
18 | runs-on: ubuntu-latest
19 | steps:
20 | - name: Comment size deltas reports to PRs
21 | uses: arduino/report-size-deltas@v1
22 | with:
23 | # Regex matching the names of the workflow artifacts created by the "Compile Examples" workflow
24 | sketches-reports-source: ^sketches-report-.+
25 |
--------------------------------------------------------------------------------
/.github/workflows/spell-check.yml:
--------------------------------------------------------------------------------
1 | name: Spell Check
2 |
3 | # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
4 | on:
5 | push:
6 | pull_request:
7 | schedule:
8 | # Run every Tuesday at 8 AM UTC to catch new misspelling detections resulting from dictionary updates.
9 | - cron: "0 8 * * TUE"
10 | workflow_dispatch:
11 | repository_dispatch:
12 |
13 | jobs:
14 | spellcheck:
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 | - name: Checkout repository
19 | uses: actions/checkout@v4
20 |
21 | - name: Spell check
22 | uses: codespell-project/actions-codespell@master
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Arduino AVR Boards
2 |
3 | [](https://github.com/arduino/ArduinoCore-avr/actions/workflows/check-arduino.yml)
4 | [](https://github.com/arduino/ArduinoCore-avr/actions/workflows/compile-platform-examples.yml)
5 | [](https://github.com/arduino/ArduinoCore-avr/actions/workflows/spell-check.yml)
6 |
7 | This repository contains the source code and configuration files of the Arduino AVR Boards
8 | [platform](https://arduino.github.io/arduino-cli/latest/platform-specification/).
9 |
--------------------------------------------------------------------------------
/bootloaders/atmega8/ATmegaBOOT.hex:
--------------------------------------------------------------------------------
1 | :101C000012C02CC02BC02AC029C028C027C026C0A3
2 | :101C100025C024C023C022C021C020C01FC01EC0B8
3 | :101C20001DC01CC01BC011241FBECFE5D4E0DEBF09
4 | :101C3000CDBF10E0A0E6B0E0E6EAFFE102C005900B
5 | :101C40000D92A236B107D9F711E0A2E6B0E001C0CB
6 | :101C50001D92AA36B107E1F72BD0A3C1D1CF5D9B6E
7 | :101C6000FECF8CB908955F9BFECF8CB108950F9382
8 | :101C70001F93082F10E002C0F6DF1F5F1017E0F37C
9 | :101C80001F910F9108951F93182FEDDF803231F4CB
10 | :101C900084E1E5DF812FE3DF80E1E1DF1F9108953B
11 | :101CA000E2DF803221F484E1DADF80E1D8DF0895D9
12 | :101CB0000F931F93CF93DF93000010BC83E389B988
13 | :101CC00088E18AB986E880BDBD9A1092680120E05B
14 | :101CD00030E240E050E007C088B3832788BBCA01E8
15 | :101CE0000197F1F72F5F2031B8F320936801BBDF34
16 | :101CF000803381F1813399F4B6DF8032C1F784E11A
17 | :101D0000AEDF81E4ACDF86E5AADF82E5A8DF80E212
18 | :101D1000A6DF89E4A4DF83E5A2DF80E523C1803468
19 | :101D200029F4A1DF8638B0F09EDF14C0813471F44D
20 | :101D30009ADF803811F482E01DC1813811F481E00E
21 | :101D400019C1823809F015C182E114C1823421F42D
22 | :101D500084E18DDFA5DFCBCF853411F485E0F9CFA9
23 | :101D60008035C1F38135B1F38235A1F3853539F47E
24 | :101D70007ADF8093640077DF80936500EBCF863550
25 | :101D800019F484E074DFF5C0843609F090C06BDF8D
26 | :101D90008093670168DF80936601809169018E7F7F
27 | :101DA0008093690160DF853429F480916901816045
28 | :101DB0008093690100E010E007C055DFF801EA599F
29 | :101DC000FF4F80830F5F1F4F8091660190916701E5
30 | :101DD0000817190790F347DF803209F088CF809108
31 | :101DE000690180FF1FC000E010E014C0F801EA594B
32 | :101DF000FF4F80916400909165006081C5D0809113
33 | :101E00006400909165000196909365008093640052
34 | :101E10000F5F1F4F809166019091670108171907A6
35 | :101E200028F343C0F894E199FECF1127E0916400B4
36 | :101E3000F0916500EE0FFF1FC6E6D0E080916601CD
37 | :101E40009091670180FF01C00196103051F422D0BB
38 | :101E500003E000935700E8951DD001E1009357007F
39 | :101E6000E8950990199016D001E000935700E89585
40 | :101E70001395103258F011270DD005E0009357004C
41 | :101E8000E89508D001E100935700E8953296029753
42 | :101E900039F0DBCF0091570001700130D9F308957C
43 | :101EA000103011F00296E7CF112484E15BC0843733
44 | :101EB00009F04BC0D8DE80936701D5DE80936601C0
45 | :101EC000D2DE90916901853421F49160909369018B
46 | :101ED0000DC09E7F90936901809164009091650090
47 | :101EE000880F991F9093650080936400BCDE803258
48 | :101EF00009F0FDCE84E1B3DE00E010E01EC0809169
49 | :101F0000690180FF06C0809164009091650034D023
50 | :101F100008C081FD07C0E0916400F0916500E49184
51 | :101F20008E2F9DDE809164009091650001969093C4
52 | :101F30006500809364000F5F1F4F80916601909150
53 | :101F4000670108171907D8F20EC0853779F48BDEC0
54 | :101F5000803209F0CCCE84E182DE8EE180DE83E93E
55 | :101F60007EDE87E07CDE80E17ADEC1CE863709F056
56 | :101F7000BECE80E088DEBBCEE199FECF9FBB8EBB9C
57 | :101F8000E09A99278DB30895262FE199FECF9FBB44
58 | :101F90008EBB2DBB0FB6F894E29AE19A0FBE019664
59 | :061FA0000895F894FFCF44
60 | :021FA6008000B9
61 | :0400000300001C00DD
62 | :00000001FF
63 |
--------------------------------------------------------------------------------
/bootloaders/atmega8/ATmegaBOOT.txt:
--------------------------------------------------------------------------------
1 | Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=i686-linux-gnu --host=i686-linux-gnu --target=avr
2 | Thread model: single
3 | gcc version 4.3.5 (GCC)
4 |
5 |
--------------------------------------------------------------------------------
/bootloaders/atmega8/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile for ATmegaBOOT
2 | # E.Lins, 2004-10-14
3 |
4 | # program name should not be changed...
5 | PROGRAM = ATmegaBOOT
6 |
7 | PRODUCT=atmega8
8 |
9 | # enter the parameters for the UISP isp tool
10 | ISPPARAMS = -dprog=stk500 -dserial=$(SERIAL) -dspeed=115200
11 |
12 |
13 | #DIRAVR = /usr/local/avr
14 | DIRAVRBIN = $(DIRAVR)/bin
15 | DIRAVRUTILS = $(DIRAVR)/utils/bin
16 | DIRINC = $(DIRAVR)/include
17 | DIRLIB = $(DIRAVR)/avr/lib
18 |
19 |
20 | MCU_TARGET = atmega8
21 | LDSECTION = --section-start=.text=0x1c00
22 | FUSE_L = 0xdf
23 | FUSE_H = 0xca
24 | ISPFUSES = $(DIRAVRBIN)/uisp -dpart=ATmega8 $(ISPPARAMS) --wr_fuse_l=$(FUSE_L) --wr_fuse_h=$(FUSE_H)
25 | ISPFLASH = $(DIRAVRBIN)/uisp -dpart=ATmega8 $(ISPPARAMS) --erase --upload if=$(PROGRAM).hex -v
26 |
27 |
28 | OBJ = $(PROGRAM).o
29 | OPTIMIZE = -Os -funsigned-char -funsigned-bitfields -fno-inline-small-functions
30 |
31 | DEFS = -DF_CPU=16000000 -DBAUD_RATE=19200
32 | LIBS =
33 |
34 | CC = $(DIRAVRBIN)/avr-gcc
35 |
36 |
37 | # Override is only needed by avr-lib build system.
38 |
39 | override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -D$(PRODUCT) $(DEFS) -I$(DIRINC)
40 | override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION)
41 |
42 | OBJCOPY = $(DIRAVRBIN)/avr-objcopy
43 | OBJDUMP = $(DIRAVRBIN)/avr-objdump
44 | SIZE = $(DIRAVRBIN)/avr-size
45 |
46 | all: $(PROGRAM).elf lst text asm size
47 |
48 | isp: $(PROGRAM).hex
49 | $(ISPFUSES)
50 | $(ISPFLASH)
51 |
52 | $(PROGRAM).elf: $(OBJ)
53 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
54 |
55 | clean:
56 | rm -rf *.s
57 | rm -rf *.o *.elf
58 | rm -rf *.lst *.map
59 |
60 | asm: $(PROGRAM).s
61 |
62 | %.s: %.c
63 | $(CC) -S $(CFLAGS) -g1 $^
64 |
65 | lst: $(PROGRAM).lst
66 |
67 | %.lst: %.elf
68 | $(OBJDUMP) -h -S $< > $@
69 |
70 | size: $(PROGRAM).hex
71 | $(SIZE) $^
72 |
73 | # Rules for building the .text rom images
74 |
75 | text: hex bin srec
76 |
77 | hex: $(PROGRAM).hex
78 | bin: $(PROGRAM).bin
79 | srec: $(PROGRAM).srec
80 |
81 | %.hex: %.elf
82 | $(OBJCOPY) -j .text -j .data -O ihex $< $@
83 |
84 | %.srec: %.elf
85 | $(OBJCOPY) -j .text -j .data -O srec $< $@
86 |
87 | %.bin: %.elf
88 | $(OBJCOPY) -j .text -j .data -O binary $< $@
89 |
--------------------------------------------------------------------------------
/bootloaders/caterina-Arduino_Robot/Caterina-Robot.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina-Arduino_Robot/Makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina-Arduino_Robot/Makefile
--------------------------------------------------------------------------------
/bootloaders/caterina-Arduino_Robot/README.md:
--------------------------------------------------------------------------------
1 | Building the bootloader for the Arduino Robot
2 | =============================================
3 |
4 | The Arduino Robot has two boards featuring the atmega32U4 processor from Atmel. Each one of them is identified as a different board at the USB level and has a different bootloader.
5 |
6 | The Arduino Robot Control board has the USB identifier 0x0038. This is the value configured by default in the Makefile.
7 |
8 | The Arduino Robot Motor board has the USB identifier 0x0039. If you want to compile/upload this version of the bootloader, you will have to edit the Makefile, comment away the like dedicated to the PID and uncomment the one that configures such variable accordingly.
9 |
10 | The general conditions for using these bootloaders require downloading a specific version of LUFA as explained here:
11 |
12 | 1. Download the LUFA-111009 file (http://fourwalledcubicle.com/blog/2011/10/lufa-111009-released/).
13 | 2. Extract that file directly to the Caterina-Arduino_Robot bootloader directory.
14 | 3. Open a command prompt in the Caterina-Arduino_Robot bootloader directory.
15 | 4. Type 'make'.
16 | 5. Enjoy!
17 |
18 | Programming the bootloader for one of the Arduino Robot boards
19 | 1. Open a command prompt in the Caterina-Arduino_Robot folder.
20 | 2. Connect your programmer- use a 2x3 .1" header, pressed against the programming vias.
21 | 3. Edit the make file for it to include the right programmer (e.g. in my lab I have AVRMKII and USBTINY ISP)
22 | 4. Type 'make program' into the command prompt.
23 |
24 | Differences between this bootoloader and the standard one for Leonardo boards
25 | =============================================================================
26 |
27 | This bootloader is different from the one on the standard Leonardo boards. To enter the bootloader, you need to double click the reset button. You need to click twice in less that 3/4 of a second (easy uh?). This bootloader, designed in the first place for the LilypadUSB, seems to be optimal for situations when users are e.g. using their robots in soccer competitions where they make direct manipulation of the board as it runs.
28 |
--------------------------------------------------------------------------------
/bootloaders/caterina-LilyPadUSB/Makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina-LilyPadUSB/Makefile
--------------------------------------------------------------------------------
/bootloaders/caterina-LilyPadUSB/Readme.txt:
--------------------------------------------------------------------------------
1 | Building the bootloader for the LilyPadUSB
2 | 1. Download the LUFA-111009 file (http://fourwalledcubicle.com/blog/2011/10/lufa-111009-released/).
3 | 2. Extract that file directly to the Caterina-LilyPadUSB bootloader directory.
4 | 3. Open a command prompt in the Caterina-LilyPadUSB bootloader directory.
5 | 4. Type 'make'.
6 | 5. Enjoy!
7 |
8 | Programming the bootloader for the LilyPadUSB
9 | 1. Open a command prompt in the Caterina-LilyPadUSB folder.
10 | 2. Connect your programmer- use a 2x3 .1" header, pressed against the programming vias.
11 | 3. Type 'make program' into the command prompt.
--------------------------------------------------------------------------------
/bootloaders/caterina/Caterina-Esplora.txt:
--------------------------------------------------------------------------------
1 | LUFA: 111009
2 | make: 3.81
3 | avrdude: 5.11.1
4 | avr-libc: 1.6.7
5 | binutils-avr: 2.19
6 | gcc-avr 4.3.3
7 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Caterina-Leonardo.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Caterina-Micro.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Esplora-prod-firmware-2012-12-10.txt:
--------------------------------------------------------------------------------
1 | LUFA: 111009
2 | make: 3.81
3 | avrdude: 5.11.1
4 | avr-libc: 1.6.7
5 | binutils-avr: 2.19
6 | gcc-avr 4.3.3
7 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Leonardo-prod-firmware-2012-04-26.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Leonardo-prod-firmware-2012-12-10.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/caterina/Makefile
--------------------------------------------------------------------------------
/bootloaders/caterina/Micro-prod-firmware-2012-11-23.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/caterina/Micro-prod-firmware-2012-12-10.txt:
--------------------------------------------------------------------------------
1 | Builds against LUFA version 111009
2 | make version 3.81
3 | avrdude version 5.11
4 |
5 | All AVR tools except avrdude were installed by CrossPack 20100115:
6 | avr-gcc version 4.3.3 (GCC)
7 | Thread model: single
8 | Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2
9 | avr-libc version 1.6.7
10 | binutils version 2.19
11 |
12 |
--------------------------------------------------------------------------------
/bootloaders/gemma/README.md:
--------------------------------------------------------------------------------
1 | Arduino Gemma Bootloader
2 | ========================
3 |
4 | The Arduino Gemma Bootloader is based on the Adafruit Trinket/Gemma Bootloader. In the Arduino Gemma bootloader the USB VID&PID, the Manufacturer name and the Device name parameters are changed.
5 |
6 | The source code of the bootloader of the version used at the compile time can be found at the following link: https://github.com/adafruit/Adafruit-Trinket-Gemma-Bootloader/tree/3bc1bb561273535d4d493518a233a3a1fccf6b76
7 |
8 | The *'usbconfig.h'* and the *'usbconfig.patch'* files are provided if you want to recompile the bootloader.
9 | You only need to replace the original *'usbconfig.h'* file with this one or patch it with the provided patch file.
10 |
11 | **Please note: you cannot use the Arduino USB VID/PID for your own non-Gemma products or projects. Purchase a USB VID for yourself at** http://www.usb.org/developers/vendor/
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/bootloaders/gemma/usbconfig.patch:
--------------------------------------------------------------------------------
1 | 203c203
2 | < #define USB_CFG_VENDOR_ID 0x81, 0x17 /* = 0x16c0 = 5824 = voti.nl */
3 | ---
4 | > #define USB_CFG_VENDOR_ID 0x41, 0x23 /* = 0x16c0 = 5824 = voti.nl */
5 | 208c208
6 | < #define USB_CFG_DEVICE_ID 0x9F, 0x0C /* = 0x05dc = 1500 */
7 | ---
8 | > #define USB_CFG_DEVICE_ID 0x9F, 0x0c /* = 0x05dc = 1500 */
9 | 215c215
10 | < #define USB_CFG_DEVICE_VERSION 0x05, 0x01
11 | ---
12 | > #define USB_CFG_DEVICE_VERSION 0x00, 0x01
13 | 218,219c218,219
14 | < #define USB_CFG_VENDOR_NAME 'A','d','a','f','r','u','i','t'
15 | < #define USB_CFG_VENDOR_NAME_LEN 8
16 | ---
17 | > #define USB_CFG_VENDOR_NAME 'A','r','d','u','i','n','o','.','c','c'
18 | > #define USB_CFG_VENDOR_NAME_LEN 10
19 | 228,229c228,229
20 | < #define USB_CFG_DEVICE_NAME 'T','r','i','n','k','e','t'
21 | < #define USB_CFG_DEVICE_NAME_LEN 7
22 | ---
23 | > #define USB_CFG_DEVICE_NAME 'G','e','m','m','a'
24 | > #define USB_CFG_DEVICE_NAME_LEN 5
25 |
--------------------------------------------------------------------------------
/bootloaders/lilypad/src/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile for ATmegaBOOT
2 | # E.Lins, 18.7.2005
3 |
4 | # Instructions
5 | #
6 | # To build the bootloader for the LilyPad:
7 | # make lily
8 |
9 |
10 | # program name should not be changed...
11 | PROGRAM = ATmegaBOOT_168
12 |
13 | # enter the target CPU frequency
14 | AVR_FREQ = 8000000L
15 |
16 | # enter the parameters for the avrdude isp tool
17 | ISPTOOL = stk500v2
18 | ISPPORT = usb
19 | ISPSPEED = -b 115200
20 |
21 | MCU_TARGET = atmega168
22 | LDSECTION = --section-start=.text=0x3800
23 |
24 | # the efuse should really be 0xf8; since, however, only the lower
25 | # three bits of that byte are used on the atmega168, avrdude gets
26 | # confused if you specify 1's for the higher bits, see:
27 | # http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/
28 | #
29 | # similarly, the lock bits should be 0xff instead of 0x3f (to
30 | # unlock the bootloader section) and 0xcf instead of 0x0f (to
31 | # lock it), but since the high two bits of the lock byte are
32 | # unused, avrdude would get confused.
33 | ISPFUSES = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xdd:m -U lfuse:w:0xff:m
34 | ISPFLASH = avrdude -c $(ISPTOOL) -p m168 -P $(ISPPORT) $(ISPSPEED) -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m
35 |
36 |
37 | OBJ = $(PROGRAM).o
38 | OPTIMIZE = -O2
39 |
40 | DEFS =
41 | LIBS =
42 |
43 | CC = avr-gcc
44 |
45 |
46 | # Override is only needed by avr-lib build system.
47 |
48 | override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS)
49 | override LDFLAGS = -Wl,$(LDSECTION)
50 | #override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION)
51 |
52 | OBJCOPY = avr-objcopy
53 | OBJDUMP = avr-objdump
54 |
55 | all:
56 |
57 | lily: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3'
58 | lily: $(PROGRAM).hex
59 |
60 | $(PROGRAM).hex: $(PROGRAM).elf
61 | $(OBJCOPY) -j .text -j .data -O ihex $< $@
62 |
63 | $(PROGRAM).elf: $(OBJ)
64 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
65 |
66 | $(OBJ):
67 | avr-gcc $(CFLAGS) $(LDFLAGS) -c -g -O2 -Wall -mmcu=atmega168 ATmegaBOOT.c -o ATmegaBOOT_168.o
68 |
69 | %.lst: %.elf
70 | $(OBJDUMP) -h -S $< > $@
71 |
72 | %.srec: %.elf
73 | $(OBJCOPY) -j .text -j .data -O srec $< $@
74 |
75 | %.bin: %.elf
76 | $(OBJCOPY) -j .text -j .data -O binary $< $@
77 |
78 | clean:
79 | rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex
80 |
81 | install:
82 | avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xdd:m -U lfuse:w:0xe2:m
83 | avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U flash:w:ATmegaBOOT_168.hex -U lock:w:0x0f:m
84 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/makeall:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | make clean
3 | #
4 | # The "big three" standard bootloaders.
5 | make atmega8
6 | make atmega168
7 | make atmega328
8 | #
9 | # additional buildable platforms of
10 | # somewhat questionable support level
11 | make lilypad
12 | make lilypad_resonator
13 | make pro8
14 | make pro16
15 | make pro20
16 | make atmega328_pro8
17 | make sanguino
18 | make mega
19 | make atmega88
20 | make luminet
21 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/omake:
--------------------------------------------------------------------------------
1 | echo ../../../tools/avr/bin/make OS=macosx ENV=arduino $*
2 | ../../../tools/avr/bin/make OS=macosx ENV=arduino $*
3 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/omake.bat:
--------------------------------------------------------------------------------
1 | ..\..\..\tools\avr\utils\bin\make OS=windows ENV=arduino %*
2 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/optiboot_atmega168.hex:
--------------------------------------------------------------------------------
1 | :103E0000112484B714BE81FFF0D085E08093810037
2 | :103E100082E08093C00088E18093C10086E08093B7
3 | :103E2000C20080E18093C4008EE0C9D0259A86E06C
4 | :103E300020E33CEF91E0309385002093840096BB13
5 | :103E4000B09BFECF1D9AA8958150A9F7CC24DD2404
6 | :103E500088248394B5E0AB2EA1E19A2EF3E0BF2E27
7 | :103E6000A2D0813461F49FD0082FAFD0023811F076
8 | :103E7000013811F484E001C083E08DD089C0823420
9 | :103E800011F484E103C0853419F485E0A6D080C024
10 | :103E9000853579F488D0E82EFF2485D0082F10E0EE
11 | :103EA000102F00270E291F29000F111F8ED0680127
12 | :103EB0006FC0863521F484E090D080E0DECF843678
13 | :103EC00009F040C070D06FD0082F6DD080E0C816C8
14 | :103ED00088E3D80618F4F601B7BEE895C0E0D1E053
15 | :103EE00062D089930C17E1F7F0E0CF16F8E3DF0614
16 | :103EF00018F0F601B7BEE89568D007B600FCFDCF14
17 | :103F0000A601A0E0B1E02C9130E011968C911197C0
18 | :103F100090E0982F8827822B932B1296FA010C01A0
19 | :103F200087BEE89511244E5F5F4FF1E0A038BF07D0
20 | :103F300051F7F601A7BEE89507B600FCFDCF97BE86
21 | :103F4000E89526C08437B1F42ED02DD0F82E2BD092
22 | :103F50003CD0F601EF2C8F010F5F1F4F84911BD0D7
23 | :103F6000EA94F801C1F70894C11CD11CFA94CF0C53
24 | :103F7000D11C0EC0853739F428D08EE10CD084E9ED
25 | :103F80000AD086E07ACF813511F488E018D01DD0B0
26 | :103F900080E101D065CF982F8091C00085FFFCCFD4
27 | :103FA0009093C60008958091C00087FFFCCF809158
28 | :103FB000C00084FD01C0A8958091C6000895E0E688
29 | :103FC000F0E098E1908380830895EDDF803219F06E
30 | :103FD00088E0F5DFFFCF84E1DECF1F93182FE3DF0A
31 | :103FE0001150E9F7F2DF1F91089580E0E8DFEE2736
32 | :043FF000FF2709940A
33 | :023FFE000404B9
34 | :0400000300003E00BB
35 | :00000001FF
36 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/optiboot_atmega328-Mini.hex:
--------------------------------------------------------------------------------
1 | :107E000085E08093810082E08093C00088E18093C8
2 | :107E1000C10086E08093C20080E18093C40084B7F3
3 | :107E200014BE81FFD0D089E2C8D0259A86E020E335
4 | :107E30003CEF91E0309385002093840096BBB09B8B
5 | :107E4000FECF1D9AA8958150A9F7DD24D394A5E013
6 | :107E5000EA2EF1E1FF2EA4D0813421F481E0BED0DE
7 | :107E600083E024C0823411F484E103C0853419F422
8 | :107E700085E0B4D08AC08535A1F492D0082F10E0F7
9 | :107E800010930102009300028BD090E0982F882776
10 | :107E9000802B912B880F991F9093010280930002F1
11 | :107EA00073C0863529F484E099D080E071D06DC02C
12 | :107EB000843609F043C07CD0E0910002F0910102C9
13 | :107EC00083E080935700E895C0E0D1E069D08993C2
14 | :107ED000809102028150809302028823B9F778D002
15 | :107EE00007B600FCFDCF4091000250910102A0E0D6
16 | :107EF000B1E02C9130E011968C91119790E0982F81
17 | :107F00008827822B932B1296FA010C01D0925700EE
18 | :107F1000E89511244E5F5F4FF1E0A038BF0749F7A5
19 | :107F2000E0910002F0910102E0925700E89507B657
20 | :107F300000FCFDCFF0925700E89527C08437B9F4D4
21 | :107F400037D046D0E0910002F09101023196F093D3
22 | :107F50000102E09300023197E4918E2F19D08091B5
23 | :107F60000202815080930202882361F70EC0853798
24 | :107F700039F42ED08EE10CD085E90AD08FE096CF6F
25 | :107F8000813511F488E019D023D080E101D063CF8E
26 | :107F9000982F8091C00085FFFCCF9093C600089574
27 | :107FA000A8958091C00087FFFCCF8091C6000895FE
28 | :107FB000F7DFF6DF80930202F3CFE0E6F0E098E12E
29 | :107FC00090838083089580E0F8DFEE27FF270994EF
30 | :107FD000E7DF803209F0F7DF84E1DACF1F93182F53
31 | :0C7FE000DFDF1150E9F7F4DF1F91089576
32 | :0400000300007E007B
33 | :00000001FF
34 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/optiboot_atmega328.hex:
--------------------------------------------------------------------------------
1 | :107E0000112484B714BE81FFF0D085E080938100F7
2 | :107E100082E08093C00088E18093C10086E0809377
3 | :107E2000C20080E18093C4008EE0C9D0259A86E02C
4 | :107E300020E33CEF91E0309385002093840096BBD3
5 | :107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
6 | :107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
7 | :107E6000A2D0813461F49FD0082FAFD0023811F036
8 | :107E7000013811F484E001C083E08DD089C08234E0
9 | :107E800011F484E103C0853419F485E0A6D080C0E4
10 | :107E9000853579F488D0E82EFF2485D0082F10E0AE
11 | :107EA000102F00270E291F29000F111F8ED06801E7
12 | :107EB0006FC0863521F484E090D080E0DECF843638
13 | :107EC00009F040C070D06FD0082F6DD080E0C81688
14 | :107ED00080E7D80618F4F601B7BEE895C0E0D1E017
15 | :107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
16 | :107EF00018F0F601B7BEE89568D007B600FCFDCFD4
17 | :107F0000A601A0E0B1E02C9130E011968C91119780
18 | :107F100090E0982F8827822B932B1296FA010C0160
19 | :107F200087BEE89511244E5F5F4FF1E0A038BF0790
20 | :107F300051F7F601A7BEE89507B600FCFDCF97BE46
21 | :107F4000E89526C08437B1F42ED02DD0F82E2BD052
22 | :107F50003CD0F601EF2C8F010F5F1F4F84911BD097
23 | :107F6000EA94F801C1F70894C11CD11CFA94CF0C13
24 | :107F7000D11C0EC0853739F428D08EE10CD085E9AC
25 | :107F80000AD08FE07ACF813511F488E018D01DD067
26 | :107F900080E101D065CF982F8091C00085FFFCCF94
27 | :107FA0009093C60008958091C00087FFFCCF809118
28 | :107FB000C00084FD01C0A8958091C6000895E0E648
29 | :107FC000F0E098E1908380830895EDDF803219F02E
30 | :107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
31 | :107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
32 | :047FF000FF270994CA
33 | :027FFE00040479
34 | :0400000300007E007B
35 | :00000001FF
36 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/optiboot_atmega8.hex:
--------------------------------------------------------------------------------
1 | :101E000011248FE594E09EBF8DBF84B714BE81FF7F
2 | :101E1000E2D085E08EBD82E08BB988E18AB986E8A0
3 | :101E200080BD80E189B98EE0C2D0BD9A96E020E302
4 | :101E30003CEF54E040E23DBD2CBD58BF08B602FE69
5 | :101E4000FDCF88B3842788BBA8959150A1F7CC24F7
6 | :101E5000DD2488248394B5E0AB2EA1E19A2EF3E033
7 | :101E6000BF2E9ED0813461F49BD0082FA4D00238BD
8 | :101E700011F0013811F484E001C083E08DD089C0F5
9 | :101E8000823411F484E103C0853419F485E09BD0D9
10 | :101E900080C0853579F484D0E82EFF2481D0082FC6
11 | :101EA00010E0102F00270E291F29000F111F83D0CB
12 | :101EB00068016FC0863521F484E085D080E0DECFF4
13 | :101EC000843609F040C06CD06BD0082F69D080E018
14 | :101ED000C81688E1D80618F4F601B7BEE895C0E048
15 | :101EE000D1E05ED089930C17E1F7F0E0CF16F8E16E
16 | :101EF000DF0618F0F601B7BEE8955DD007B600FC26
17 | :101F0000FDCFA601A0E0B1E02C9130E011968C91BC
18 | :101F1000119790E0982F8827822B932B1296FA0125
19 | :101F20000C0187BEE89511244E5F5F4FF1E0A034AD
20 | :101F3000BF0751F7F601A7BEE89507B600FCFDCF35
21 | :101F400097BEE89526C08437B1F42AD029D0F82E60
22 | :101F500027D031D0F601EF2C8F010F5F1F4F8491F6
23 | :101F60001BD0EA94F801C1F70894C11CD11CFA9463
24 | :101F7000CF0CD11C0EC0853739F41DD08EE10CD0AA
25 | :101F800083E90AD087E07ACF813511F488E00FD059
26 | :101F900012D080E101D065CF5D9BFECF8CB9089552
27 | :101FA0005F9BFECF5C9901C0A8958CB1089598E124
28 | :101FB00091BD81BD0895F4DF803219F088E0F7DF2C
29 | :101FC000FFCF84E1E9CF1F93182FEADF1150E9F723
30 | :101FD000F2DF1F91089580E0EADFEE27FF270994E2
31 | :021FFE000404D9
32 | :0400000300001E00DB
33 | :00000001FF
34 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/pin_defs.h:
--------------------------------------------------------------------------------
1 | #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__)
2 | /* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duemilanove */
3 | #define LED_DDR DDRB
4 | #define LED_PORT PORTB
5 | #define LED_PIN PINB
6 | #define LED PINB5
7 |
8 | /* Ports for soft UART */
9 | #ifdef SOFT_UART
10 | #define UART_PORT PORTD
11 | #define UART_PIN PIND
12 | #define UART_DDR DDRD
13 | #define UART_TX_BIT 1
14 | #define UART_RX_BIT 0
15 | #endif
16 | #endif
17 |
18 | #if defined(__AVR_ATmega8__)
19 | //Name conversion R.Wiersma
20 | #define UCSR0A UCSRA
21 | #define UDR0 UDR
22 | #define UDRE0 UDRE
23 | #define RXC0 RXC
24 | #define FE0 FE
25 | #define TIFR1 TIFR
26 | #define WDTCSR WDTCR
27 | #endif
28 |
29 | /* Luminet support */
30 | #if defined(__AVR_ATtiny84__)
31 | /* Red LED is connected to pin PA4 */
32 | #define LED_DDR DDRA
33 | #define LED_PORT PORTA
34 | #define LED_PIN PINA
35 | #define LED PINA4
36 | /* Ports for soft UART - left port only for now. TX/RX on PA2/PA3 */
37 | #ifdef SOFT_UART
38 | #define UART_PORT PORTA
39 | #define UART_PIN PINA
40 | #define UART_DDR DDRA
41 | #define UART_TX_BIT 2
42 | #define UART_RX_BIT 3
43 | #endif
44 | #endif
45 |
46 | /* Sanguino support */
47 | #if defined(__AVR_ATmega644P__)
48 | /* Onboard LED is connected to pin PB0 on Sanguino */
49 | #define LED_DDR DDRB
50 | #define LED_PORT PORTB
51 | #define LED_PIN PINB
52 | #define LED PINB0
53 |
54 | /* Ports for soft UART */
55 | #ifdef SOFT_UART
56 | #define UART_PORT PORTD
57 | #define UART_PIN PIND
58 | #define UART_DDR DDRD
59 | #define UART_TX_BIT 1
60 | #define UART_RX_BIT 0
61 | #endif
62 | #endif
63 |
64 | /* Mega support */
65 | #if defined(__AVR_ATmega1280__)
66 | /* Onboard LED is connected to pin PB7 on Arduino Mega */
67 | #define LED_DDR DDRB
68 | #define LED_PORT PORTB
69 | #define LED_PIN PINB
70 | #define LED PINB7
71 |
72 | /* Ports for soft UART */
73 | #ifdef SOFT_UART
74 | #define UART_PORT PORTE
75 | #define UART_PIN PINE
76 | #define UART_DDR DDRE
77 | #define UART_TX_BIT 1
78 | #define UART_RX_BIT 0
79 | #endif
80 | #endif
81 |
--------------------------------------------------------------------------------
/bootloaders/optiboot/stk500.h:
--------------------------------------------------------------------------------
1 | /* STK500 constants list, from AVRDUDE */
2 | #define STK_OK 0x10
3 | #define STK_FAILED 0x11 // Not used
4 | #define STK_UNKNOWN 0x12 // Not used
5 | #define STK_NODEVICE 0x13 // Not used
6 | #define STK_INSYNC 0x14 // ' '
7 | #define STK_NOSYNC 0x15 // Not used
8 | #define ADC_CHANNEL_ERROR 0x16 // Not used
9 | #define ADC_MEASURE_OK 0x17 // Not used
10 | #define PWM_CHANNEL_ERROR 0x18 // Not used
11 | #define PWM_ADJUST_OK 0x19 // Not used
12 | #define CRC_EOP 0x20 // 'SPACE'
13 | #define STK_GET_SYNC 0x30 // '0'
14 | #define STK_GET_SIGN_ON 0x31 // '1'
15 | #define STK_SET_PARAMETER 0x40 // '@'
16 | #define STK_GET_PARAMETER 0x41 // 'A'
17 | #define STK_SET_DEVICE 0x42 // 'B'
18 | #define STK_SET_DEVICE_EXT 0x45 // 'E'
19 | #define STK_ENTER_PROGMODE 0x50 // 'P'
20 | #define STK_LEAVE_PROGMODE 0x51 // 'Q'
21 | #define STK_CHIP_ERASE 0x52 // 'R'
22 | #define STK_CHECK_AUTOINC 0x53 // 'S'
23 | #define STK_LOAD_ADDRESS 0x55 // 'U'
24 | #define STK_UNIVERSAL 0x56 // 'V'
25 | #define STK_PROG_FLASH 0x60 // '`'
26 | #define STK_PROG_DATA 0x61 // 'a'
27 | #define STK_PROG_FUSE 0x62 // 'b'
28 | #define STK_PROG_LOCK 0x63 // 'c'
29 | #define STK_PROG_PAGE 0x64 // 'd'
30 | #define STK_PROG_FUSE_EXT 0x65 // 'e'
31 | #define STK_READ_FLASH 0x70 // 'p'
32 | #define STK_READ_DATA 0x71 // 'q'
33 | #define STK_READ_FUSE 0x72 // 'r'
34 | #define STK_READ_LOCK 0x73 // 's'
35 | #define STK_READ_PAGE 0x74 // 't'
36 | #define STK_READ_SIGN 0x75 // 'u'
37 | #define STK_READ_OSCCAL 0x76 // 'v'
38 | #define STK_READ_FUSE_EXT 0x77 // 'w'
39 | #define STK_READ_OSCCAL_EXT 0x78 // 'x'
40 |
--------------------------------------------------------------------------------
/bootloaders/stk500v2/Makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/bootloaders/stk500v2/Makefile
--------------------------------------------------------------------------------
/bootloaders/stk500v2/STK500V2.pnproj:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bootloaders/stk500v2/STK500V2.pnps:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bootloaders/stk500v2/stk500boot.ppg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cores/arduino/Client.h:
--------------------------------------------------------------------------------
1 | /*
2 | Client.h - Base class that provides Client
3 | Copyright (c) 2011 Adrian McEwen. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | #ifndef client_h
21 | #define client_h
22 | #include "Print.h"
23 | #include "Stream.h"
24 | #include "IPAddress.h"
25 |
26 | class Client : public Stream {
27 |
28 | public:
29 | virtual int connect(IPAddress ip, uint16_t port) =0;
30 | virtual int connect(const char *host, uint16_t port) =0;
31 | virtual size_t write(uint8_t) =0;
32 | virtual size_t write(const uint8_t *buf, size_t size) =0;
33 | virtual int available() = 0;
34 | virtual int read() = 0;
35 | virtual int read(uint8_t *buf, size_t size) = 0;
36 | virtual int peek() = 0;
37 | virtual void flush() = 0;
38 | virtual void stop() = 0;
39 | virtual uint8_t connected() = 0;
40 | virtual operator bool() = 0;
41 | protected:
42 | uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
43 | };
44 |
45 | #endif
46 |
--------------------------------------------------------------------------------
/cores/arduino/HardwareSerial0.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | HardwareSerial0.cpp - Hardware serial library for Wiring
3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 |
19 | Modified 23 November 2006 by David A. Mellis
20 | Modified 28 September 2010 by Mark Sproul
21 | Modified 14 August 2012 by Alarus
22 | Modified 3 December 2013 by Matthijs Kooijman
23 | */
24 |
25 | #include "Arduino.h"
26 | #include "HardwareSerial.h"
27 | #include "HardwareSerial_private.h"
28 |
29 | // Each HardwareSerial is defined in its own file, since the linker pulls
30 | // in the entire file when any element inside is used. --gc-sections can
31 | // additionally cause unused symbols to be dropped, but ISRs have the
32 | // "used" attribute so are never dropped and they keep the
33 | // HardwareSerial instance in as well. Putting each instance in its own
34 | // file prevents the linker from pulling in any unused instances in the
35 | // first place.
36 |
37 | #if defined(HAVE_HWSERIAL0)
38 |
39 | #if defined(USART_RX_vect)
40 | ISR(USART_RX_vect)
41 | #elif defined(USART0_RX_vect)
42 | ISR(USART0_RX_vect)
43 | #elif defined(USART_RXC_vect)
44 | ISR(USART_RXC_vect) // ATmega8
45 | #else
46 | #error "Don't know what the Data Received vector is called for Serial"
47 | #endif
48 | {
49 | Serial._rx_complete_irq();
50 | }
51 |
52 | #if defined(UART0_UDRE_vect)
53 | ISR(UART0_UDRE_vect)
54 | #elif defined(UART_UDRE_vect)
55 | ISR(UART_UDRE_vect)
56 | #elif defined(USART0_UDRE_vect)
57 | ISR(USART0_UDRE_vect)
58 | #elif defined(USART_UDRE_vect)
59 | ISR(USART_UDRE_vect)
60 | #else
61 | #error "Don't know what the Data Register Empty vector is called for Serial"
62 | #endif
63 | {
64 | Serial._tx_udr_empty_irq();
65 | }
66 |
67 | #if defined(UBRRH) && defined(UBRRL)
68 | HardwareSerial Serial(&UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR);
69 | #else
70 | HardwareSerial Serial(&UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0);
71 | #endif
72 |
73 | // Function that can be weakly referenced by serialEventRun to prevent
74 | // pulling in this file if it's not otherwise used.
75 | bool Serial0_available() {
76 | return Serial.available();
77 | }
78 |
79 | #endif // HAVE_HWSERIAL0
80 |
--------------------------------------------------------------------------------
/cores/arduino/HardwareSerial1.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | HardwareSerial1.cpp - Hardware serial library for Wiring
3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 |
19 | Modified 23 November 2006 by David A. Mellis
20 | Modified 28 September 2010 by Mark Sproul
21 | Modified 14 August 2012 by Alarus
22 | Modified 3 December 2013 by Matthijs Kooijman
23 | */
24 |
25 | #include "Arduino.h"
26 | #include "HardwareSerial.h"
27 | #include "HardwareSerial_private.h"
28 |
29 | // Each HardwareSerial is defined in its own file, since the linker pulls
30 | // in the entire file when any element inside is used. --gc-sections can
31 | // additionally cause unused symbols to be dropped, but ISRs have the
32 | // "used" attribute so are never dropped and they keep the
33 | // HardwareSerial instance in as well. Putting each instance in its own
34 | // file prevents the linker from pulling in any unused instances in the
35 | // first place.
36 |
37 | #if defined(HAVE_HWSERIAL1)
38 |
39 | #if defined(UART1_RX_vect)
40 | ISR(UART1_RX_vect)
41 | #elif defined(USART1_RX_vect)
42 | ISR(USART1_RX_vect)
43 | #else
44 | #error "Don't know what the Data Register Empty vector is called for Serial1"
45 | #endif
46 | {
47 | Serial1._rx_complete_irq();
48 | }
49 |
50 | #if defined(UART1_UDRE_vect)
51 | ISR(UART1_UDRE_vect)
52 | #elif defined(USART1_UDRE_vect)
53 | ISR(USART1_UDRE_vect)
54 | #else
55 | #error "Don't know what the Data Register Empty vector is called for Serial1"
56 | #endif
57 | {
58 | Serial1._tx_udr_empty_irq();
59 | }
60 |
61 | HardwareSerial Serial1(&UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1);
62 |
63 | // Function that can be weakly referenced by serialEventRun to prevent
64 | // pulling in this file if it's not otherwise used.
65 | bool Serial1_available() {
66 | return Serial1.available();
67 | }
68 |
69 | #endif // HAVE_HWSERIAL1
70 |
--------------------------------------------------------------------------------
/cores/arduino/HardwareSerial2.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | HardwareSerial2.cpp - Hardware serial library for Wiring
3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 |
19 | Modified 23 November 2006 by David A. Mellis
20 | Modified 28 September 2010 by Mark Sproul
21 | Modified 14 August 2012 by Alarus
22 | Modified 3 December 2013 by Matthijs Kooijman
23 | */
24 |
25 | #include "Arduino.h"
26 | #include "HardwareSerial.h"
27 | #include "HardwareSerial_private.h"
28 |
29 | // Each HardwareSerial is defined in its own file, since the linker pulls
30 | // in the entire file when any element inside is used. --gc-sections can
31 | // additionally cause unused symbols to be dropped, but ISRs have the
32 | // "used" attribute so are never dropped and they keep the
33 | // HardwareSerial instance in as well. Putting each instance in its own
34 | // file prevents the linker from pulling in any unused instances in the
35 | // first place.
36 |
37 | #if defined(HAVE_HWSERIAL2)
38 |
39 | ISR(USART2_RX_vect)
40 | {
41 | Serial2._rx_complete_irq();
42 | }
43 |
44 | ISR(USART2_UDRE_vect)
45 | {
46 | Serial2._tx_udr_empty_irq();
47 | }
48 |
49 | HardwareSerial Serial2(&UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2);
50 |
51 | // Function that can be weakly referenced by serialEventRun to prevent
52 | // pulling in this file if it's not otherwise used.
53 | bool Serial2_available() {
54 | return Serial2.available();
55 | }
56 |
57 | #endif // HAVE_HWSERIAL2
58 |
--------------------------------------------------------------------------------
/cores/arduino/HardwareSerial3.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | HardwareSerial3.cpp - Hardware serial library for Wiring
3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 |
19 | Modified 23 November 2006 by David A. Mellis
20 | Modified 28 September 2010 by Mark Sproul
21 | Modified 14 August 2012 by Alarus
22 | Modified 3 December 2013 by Matthijs Kooijman
23 | */
24 |
25 | #include "Arduino.h"
26 | #include "HardwareSerial.h"
27 | #include "HardwareSerial_private.h"
28 |
29 | // Each HardwareSerial is defined in its own file, since the linker pulls
30 | // in the entire file when any element inside is used. --gc-sections can
31 | // additionally cause unused symbols to be dropped, but ISRs have the
32 | // "used" attribute so are never dropped and they keep the
33 | // HardwareSerial instance in as well. Putting each instance in its own
34 | // file prevents the linker from pulling in any unused instances in the
35 | // first place.
36 |
37 | #if defined(HAVE_HWSERIAL3)
38 |
39 | ISR(USART3_RX_vect)
40 | {
41 | Serial3._rx_complete_irq();
42 | }
43 |
44 | ISR(USART3_UDRE_vect)
45 | {
46 | Serial3._tx_udr_empty_irq();
47 | }
48 |
49 | HardwareSerial Serial3(&UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3);
50 |
51 | // Function that can be weakly referenced by serialEventRun to prevent
52 | // pulling in this file if it's not otherwise used.
53 | bool Serial3_available() {
54 | return Serial3.available();
55 | }
56 |
57 | #endif // HAVE_HWSERIAL3
58 |
--------------------------------------------------------------------------------
/cores/arduino/PluggableUSB.h:
--------------------------------------------------------------------------------
1 | /*
2 | PluggableUSB.h
3 | Copyright (c) 2015 Arduino LLC
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | #ifndef PUSB_h
21 | #define PUSB_h
22 |
23 | #include "USBAPI.h"
24 | #include
25 |
26 | #if defined(USBCON)
27 |
28 | class PluggableUSBModule {
29 | public:
30 | PluggableUSBModule(uint8_t numEps, uint8_t numIfs, uint8_t *epType) :
31 | numEndpoints(numEps), numInterfaces(numIfs), endpointType(epType)
32 | { }
33 |
34 | protected:
35 | virtual bool setup(USBSetup& setup) = 0;
36 | virtual int getInterface(uint8_t* interfaceCount) = 0;
37 | virtual int getDescriptor(USBSetup& setup) = 0;
38 | virtual uint8_t getShortName(char *name) { name[0] = 'A'+pluggedInterface; return 1; }
39 |
40 | uint8_t pluggedInterface;
41 | uint8_t pluggedEndpoint;
42 |
43 | const uint8_t numEndpoints;
44 | const uint8_t numInterfaces;
45 | const uint8_t *endpointType;
46 |
47 | PluggableUSBModule *next = NULL;
48 |
49 | friend class PluggableUSB_;
50 | };
51 |
52 | class PluggableUSB_ {
53 | public:
54 | PluggableUSB_();
55 | bool plug(PluggableUSBModule *node);
56 | int getInterface(uint8_t* interfaceCount);
57 | int getDescriptor(USBSetup& setup);
58 | bool setup(USBSetup& setup);
59 | void getShortName(char *iSerialNum);
60 |
61 | private:
62 | uint8_t lastIf;
63 | uint8_t lastEp;
64 | PluggableUSBModule* rootNode;
65 | };
66 |
67 | // Replacement for global singleton.
68 | // This function prevents static-initialization-order-fiasco
69 | // https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
70 | PluggableUSB_& PluggableUSB();
71 |
72 | #endif
73 |
74 | #endif
75 |
--------------------------------------------------------------------------------
/cores/arduino/Printable.h:
--------------------------------------------------------------------------------
1 | /*
2 | Printable.h - Interface class that allows printing of complex types
3 | Copyright (c) 2011 Adrian McEwen. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | #ifndef Printable_h
21 | #define Printable_h
22 |
23 | #include
24 |
25 | class Print;
26 |
27 | /** The Printable class provides a way for new classes to allow themselves to be printed.
28 | By deriving from Printable and implementing the printTo method, it will then be possible
29 | for users to print out instances of this class by passing them into the usual
30 | Print::print and Print::println methods.
31 | */
32 |
33 | class Printable
34 | {
35 | public:
36 | virtual size_t printTo(Print& p) const = 0;
37 | };
38 |
39 | #endif
40 |
41 |
--------------------------------------------------------------------------------
/cores/arduino/Server.h:
--------------------------------------------------------------------------------
1 | /*
2 | Server.h - Base class that provides Server
3 | Copyright (c) 2011 Adrian McEwen. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | #ifndef server_h
21 | #define server_h
22 |
23 | #include "Print.h"
24 |
25 | class Server : public Print {
26 | public:
27 | virtual void begin() =0;
28 | };
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/cores/arduino/USBDesc.h:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2011, Peter Barrett
3 | Copyright (c) 2015, Arduino LLC
4 |
5 | Permission to use, copy, modify, and/or distribute this software for
6 | any purpose with or without fee is hereby granted, provided that the
7 | above copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 | WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
12 | BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
13 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
14 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
15 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
16 | SOFTWARE.
17 | */
18 |
19 | #define PLUGGABLE_USB_ENABLED
20 |
21 | #if defined(EPRST6)
22 | #define USB_ENDPOINTS 7 // AtMegaxxU4
23 | #else
24 | #define USB_ENDPOINTS 5 // AtMegaxxU2
25 | #endif
26 |
27 | #define ISERIAL_MAX_LEN 20
28 |
29 | // Uncomment the following line or pass -DCDC_DISABLED to the compiler
30 | // to disable CDC (serial console via USB).
31 | // That's useful if you want to create an USB device (like an USB Boot Keyboard)
32 | // that works even with problematic devices (like KVM switches).
33 | // Keep in mind that with this change you'll have to use the Arduino's
34 | // reset button to be able to flash it.
35 | //#define CDC_DISABLED
36 |
37 | #ifndef CDC_DISABLED
38 | #define CDC_ENABLED
39 | #endif
40 |
41 | #ifdef CDC_ENABLED
42 | #define CDC_INTERFACE_COUNT 2
43 | #define CDC_ENPOINT_COUNT 3
44 | #else // CDC_DISABLED
45 | #define CDC_INTERFACE_COUNT 0
46 | #define CDC_ENPOINT_COUNT 0
47 | #endif
48 |
49 | #define CDC_ACM_INTERFACE 0 // CDC ACM
50 | #define CDC_DATA_INTERFACE 1 // CDC Data
51 | #define CDC_FIRST_ENDPOINT 1
52 | #define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First
53 | #define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1)
54 | #define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2)
55 |
56 | #define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT)
57 |
58 | #define CDC_RX CDC_ENDPOINT_OUT
59 | #define CDC_TX CDC_ENDPOINT_IN
60 |
61 | #define IMANUFACTURER 1
62 | #define IPRODUCT 2
63 | #define ISERIAL 3
--------------------------------------------------------------------------------
/cores/arduino/WMath.cpp:
--------------------------------------------------------------------------------
1 | /* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2 |
3 | /*
4 | Part of the Wiring project - http://wiring.org.co
5 | Copyright (c) 2004-06 Hernando Barragan
6 | Modified 13 August 2006, David A. Mellis for Arduino - http://www.arduino.cc/
7 |
8 | This library is free software; you can redistribute it and/or
9 | modify it under the terms of the GNU Lesser General Public
10 | License as published by the Free Software Foundation; either
11 | version 2.1 of the License, or (at your option) any later version.
12 |
13 | This library is distributed in the hope that it will be useful,
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 | Lesser General Public License for more details.
17 |
18 | You should have received a copy of the GNU Lesser General
19 | Public License along with this library; if not, write to the
20 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
21 | Boston, MA 02111-1307 USA
22 | */
23 |
24 | extern "C" {
25 | #include "stdlib.h"
26 | }
27 |
28 | void randomSeed(unsigned long seed)
29 | {
30 | if (seed != 0) {
31 | srandom(seed);
32 | }
33 | }
34 |
35 | long random(long howbig)
36 | {
37 | if (howbig == 0) {
38 | return 0;
39 | }
40 | return random() % howbig;
41 | }
42 |
43 | long random(long howsmall, long howbig)
44 | {
45 | if (howsmall >= howbig) {
46 | return howsmall;
47 | }
48 | long diff = howbig - howsmall;
49 | return random(diff) + howsmall;
50 | }
51 |
52 | long map(long x, long in_min, long in_max, long out_min, long out_max)
53 | {
54 | return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
55 | }
56 |
57 | unsigned int makeWord(unsigned int w) { return w; }
58 | unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; }
59 |
--------------------------------------------------------------------------------
/cores/arduino/abi.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2014 Arduino. All right reserved.
3 |
4 | This library is free software; you can redistribute it and/or
5 | modify it under the terms of the GNU Lesser General Public
6 | License as published by the Free Software Foundation; either
7 | version 2.1 of the License, or (at your option) any later version.
8 |
9 | This library is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 | See the GNU Lesser General Public License for more details.
13 |
14 | You should have received a copy of the GNU Lesser General Public
15 | License along with this library; if not, write to the Free Software
16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #include
20 |
21 | extern "C" void __cxa_pure_virtual(void) __attribute__ ((__noreturn__));
22 | extern "C" void __cxa_deleted_virtual(void) __attribute__ ((__noreturn__));
23 |
24 | namespace std {
25 | [[gnu::weak, noreturn]] void terminate() {
26 | abort();
27 | }
28 | }
29 |
30 | void __cxa_pure_virtual(void) {
31 | std::terminate();
32 | }
33 |
34 | void __cxa_deleted_virtual(void) {
35 | std::terminate();
36 | }
37 |
--------------------------------------------------------------------------------
/cores/arduino/hooks.c:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2012 Arduino. All right reserved.
3 |
4 | This library is free software; you can redistribute it and/or
5 | modify it under the terms of the GNU Lesser General Public
6 | License as published by the Free Software Foundation; either
7 | version 2.1 of the License, or (at your option) any later version.
8 |
9 | This library is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 | See the GNU Lesser General Public License for more details.
13 |
14 | You should have received a copy of the GNU Lesser General Public
15 | License along with this library; if not, write to the Free Software
16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | /**
20 | * Empty yield() hook.
21 | *
22 | * This function is intended to be used by library writers to build
23 | * libraries or sketches that supports cooperative threads.
24 | *
25 | * Its defined as a weak symbol and it can be redefined to implement a
26 | * real cooperative scheduler.
27 | */
28 | static void __empty() {
29 | // Empty
30 | }
31 | void yield(void) __attribute__ ((weak, alias("__empty")));
32 |
--------------------------------------------------------------------------------
/cores/arduino/main.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | main.cpp - Main loop for Arduino sketches
3 | Copyright (c) 2005-2013 Arduino Team. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | #include
21 |
22 | // Declared weak in Arduino.h to allow user redefinitions.
23 | int atexit(void (* /*func*/ )()) { return 0; }
24 |
25 | // Weak empty variant initialization function.
26 | // May be redefined by variant files.
27 | void initVariant() __attribute__((weak));
28 | void initVariant() { }
29 |
30 | void setupUSB() __attribute__((weak));
31 | void setupUSB() { }
32 |
33 | int main(void)
34 | {
35 | init();
36 |
37 | initVariant();
38 |
39 | #if defined(USBCON)
40 | USBDevice.attach();
41 | #endif
42 |
43 | setup();
44 |
45 | for (;;) {
46 | loop();
47 | if (serialEventRun) serialEventRun();
48 | }
49 |
50 | return 0;
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/cores/arduino/new:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2014 Arduino. All right reserved.
3 |
4 | This library is free software; you can redistribute it and/or
5 | modify it under the terms of the GNU Lesser General Public
6 | License as published by the Free Software Foundation; either
7 | version 2.1 of the License, or (at your option) any later version.
8 |
9 | This library is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 | See the GNU Lesser General Public License for more details.
13 |
14 | You should have received a copy of the GNU Lesser General Public
15 | License along with this library; if not, write to the Free Software
16 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 | */
18 |
19 | #ifndef NEW_H
20 | #define NEW_H
21 |
22 | #include
23 |
24 | namespace std {
25 | struct nothrow_t {};
26 | extern const nothrow_t nothrow;
27 |
28 | // These are not actually implemented, to prevent overhead and
29 | // complexity. They are still declared to allow implementing
30 | // them in user code if needed.
31 | typedef void (*new_handler)();
32 | new_handler set_new_handler(new_handler new_p) noexcept;
33 | new_handler get_new_handler() noexcept;
34 |
35 | // This is normally declared in various headers that we do not have
36 | // available, so just define it here. We could also use ::size_t
37 | // below, but then anyone including can no longer assume
38 | // std::size_t is available.
39 | using size_t = ::size_t;
40 | } // namespace std
41 |
42 | [[gnu::weak]] void * operator new(std::size_t size);
43 | [[gnu::weak]] void * operator new[](std::size_t size);
44 |
45 | [[gnu::weak]] void * operator new(std::size_t size, const std::nothrow_t tag) noexcept;
46 | [[gnu::weak]] void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept;
47 |
48 | void * operator new(std::size_t size, void *place) noexcept;
49 | void * operator new[](std::size_t size, void *place) noexcept;
50 |
51 | [[gnu::weak]] void operator delete(void * ptr) noexcept;
52 | [[gnu::weak]] void operator delete[](void * ptr) noexcept;
53 |
54 | #if __cplusplus >= 201402L
55 | [[gnu::weak]] void operator delete(void* ptr, std::size_t size) noexcept;
56 | [[gnu::weak]] void operator delete[](void * ptr, std::size_t size) noexcept;
57 | #endif // __cplusplus >= 201402L
58 |
59 | [[gnu::weak]] void operator delete(void* ptr, const std::nothrow_t& tag) noexcept;
60 | [[gnu::weak]] void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept;
61 |
62 | void operator delete(void* ptr, void* place) noexcept;
63 | void operator delete[](void* ptr, void* place) noexcept;
64 |
65 | #endif
66 |
67 |
--------------------------------------------------------------------------------
/cores/arduino/new.h:
--------------------------------------------------------------------------------
1 | // This file originally used a non-standard name for this Arduino core
2 | // only, so still expose the old new.h name for compatibility.
3 | #include "new"
4 |
--------------------------------------------------------------------------------
/cores/arduino/wiring_private.h:
--------------------------------------------------------------------------------
1 | /*
2 | wiring_private.h - Internal header file.
3 | Part of Arduino - http://www.arduino.cc/
4 |
5 | Copyright (c) 2005-2006 David A. Mellis
6 |
7 | This library is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU Lesser General Public
9 | License as published by the Free Software Foundation; either
10 | version 2.1 of the License, or (at your option) any later version.
11 |
12 | This library is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | Lesser General Public License for more details.
16 |
17 | You should have received a copy of the GNU Lesser General
18 | Public License along with this library; if not, write to the
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 | Boston, MA 02111-1307 USA
21 | */
22 |
23 | #ifndef WiringPrivate_h
24 | #define WiringPrivate_h
25 |
26 | #include
27 | #include
28 | #include
29 | #include
30 |
31 | #include "Arduino.h"
32 |
33 | #ifdef __cplusplus
34 | extern "C"{
35 | #endif
36 |
37 | #ifndef cbi
38 | #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
39 | #endif
40 | #ifndef sbi
41 | #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
42 | #endif
43 |
44 | uint32_t countPulseASM(volatile uint8_t *port, uint8_t bit, uint8_t stateMask, unsigned long maxloops);
45 |
46 | #define EXTERNAL_INT_0 0
47 | #define EXTERNAL_INT_1 1
48 | #define EXTERNAL_INT_2 2
49 | #define EXTERNAL_INT_3 3
50 | #define EXTERNAL_INT_4 4
51 | #define EXTERNAL_INT_5 5
52 | #define EXTERNAL_INT_6 6
53 | #define EXTERNAL_INT_7 7
54 |
55 | #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega128RFA1__) || defined(__AVR_ATmega256RFR2__) || \
56 | defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__)
57 | #define EXTERNAL_NUM_INTERRUPTS 8
58 | #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__)
59 | #define EXTERNAL_NUM_INTERRUPTS 3
60 | #elif defined(__AVR_ATmega32U4__)
61 | #define EXTERNAL_NUM_INTERRUPTS 5
62 | #else
63 | #define EXTERNAL_NUM_INTERRUPTS 2
64 | #endif
65 |
66 | typedef void (*voidFuncPtr)(void);
67 |
68 | #ifdef __cplusplus
69 | } // extern "C"
70 | #endif
71 |
72 | #endif
73 |
--------------------------------------------------------------------------------
/cores/arduino/wiring_shift.c:
--------------------------------------------------------------------------------
1 | /*
2 | wiring_shift.c - shiftOut() function
3 | Part of Arduino - http://www.arduino.cc/
4 |
5 | Copyright (c) 2005-2006 David A. Mellis
6 |
7 | This library is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU Lesser General Public
9 | License as published by the Free Software Foundation; either
10 | version 2.1 of the License, or (at your option) any later version.
11 |
12 | This library is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | Lesser General Public License for more details.
16 |
17 | You should have received a copy of the GNU Lesser General
18 | Public License along with this library; if not, write to the
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 | Boston, MA 02111-1307 USA
21 | */
22 |
23 | #include "wiring_private.h"
24 |
25 | uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) {
26 | uint8_t value = 0;
27 | uint8_t i;
28 |
29 | for (i = 0; i < 8; ++i) {
30 | digitalWrite(clockPin, HIGH);
31 | if (bitOrder == LSBFIRST)
32 | value |= digitalRead(dataPin) << i;
33 | else
34 | value |= digitalRead(dataPin) << (7 - i);
35 | digitalWrite(clockPin, LOW);
36 | }
37 | return value;
38 | }
39 |
40 | void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
41 | {
42 | uint8_t i;
43 |
44 | for (i = 0; i < 8; i++) {
45 | if (bitOrder == LSBFIRST) {
46 | digitalWrite(dataPin, val & 1);
47 | val >>= 1;
48 | } else {
49 | digitalWrite(dataPin, (val & 128) != 0);
50 | val <<= 1;
51 | }
52 |
53 | digitalWrite(clockPin, HIGH);
54 | digitalWrite(clockPin, LOW);
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/drivers/AdafruitCircuitPlayground.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/AdafruitCircuitPlayground.cat
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/Static/amd64/ftd2xx.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/Static/amd64/ftd2xx.lib
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/Static/i386/ftd2xx.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/Static/i386/ftd2xx.lib
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftbusui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftbusui.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftcserco.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftcserco.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftd2xx.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftd2xx.lib
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftd2xx64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftd2xx64.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftdibus.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftdibus.sys
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftlang.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftlang.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftser2k.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftser2k.sys
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/amd64/ftserui2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/amd64/ftserui2.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/ftd2xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftd2xx.h
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/ftdibus.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdibus.cat
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/ftdibus.inf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdibus.inf
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/ftdiport.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdiport.cat
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/ftdiport.inf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/ftdiport.inf
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftbusui.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftbusui.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftcserco.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftcserco.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftd2xx.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftd2xx.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftd2xx.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftd2xx.lib
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftdibus.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftdibus.sys
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftlang.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftlang.dll
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftser2k.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftser2k.sys
--------------------------------------------------------------------------------
/drivers/FTDI USB Drivers/i386/ftserui2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/FTDI USB Drivers/i386/ftserui2.dll
--------------------------------------------------------------------------------
/drivers/arduino-org.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/arduino-org.cat
--------------------------------------------------------------------------------
/drivers/arduino.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/arduino.cat
--------------------------------------------------------------------------------
/drivers/dpinst-amd64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/dpinst-amd64.exe
--------------------------------------------------------------------------------
/drivers/dpinst-x86.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/dpinst-x86.exe
--------------------------------------------------------------------------------
/drivers/gemma/amd64/libusb0.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/amd64/libusb0.dll
--------------------------------------------------------------------------------
/drivers/gemma/amd64/libusb0.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/amd64/libusb0.sys
--------------------------------------------------------------------------------
/drivers/gemma/arduino_gemma.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/arduino_gemma.cat
--------------------------------------------------------------------------------
/drivers/gemma/arduino_gemma.inf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/arduino_gemma.inf
--------------------------------------------------------------------------------
/drivers/gemma/ia64/libusb0.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/ia64/libusb0.dll
--------------------------------------------------------------------------------
/drivers/gemma/ia64/libusb0.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/ia64/libusb0.sys
--------------------------------------------------------------------------------
/drivers/gemma/x86/libusb0.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/x86/libusb0.sys
--------------------------------------------------------------------------------
/drivers/gemma/x86/libusb0_x86.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/gemma/x86/libusb0_x86.dll
--------------------------------------------------------------------------------
/drivers/genuino.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/genuino.cat
--------------------------------------------------------------------------------
/drivers/linino-boards_amd64.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/linino-boards_amd64.cat
--------------------------------------------------------------------------------
/drivers/linino-boards_x86.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/drivers/linino-boards_x86.cat
--------------------------------------------------------------------------------
/extras/pack.hourlybuild.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 |
3 | # pack.*.bash - Bash script to help packaging avr core releases.
4 | # Copyright (c) 2015 Arduino LLC. All right reserved.
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 |
20 | BUILD_NUMBER=$1
21 | CURR_TIME=`date "+%Y-%m-%d %H:%M"`
22 | CURR_TIME_SED=`date "+%Y\\-%m\\-%d %H:%M"`
23 | VERSION=9.9.9-Hourly
24 |
25 | PWD=`pwd`
26 | FOLDERNAME=`basename $PWD`
27 | THIS_SCRIPT_NAME=`basename $0`
28 | FILENAME=package_avr-hourly-b${BUILD_NUMBER}.tar.bz2
29 |
30 | rm -f $FILENAME
31 |
32 | # Change name in platform.txt
33 | sed -i "s/name=.*/name=SAMD Hourly Build ${BUILD_NUMBER} (${CURR_TIME})/" platform.txt
34 |
35 | cd ..
36 | tar --transform "s|$FOLDERNAME|avr-hourly_b${BUILD_NUMBER}|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf $FILENAME $FOLDERNAME
37 | cd -
38 |
39 | mv ../$FILENAME .
40 |
41 | CHKSUM=`sha256sum $FILENAME | awk '{ print $1 }'`
42 | SIZE=`wc -c $FILENAME | awk '{ print $1 }'`
43 |
44 | cat extras/package_index.json.Hourly.template |
45 | sed "s/%%BUILD_NUMBER%%/${BUILD_NUMBER}/" |
46 | sed "s/%%CURR_TIME%%/${CURR_TIME_SED}/" |
47 | sed "s/%%VERSION%%/${VERSION}/" |
48 | sed "s/%%FILENAME%%/${FILENAME}/" |
49 | sed "s/%%CHECKSUM%%/${CHKSUM}/" |
50 | sed "s/%%SIZE%%/${SIZE}/" > package_avr-hourly-build_index.json
51 |
52 |
--------------------------------------------------------------------------------
/extras/pack.pullrequest.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 |
3 | # pack.*.bash - Bash script to help packaging avr core releases.
4 | # Copyright (c) 2015 Arduino LLC. All right reserved.
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 |
20 | PR_NUMBER=$1
21 | BUILD_NUMBER=$2
22 | VERSION=`grep version= platform.txt | sed 's/version=//g'`
23 |
24 | PWD=`pwd`
25 | FOLDERNAME=`basename $PWD`
26 | THIS_SCRIPT_NAME=`basename $0`
27 | FILENAME=package_avr-b${BUILD_NUMBER}.tar.bz2
28 |
29 | rm -f $FILENAME
30 |
31 | # Change name in platform.txt
32 | sed -i "s/name=.*/name=SAMD Pull request #${PR_NUMBER} (Build ${BUILD_NUMBER})/" platform.txt
33 |
34 | cd ..
35 | tar --transform "s|$FOLDERNAME|avr-PR${PR_NUMBER}_b${BUILD_NUMBER}|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf $FILENAME $FOLDERNAME
36 | cd -
37 |
38 | mv ../$FILENAME .
39 |
40 | CHKSUM=`sha256sum $FILENAME | awk '{ print $1 }'`
41 | SIZE=`wc -c $FILENAME | awk '{ print $1 }'`
42 |
43 | cat extras/package_index.json.PR.template |
44 | sed s/%%PR_NUMBER%%/${PR_NUMBER}/ |
45 | sed s/%%BUILD_NUMBER%%/${BUILD_NUMBER}/ |
46 | sed s/%%VERSION%%/${VERSION}-build-${BUILD_NUMBER}/ |
47 | sed s/%%FILENAME%%/${FILENAME}/ |
48 | sed s/%%CHECKSUM%%/${CHKSUM}/ |
49 | sed s/%%SIZE%%/${SIZE}/ > package_avr-b${BUILD_NUMBER}_index.json
50 |
51 |
--------------------------------------------------------------------------------
/extras/pack.release.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash -ex
2 |
3 | # pack.*.bash - Bash script to help packaging avr core releases.
4 | # Copyright (c) 2015 Arduino LLC. All right reserved.
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 |
20 | VERSION=`grep version= platform.txt | sed 's/version=//g'`
21 |
22 | PWD=`pwd`
23 | FOLDERNAME=`basename $PWD`
24 | THIS_SCRIPT_NAME=`basename $0`
25 |
26 | rm -f avr-$VERSION.tar.bz2
27 |
28 | cd ..
29 | tar --transform "s|$FOLDERNAME|$FOLDERNAME-$VERSION|g" --exclude=extras/** --exclude=.git* --exclude=.idea -cjf avr-$VERSION.tar.bz2 $FOLDERNAME
30 | cd -
31 |
32 | mv ../avr-$VERSION.tar.bz2 .
33 |
34 |
--------------------------------------------------------------------------------
/extras/package_index.json.Hourly.template:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | {
4 | "name": "arduino-beta",
5 | "maintainer": "Arduino Betatesting",
6 | "websiteURL": "http://www.arduino.cc/",
7 | "email": "packages@arduino.cc",
8 | "help": {
9 | "online": "http://www.arduino.cc/en/Reference/HomePage"
10 | },
11 | "platforms": [
12 | {
13 | "name": "Arduino AVR core - Hourly build",
14 | "architecture": "avr",
15 | "version": "%%VERSION%%",
16 | "category": "Arduino",
17 | "url": "http://downloads.arduino.cc/Hourly/avr/%%FILENAME%%",
18 | "archiveFileName": "%%FILENAME%%",
19 | "checksum": "SHA-256:%%CHECKSUM%%",
20 | "size": "%%SIZE%%",
21 | "boards": [
22 | {"name": "Arduino Yún"},
23 | {"name": "Arduino Uno"},
24 | {"name": "Arduino Uno WiFi"},
25 | {"name": "Arduino Diecimila"},
26 | {"name": "Arduino Nano"},
27 | {"name": "Arduino Mega"},
28 | {"name": "Arduino MegaADK"},
29 | {"name": "Arduino Leonardo"},
30 | {"name": "Arduino Leonardo Ethernet"},
31 | {"name": "Arduino Micro"},
32 | {"name": "Arduino Esplora"},
33 | {"name": "Arduino Mini"},
34 | {"name": "Arduino Ethernet"},
35 | {"name": "Arduino Fio"},
36 | {"name": "Arduino BT"},
37 | {"name": "Arduino LilyPadUSB"},
38 | {"name": "Arduino Lilypad"},
39 | {"name": "Arduino Pro"},
40 | {"name": "Arduino ATMegaNG"},
41 | {"name": "Arduino Robot Control"},
42 | {"name": "Arduino Robot Motor"},
43 | {"name": "Arduino Gemma"},
44 | {"name": "Adafruit Circuit Playground"},
45 | {"name": "Arduino Yún Mini"},
46 | {"name": "Arduino Industrial 101"},
47 | {"name": "Linino One"}
48 | ],
49 | "toolsDependencies": [
50 | {
51 | "packager": "arduino",
52 | "name": "avr-gcc",
53 | "version": "4.9.2-atmel3.5.4-arduino2"
54 | },
55 | {
56 | "packager": "arduino",
57 | "name": "avrdude",
58 | "version": "6.3.0-arduino9"
59 | },
60 | {
61 | "packager": "arduino",
62 | "name": "arduinoOTA",
63 | "version": "1.1.1"
64 | }
65 | ]
66 | }
67 | ],
68 | "tools": [
69 | ]
70 | }
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/extras/package_index.json.PR.template:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | {
4 | "name": "arduino-beta",
5 | "maintainer": "Arduino Betatesting",
6 | "websiteURL": "http://www.arduino.cc/",
7 | "email": "packages@arduino.cc",
8 | "help": {
9 | "online": "http://www.arduino.cc/en/Reference/HomePage"
10 | },
11 | "platforms": [
12 | {
13 | "name": "Arduino AVR core - Pull request #%%PR_NUMBER%% (build %%BUILD_NUMBER%%)",
14 | "architecture": "avr",
15 | "version": "%%VERSION%%",
16 | "category": "Arduino",
17 | "url": "http://downloads.arduino.cc/PR/a/%%FILENAME%%",
18 | "archiveFileName": "%%FILENAME%%",
19 | "checksum": "SHA-256:%%CHECKSUM%%",
20 | "size": "%%SIZE%%",
21 | "boards": [
22 | {"name": "Arduino Yún"},
23 | {"name": "Arduino Uno"},
24 | {"name": "Arduino Uno WiFi"},
25 | {"name": "Arduino Diecimila"},
26 | {"name": "Arduino Nano"},
27 | {"name": "Arduino Mega"},
28 | {"name": "Arduino MegaADK"},
29 | {"name": "Arduino Leonardo"},
30 | {"name": "Arduino Leonardo Ethernet"},
31 | {"name": "Arduino Micro"},
32 | {"name": "Arduino Esplora"},
33 | {"name": "Arduino Mini"},
34 | {"name": "Arduino Ethernet"},
35 | {"name": "Arduino Fio"},
36 | {"name": "Arduino BT"},
37 | {"name": "Arduino LilyPadUSB"},
38 | {"name": "Arduino Lilypad"},
39 | {"name": "Arduino Pro"},
40 | {"name": "Arduino ATMegaNG"},
41 | {"name": "Arduino Robot Control"},
42 | {"name": "Arduino Robot Motor"},
43 | {"name": "Arduino Gemma"},
44 | {"name": "Adafruit Circuit Playground"},
45 | {"name": "Arduino Yún Mini"},
46 | {"name": "Arduino Industrial 101"},
47 | {"name": "Linino One"}
48 | ],
49 | "toolsDependencies": [
50 | {
51 | "packager": "arduino",
52 | "name": "avr-gcc",
53 | "version": "4.9.2-atmel3.5.4-arduino2"
54 | },
55 | {
56 | "packager": "arduino",
57 | "name": "avrdude",
58 | "version": "6.3.0-arduino9"
59 | },
60 | {
61 | "packager": "arduino",
62 | "name": "arduinoOTA",
63 | "version": "1.1.1"
64 | }
65 | ]
66 | }
67 | ],
68 | "tools": [
69 | ]
70 | }
71 | ]
72 | }
73 |
--------------------------------------------------------------------------------
/firmwares/arduinoISP/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | You can download the ArduinoISP firmware source files from:
3 |
4 | https://github.com/arduino/ArduinoISP
5 |
6 |
--------------------------------------------------------------------------------
/firmwares/atmegaxxu2/README.txt:
--------------------------------------------------------------------------------
1 | Arduino Uno and Mega 2560 Firmwares for the ATmega8U2
2 |
3 | This directory contains the firmwares used on the ATmega8U2 on the Arduino
4 | Uno and Arduino Mega 2560. The arduino-usbdfu directory contains the DFU
5 | bootloader on the 8U2; the arduino-usbserial directory contains the actual
6 | usb to serial firmware. Both should be compiled against LUFA 100807. The
7 | two .hex files in this directory combine the dfu and serial firmwares into
8 | a single file to burn onto the 8U2.
9 |
10 | To burn (Uno):
11 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
12 |
13 | To burn (Mega 2560):
14 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
15 |
16 |
17 | Note on USB Vendor IDs (VID) and Product IDs (PID): The arduino-usbdfu
18 | project uses Atmel's VID and MCU-specific PIDs to maintain compatibility
19 | with their FLIP software. The source code to the arduino-usbserial
20 | project includes Atmel's VID and a PID donated by them to LUFA. This
21 | PID is used in LUFA's USBtoSerial project, which forms the basis for
22 | arduino-usbserial. According to the LUFA documentation, this VID/PID
23 | combination is:
24 |
25 | "For use in testing of LUFA powered devices during development only,
26 | by non-commercial entities. All devices must accept collisions on this
27 | VID/PID range (from other in-development LUFA devices) to be resolved
28 | by using a unique release number in the Device Descriptor. No devices
29 | using this VID/PID combination may be released to the general public."
30 |
31 | The production version of the arduino-usbserial firmware uses the
32 | Arduino VID. This is only for use with official Arduino hardware and
33 | should not be used on other products.
--------------------------------------------------------------------------------
/firmwares/atmegaxxu2/arduino-usbdfu/makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/atmegaxxu2/arduino-usbdfu/makefile
--------------------------------------------------------------------------------
/firmwares/atmegaxxu2/arduino-usbdfu/readme.txt:
--------------------------------------------------------------------------------
1 | To setup the project and program an ATMEG8U2 with the Arduino USB DFU bootloader:
2 | 1. unpack the source into LUFA's Bootloader directory
3 | 2. set ARDUINO_MODEL_PID in the makefile as appropriate
4 | 3. do "make clean; make; make program"
5 |
6 | Check that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU". Test by uploading the Arduino-usbserial application firmware (see instructions in Arduino-usbserial directory)
7 |
8 |
--------------------------------------------------------------------------------
/firmwares/atmegaxxu2/arduino-usbserial/makefile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/atmegaxxu2/arduino-usbserial/makefile
--------------------------------------------------------------------------------
/firmwares/atmegaxxu2/arduino-usbserial/readme.txt:
--------------------------------------------------------------------------------
1 | To setup the project and upload the Arduino usbserial application firmware to an ATMEGA8U2 using the Arduino USB DFU bootloader:
2 | 1. unpack the source into LUFA's Projects directory
3 | 2. set ARDUINO_MODEL_PID in the makefile as appropriate
4 | 3. do "make clean; make"
5 | 4. put the 8U2 into USB DFU mode:
6 | 4.a. assert and hold the 8U2's RESET line
7 | 4.b. assert and hold the 8U2's HWB line
8 | 4.c. release the 8U2's RESET line
9 | 4.d. release the 8U2's HWB line
10 | 5. confirm that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU"
11 | 6. do "make dfu" (OS X or Linux - dfu-programmer must be installed first) or "make flip" (Windows - Flip must be installed first)
12 |
13 | Check that the board enumerates as either "Arduino Uno" or "Arduino Mega 2560". Test by uploading a new Arduino sketch from the Arduino IDE.
14 |
--------------------------------------------------------------------------------
/firmwares/wifishield/binary/wifiHD.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifiHD.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/binary/wifiHD_2_1.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifiHD_2_1.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/binary/wifi_dnld.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifi_dnld.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/binary/wifi_dnld_2_1.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/binary/wifi_dnld_2_1.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/scripts/ArduinoWifiShield_upgrade_mac.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | WIFI_FW_PATH="/hardware/arduino/avr/firmwares/wifishield/binary"
4 | AVR_TOOLS_PATH="/hardware/tools/avr/bin"
5 |
6 | progname=$0
7 |
8 | usage () {
9 | cat <&2
83 | usage
84 | exit 1
85 | ;;
86 | :)
87 | echo "Option -$OPTARG requires an argument." >&2
88 | exit 1
89 | ;;
90 | esac
91 | done
92 | else
93 | echo "You are not root!\n"
94 | fi
95 |
96 | shift $(($OPTIND - 1))
97 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | wifiHD
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 | ?name?
14 |
15 |
16 |
17 | org.eclipse.cdt.make.core.append_environment
18 | true
19 |
20 |
21 | org.eclipse.cdt.make.core.buildArguments
22 |
23 |
24 |
25 | org.eclipse.cdt.make.core.buildCommand
26 | make
27 |
28 |
29 | org.eclipse.cdt.make.core.buildLocation
30 | ${workspace_loc:/wifiHD/Debug}
31 |
32 |
33 | org.eclipse.cdt.make.core.contents
34 | org.eclipse.cdt.make.core.activeConfigSettings
35 |
36 |
37 | org.eclipse.cdt.make.core.enableAutoBuild
38 | false
39 |
40 |
41 | org.eclipse.cdt.make.core.enableCleanBuild
42 | true
43 |
44 |
45 | org.eclipse.cdt.make.core.enableFullBuild
46 | true
47 |
48 |
49 | org.eclipse.cdt.make.core.stopOnError
50 | true
51 |
52 |
53 | org.eclipse.cdt.make.core.useDefaultBuildCmd
54 | true
55 |
56 |
57 |
58 |
59 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
60 |
61 |
62 |
63 |
64 |
65 | com.atmel.avr32.core.nature
66 | org.eclipse.cdt.core.cnature
67 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
68 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
69 |
70 |
71 |
72 | UC3 Software Framework
73 | 2
74 | framework:/com.atmel.avr32.sf.uc3
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/Release/wifiHD.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/Release/wifiHD.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_sdio_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_spi_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR1/GCC/lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_sdio_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_spi_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/UCR2/GCC/lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/v2.7.0/revision.txt:
--------------------------------------------------------------------------------
1 | Revision: 2491
2 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_os.h:
--------------------------------------------------------------------------------
1 | #ifndef WL_OS_H
2 | #define WL_OS_H
3 |
4 | #include
5 | #include
6 |
7 | void *owl_os_alloc(size_t size);
8 | void *owl_os_realloc(void *ptr, size_t size);
9 | void owl_os_free(void *p);
10 | void *owl_os_memcpy(void *dst, const void *src, size_t n);
11 | void *owl_os_memset(void *s, int c, size_t n);
12 | void *owl_os_memmove(void *dst, const void *src, size_t n);
13 | size_t owl_os_strlen(char *s);
14 | char *owl_os_strncpy(char *dst, const char *src, size_t n);
15 | int owl_os_strncmp(const char *s1, const char *s2, size_t n);
16 | int owl_os_strcmp(const char *s1, const char *s2);
17 | char *owl_os_strcpy(char *dst, const char *src);
18 | char *owl_os_strdup(const char *s);
19 | char *owl_os_strndup(const char *s, size_t n);
20 | int owl_os_memcmp(const void *s1, const void *s2, size_t n);
21 | long int owl_os_strtol(const char *nptr, char **endptr, int base);
22 | char *owl_os_strchr(const char *s, int c);
23 | char *owl_os_strrchr(const char *s, int c);
24 | int owl_os_strcasecmp(const char *s1, const char *s2);
25 | char *owl_os_strstr(const char *haystack, const char *needle);
26 |
27 | int owl_os_snprintf(char *str, size_t size, const char *format, ...)
28 | __attribute__((format(printf, 3, 4)));
29 |
30 | int owl_os_vprintf(const char *format, va_list arg); /* debug only */
31 | int owl_os_printf(const char *format, ...) /* debug only */
32 | __attribute__((format(printf, 1, 2)));
33 |
34 | #endif /* WL_OS_H */
35 |
36 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without modification,
8 | * are permitted provided that the following conditions are met:
9 | *
10 | * 1. Redistributions of source code must retain the above copyright notice,
11 | * this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | * 3. The name of the author may not be used to endorse or promote products
16 | * derived from this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 | * OF SUCH DAMAGE.
28 | *
29 | * This file is part of the lwIP TCP/IP stack.
30 | *
31 | * Author: Adam Dunkels
32 | *
33 | */
34 | #ifndef __LWIP_INET_CHKSUM_H__
35 | #define __LWIP_INET_CHKSUM_H__
36 |
37 | #include "lwip/opt.h"
38 |
39 | #include "lwip/pbuf.h"
40 | #include "lwip/ip_addr.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C" {
44 | #endif
45 |
46 | u16_t inet_chksum(void *dataptr, u16_t len);
47 | u16_t inet_chksum_pbuf(struct pbuf *p);
48 | u16_t inet_chksum_pseudo(struct pbuf *p,
49 | struct ip_addr *src, struct ip_addr *dest,
50 | u8_t proto, u16_t proto_len);
51 | #if LWIP_UDPLITE
52 | u16_t inet_chksum_pseudo_partial(struct pbuf *p,
53 | struct ip_addr *src, struct ip_addr *dest,
54 | u8_t proto, u16_t proto_len, u16_t chksum_len);
55 | #endif
56 |
57 | #ifdef __cplusplus
58 | }
59 | #endif
60 |
61 | #endif /* __LWIP_INET_H__ */
62 |
63 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without modification,
8 | * are permitted provided that the following conditions are met:
9 | *
10 | * 1. Redistributions of source code must retain the above copyright notice,
11 | * this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | * 3. The name of the author may not be used to endorse or promote products
16 | * derived from this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 | * OF SUCH DAMAGE.
28 | *
29 | * This file is part of the lwIP TCP/IP stack.
30 | *
31 | * Author: Jani Monoses
32 | *
33 | */
34 |
35 | #ifndef __LWIP_IP_FRAG_H__
36 | #define __LWIP_IP_FRAG_H__
37 |
38 | #include "lwip/opt.h"
39 | #include "lwip/err.h"
40 | #include "lwip/pbuf.h"
41 | #include "lwip/netif.h"
42 | #include "lwip/ip_addr.h"
43 | #include "lwip/ip.h"
44 |
45 | #ifdef __cplusplus
46 | extern "C" {
47 | #endif
48 |
49 | #if IP_REASSEMBLY
50 | /* The IP reassembly timer interval in milliseconds. */
51 | #define IP_TMR_INTERVAL 1000
52 |
53 | /* IP reassembly helper struct.
54 | * This is exported because memp needs to know the size.
55 | */
56 | struct ip_reassdata {
57 | struct ip_reassdata *next;
58 | struct pbuf *p;
59 | struct ip_hdr iphdr;
60 | u16_t datagram_len;
61 | u8_t flags;
62 | u8_t timer;
63 | };
64 |
65 | void ip_reass_init(void);
66 | void ip_reass_tmr(void);
67 | struct pbuf * ip_reass(struct pbuf *p);
68 | #endif /* IP_REASSEMBLY */
69 |
70 | #if IP_FRAG
71 | err_t ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest);
72 | #endif /* IP_FRAG */
73 |
74 | #ifdef __cplusplus
75 | }
76 | #endif
77 |
78 | #endif /* __LWIP_IP_FRAG_H__ */
79 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/def.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without modification,
8 | * are permitted provided that the following conditions are met:
9 | *
10 | * 1. Redistributions of source code must retain the above copyright notice,
11 | * this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | * 3. The name of the author may not be used to endorse or promote products
16 | * derived from this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 | * OF SUCH DAMAGE.
28 | *
29 | * This file is part of the lwIP TCP/IP stack.
30 | *
31 | * Author: Adam Dunkels
32 | *
33 | */
34 | #ifndef __LWIP_DEF_H__
35 | #define __LWIP_DEF_H__
36 |
37 | /* this might define NULL already */
38 | #include "lwip/arch.h"
39 |
40 | #define LWIP_MAX(x , y) (((x) > (y)) ? (x) : (y))
41 | #define LWIP_MIN(x , y) (((x) < (y)) ? (x) : (y))
42 |
43 | #ifndef NULL
44 | #define NULL ((void *)0)
45 | #endif
46 |
47 |
48 | #endif /* __LWIP_DEF_H__ */
49 |
50 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without modification,
8 | * are permitted provided that the following conditions are met:
9 | *
10 | * 1. Redistributions of source code must retain the above copyright notice,
11 | * this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | * 3. The name of the author may not be used to endorse or promote products
16 | * derived from this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 | * OF SUCH DAMAGE.
28 | *
29 | * This file is part of the lwIP TCP/IP stack.
30 | *
31 | * Author: Adam Dunkels
32 | *
33 | */
34 | #ifndef __NETIF_LOOPIF_H__
35 | #define __NETIF_LOOPIF_H__
36 |
37 | #include "lwip/opt.h"
38 | #include "lwip/netif.h"
39 | #include "lwip/err.h"
40 |
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | #if !LWIP_NETIF_LOOPBACK_MULTITHREADING
46 | #define loopif_poll netif_poll
47 | #endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */
48 |
49 | err_t loopif_init(struct netif *netif);
50 |
51 | #ifdef __cplusplus
52 | }
53 | #endif
54 |
55 | #endif /* __NETIF_LOOPIF_H__ */
56 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001, Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without
8 | * modification, are permitted provided that the following conditions
9 | * are met:
10 | * 1. Redistributions of source code must retain the above copyright
11 | * notice, this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright
13 | * notice, this list of conditions and the following disclaimer in the
14 | * documentation and/or other materials provided with the distribution.
15 | * 3. Neither the name of the Institute nor the names of its contributors
16 | * may be used to endorse or promote products derived from this software
17 | * without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
23 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 | * SUCH DAMAGE.
30 | *
31 | * This file is part of the lwIP TCP/IP stack.
32 | *
33 | * Author: Adam Dunkels
34 | *
35 | */
36 | #ifndef __NETIF_SLIPIF_H__
37 | #define __NETIF_SLIPIF_H__
38 |
39 | #include "lwip/netif.h"
40 |
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | err_t slipif_init(struct netif * netif);
46 | void slipif_poll(struct netif *netif);
47 |
48 | #ifdef __cplusplus
49 | }
50 | #endif
51 |
52 | #endif
53 |
54 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c:
--------------------------------------------------------------------------------
1 | /* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /**
4 | * @file
5 | * Loop Interface
6 | *
7 | */
8 |
9 | /*
10 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
11 | * All rights reserved.
12 | *
13 | * Redistribution and use in source and binary forms, with or without modification,
14 | * are permitted provided that the following conditions are met:
15 | *
16 | * 1. Redistributions of source code must retain the above copyright notice,
17 | * this list of conditions and the following disclaimer.
18 | * 2. Redistributions in binary form must reproduce the above copyright notice,
19 | * this list of conditions and the following disclaimer in the documentation
20 | * and/or other materials provided with the distribution.
21 | * 3. The name of the author may not be used to endorse or promote products
22 | * derived from this software without specific prior written permission.
23 | *
24 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
25 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
27 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
29 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
32 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
33 | * OF SUCH DAMAGE.
34 | *
35 | * This file is part of the lwIP TCP/IP stack.
36 | *
37 | * Author: Adam Dunkels
38 | *
39 | */
40 | #include "lwip/opt.h"
41 |
42 | #if LWIP_HAVE_LOOPIF
43 |
44 | #include "netif/loopif.h"
45 | #include "lwip/snmp.h"
46 |
47 | /**
48 | * Initialize a lwip network interface structure for a loopback interface
49 | *
50 | * @param netif the lwip network interface structure for this loopif
51 | * @return ERR_OK if the loopif is initialized
52 | * ERR_MEM if private data couldn't be allocated
53 | */
54 | err_t
55 | loopif_init(struct netif *netif)
56 | {
57 | /* initialize the snmp variables and counters inside the struct netif
58 | * ifSpeed: no assumption can be made!
59 | */
60 | NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0);
61 |
62 | netif->name[0] = 'l';
63 | netif->name[1] = 'o';
64 | netif->output = netif_loop_output;
65 | return ERR_OK;
66 | }
67 |
68 | #endif /* LWIP_HAVE_LOOPIF */
69 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/perf.h:
--------------------------------------------------------------------------------
1 | #ifndef __PERF_H__
2 | #define __PERF_H__
3 |
4 | #define PERF_START /* null definition */
5 | #define PERF_STOP(x) /* null definition */
6 |
7 | #endif
8 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h:
--------------------------------------------------------------------------------
1 | #ifndef __NETIF_NRWLANIF_H__
2 | #define __NETIF_NRWLANIF_H__
3 |
4 | #include "lwip/netif.h"
5 | #include "lwip/err.h"
6 |
7 | err_t wlif_init(struct netif *netif);
8 | void wlif_poll(struct netif *netif);
9 |
10 | #endif
11 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/readme.txt:
--------------------------------------------------------------------------------
1 | This directory is specific to the WIFI H&D SPB104 components (\COMPONENTS\WIFI\HD_SPB104).
2 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*This file is prepared for Doxygen automatic documentation generation.*/
4 | /*! \file *********************************************************************
5 | *
6 | * \brief NEWLIB_ADDONS CPU include file for AVR32.
7 | *
8 | * - Compiler: GNU GCC for AVR32
9 | * - Supported devices: All AVR32 devices can be used.
10 | * - AppNote:
11 | *
12 | * \author Atmel Corporation: http://www.atmel.com \n
13 | * Support and FAQ: http://support.atmel.no/
14 | *
15 | ******************************************************************************/
16 |
17 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
18 | *
19 | * Redistribution and use in source and binary forms, with or without
20 | * modification, are permitted provided that the following conditions are met:
21 | *
22 | * 1. Redistributions of source code must retain the above copyright notice, this
23 | * list of conditions and the following disclaimer.
24 | *
25 | * 2. Redistributions in binary form must reproduce the above copyright notice,
26 | * this list of conditions and the following disclaimer in the documentation
27 | * and/or other materials provided with the distribution.
28 | *
29 | * 3. The name of Atmel may not be used to endorse or promote products derived
30 | * from this software without specific prior written permission.
31 | *
32 | * 4. This software may only be redistributed and used in connection with an Atmel
33 | * AVR product.
34 | *
35 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
36 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
37 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
38 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
39 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
41 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
42 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
43 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
44 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
45 | *
46 | */
47 |
48 | #ifndef __AVR32_NEWLIB_ADDONS_CPU_H__
49 | #define __AVR32_NEWLIB_ADDONS_CPU_H__
50 |
51 | #include <_ansi.h>
52 |
53 | _BEGIN_STD_C
54 |
55 | #define CPU_HZ get_cpu_hz()
56 |
57 | void udelay(unsigned long usec);
58 | void set_cpu_hz(unsigned int clk_hz);
59 | unsigned int get_cpu_hz();
60 |
61 | _END_STD_C
62 |
63 | #endif
64 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*This file is prepared for Doxygen automatic documentation generation.*/
4 | /*! \file *********************************************************************
5 | *
6 | * \brief Preprocessor utils.
7 | *
8 | * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
9 | * - Supported devices: All AVR32 devices can be used.
10 | *
11 | * \author Atmel Corporation: http://www.atmel.com \n
12 | * Support and FAQ: http://support.atmel.no/
13 | *
14 | ******************************************************************************/
15 |
16 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
17 | *
18 | * Redistribution and use in source and binary forms, with or without
19 | * modification, are permitted provided that the following conditions are met:
20 | *
21 | * 1. Redistributions of source code must retain the above copyright notice, this
22 | * list of conditions and the following disclaimer.
23 | *
24 | * 2. Redistributions in binary form must reproduce the above copyright notice,
25 | * this list of conditions and the following disclaimer in the documentation
26 | * and/or other materials provided with the distribution.
27 | *
28 | * 3. The name of Atmel may not be used to endorse or promote products derived
29 | * from this software without specific prior written permission.
30 | *
31 | * 4. This software may only be redistributed and used in connection with an Atmel
32 | * AVR product.
33 | *
34 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
35 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
36 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
37 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
38 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
40 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
43 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
44 | *
45 | */
46 |
47 | #ifndef _PREPROCESSOR_H_
48 | #define _PREPROCESSOR_H_
49 |
50 | #include "tpaste.h"
51 | #include "stringz.h"
52 | #include "mrepeat.h"
53 |
54 |
55 | #endif // _PREPROCESSOR_H_
56 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/ard_spi.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ard_spi.h
3 | *
4 | * Created on: May 27, 2010
5 | * Author: mlf by Metodo2 srl
6 | */
7 |
8 | #ifndef ARD_SPI_H_
9 | #define ARD_SPI_H_
10 |
11 | #include "lwip/netif.h"
12 | #include "console.h"
13 | #include "wl_definitions.h"
14 |
15 |
16 | typedef enum {
17 | SPI_CMD_IDLE,
18 | SPI_CMD_INPUT,
19 | SPI_CMD_DONE,
20 | SPI_CMD_INPROGRESS,
21 | SPI_CMD_REPLING,
22 | SPI_CMD_FAIL,
23 | } cmd_spi_state_t;
24 |
25 | typedef enum {
26 | REPLY_ERR_GET,
27 | REPLY_ERR_SET,
28 | REPLY_ERR_CMD,
29 | REPLY_ERR_MSG,
30 | REPLY_NO_ERR,
31 | } reply_err_t;
32 |
33 |
34 | typedef enum {
35 | CMD_GET_FLAG = 0x01,
36 | CMD_SET_FLAG = 0x02,
37 | CMD_IMM_SET_FLAG = 0x04,
38 | }cmd_flags;
39 |
40 | typedef enum eProtMode {TCP_MODE, UDP_MODE}tProtMode;
41 |
42 | #define TIMEOUT_SPI 200
43 | #define SPI_ALIGN_ERROR 0xF0
44 | #define SPI_OVERRIDE_ERROR 0xF1
45 | #define SPI_TIMEOUT_ERROR 0xF2
46 | #define DUMMY_DATA 0xFF
47 |
48 | typedef int (*cmd_spi_cb_t)(int numParam, char* buf, void* ctx);
49 | typedef cmd_spi_state_t (*cmd_spi_rcb_t)(char* recv, char* reply, void* ctx, uint16_t* _count);
50 |
51 | typedef struct eRemoteClient{
52 | uint32_t ipaddr;
53 | uint16_t port;
54 | }tRemoteClient;
55 |
56 | void set_result_cmd(int err) ;
57 |
58 | void set_result(wl_status_t _status);
59 |
60 | int initSpi(void* ctx);
61 |
62 | void initExtInt();
63 |
64 | void spi_poll(struct netif* netif);
65 |
66 | int spi_slaveReceive(volatile avr32_spi_t *spi);
67 |
68 | void showTTCPstatus();
69 |
70 | int getSock(void * _ttcp);
71 |
72 | void* getTTCP(uint8_t sock, uint8_t mode);
73 |
74 | void setMapSockMode(uint8_t sock, void* _ttcp, uint8_t _tcp_mode);
75 |
76 | void clearMapSockTcp(uint8_t sock, uint8_t mode);
77 |
78 | int start_server_tcp(uint16_t port, uint8_t sock, uint8_t protMode);
79 |
80 | int start_client_tcp(uint32_t _addr, uint16_t port, uint8_t sock, uint8_t protMode);
81 |
82 | void setRemoteClient(uint16_t sock, uint32_t _ipaddr, uint16_t _port);
83 |
84 | tRemoteClient* getRemoteClient(uint16_t sock);
85 |
86 | void getRemoteData(uint8_t sock, uint8_t mode, tRemoteClient* remoteData);
87 |
88 | #endif /* ARD_SPI_H_ */
89 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/console.h:
--------------------------------------------------------------------------------
1 | /*! \page License
2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | *
7 | * 1. Redistributions of source code must retain the above copyright notice,
8 | * this list of conditions and the following disclaimer.
9 | *
10 | * 2. Redistributions in binary form must reproduce the above copyright notice,
11 | * this list of conditions and the following disclaimer in the documentation
12 | * and/or other materials provided with the distribution.
13 | *
14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
15 | * from this software without specific prior written permission.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 | #ifndef CONSOLE_H
29 | #define CONSOLE_H
30 |
31 |
32 | typedef enum {
33 | CMD_DONE,
34 | CMD_INPROGRESS
35 | } cmd_state_t;
36 |
37 | typedef cmd_state_t (*cmd_cb_t)(int argc, char* argv[], void* ctx);
38 |
39 | void console_init(void);
40 | void console_init_silent(void);
41 | char* console_gets(void);
42 | int console_add_cmd(const char* str, cmd_cb_t cb, void* ctx);
43 | int console_schedule_cmd(char *cmd, int interactive);
44 | void console_poll(void);
45 |
46 | #endif
47 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/fw_download.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef FW_DOWNLOAD_H
31 | #define FW_DOWNLOAD_H
32 |
33 | #include
34 | #include
35 |
36 | int fw_download_init(void);
37 | size_t fw_read_cb(void *ctx, const uint8_t** buf, size_t offset, size_t len);
38 | #endif
39 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/license.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2009, H&D Wireless AB All rights reserved.
2 |
3 | The license to use this software in whole and in part and to
4 | redistribute it in any form follows with the WiFi HW module from H&D
5 | Wireless and is granted under the following restrictions:
6 |
7 | 1. Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | 3. The name of H&D Wireless AB may not be used to endorse or promote
15 | products derived from this software without specific prior written
16 | permission.
17 |
18 | 4. The software may only be used together with hardware from H&D
19 | Wireless all other use is prohibited.
20 |
21 | 5. The license to use and redistribute the software is granted
22 | together with the purchase of a hardware platform on a one to one
23 | basis
24 |
25 | 6. The binary code may not be reversed engineered or by other means
26 | copied to circumvent this license.
27 |
28 | THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY
29 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
31 | PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT
32 | SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT,
33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39 | OF THE POSSIBILITY OF SUCH DAMAGE.
40 |
41 | For more information regarding this software license Contact H&D
42 | Wireless AB (support@hd-wireless.se).
43 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/lwip_setup.h:
--------------------------------------------------------------------------------
1 | #ifndef _LWIP_SETUP_H
2 | #define _LWIP_SETUP_H
3 |
4 | #define INIT_IP_CONFIG 0xff
5 | #define STATIC_IP_CONFIG 0
6 | #define DYNAMIC_IP_CONFIG 1
7 |
8 | struct net_cfg {
9 | struct netif *netif; /* lwip network interface */
10 | uint8_t dhcp_enabled;
11 | uint8_t dhcp_running;
12 | };
13 |
14 | struct ctx_server {
15 | struct net_cfg net_cfg;
16 | uint8_t wl_init_complete;
17 | };
18 |
19 | /*! Start the IP stack.
20 | * If cfg->netif must have been allocated and lwip_init()
21 | * must have been called before this function is called
22 | * (since the IP stack may have to be polled before this
23 | * function can be called).
24 | */
25 | int start_ip_stack(struct net_cfg *cfg,
26 | struct ip_addr ipaddr,
27 | struct ip_addr netmask,
28 | struct ip_addr gw);
29 |
30 | #endif /* _LWIP_SETUP_H */
31 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/nvram.h:
--------------------------------------------------------------------------------
1 | #ifndef NVRAM_H
2 | #define NVRAM_H
3 |
4 | #include
5 |
6 | int nvram_init(void);
7 | int nvram_read(uint32_t addr, void *data, uint32_t len);
8 | int nvram_write(uint32_t addr, const void *data, uint32_t len);
9 |
10 | #endif
11 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/ping.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*
4 | * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
5 | * All rights reserved.
6 | *
7 | * Redistribution and use in source and binary forms, with or without modification,
8 | * are permitted provided that the following conditions are met:
9 | *
10 | * 1. Redistributions of source code must retain the above copyright notice,
11 | * this list of conditions and the following disclaimer.
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | * 3. The name of the author may not be used to endorse or promote products
16 | * derived from this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 | * OF SUCH DAMAGE.
28 | *
29 | * This file is derived from a part of the lwIP TCP/IP stack.
30 | *
31 | */
32 | #ifndef PING_H
33 | #define PING_H
34 |
35 | #include "console.h"
36 |
37 | typedef void (*ping_complete_cb_t)(uint32_t tx_pkt_cnt, uint32_t rx_pkt_cnt, void *ctx);
38 |
39 | void ping_set_callback(ping_complete_cb_t cb, void *ctx);
40 |
41 | void ping_stop(uint32_t *tx_cnt, uint32_t *rx_cnt);
42 |
43 | cmd_state_t cmd_ping(int argc, char* argv[], void* ctx);
44 |
45 | #endif
46 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/printf-stdarg.h:
--------------------------------------------------------------------------------
1 | /*! \page License
2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | *
7 | * 1. Redistributions of source code must retain the above copyright notice,
8 | * this list of conditions and the following disclaimer.
9 | *
10 | * 2. Redistributions in binary form must reproduce the above copyright notice,
11 | * this list of conditions and the following disclaimer in the documentation
12 | * and/or other materials provided with the distribution.
13 | *
14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
15 | * from this software without specific prior written permission.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 | #ifndef PRINTF_STDARG_H
29 | #define PRINTF_STDARG_H
30 | #include
31 |
32 | int printk(const char *format, ...);
33 | int printk_va(char **out, const char *format, va_list args );
34 | #endif
35 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/timer.h:
--------------------------------------------------------------------------------
1 | /*! \page License
2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | *
7 | * 1. Redistributions of source code must retain the above copyright notice,
8 | * this list of conditions and the following disclaimer.
9 | *
10 | * 2. Redistributions in binary form must reproduce the above copyright notice,
11 | * this list of conditions and the following disclaimer in the documentation
12 | * and/or other materials provided with the distribution.
13 | *
14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
15 | * from this software without specific prior written permission.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 | #ifndef TIMER_H
29 | #define TIMER_H
30 | #include
31 |
32 | enum {
33 | TIMEOUT_ONESHOT,
34 | TIMEOUT_PERIODIC
35 | };
36 |
37 | #define INVALID_TIMER_ID 0xFFFFFFFF
38 |
39 | /* Handle timer overflows. Return 1 if the interval has passed. */
40 | int timer_interval_passed(uint32_t old, uint32_t new, uint32_t diff);
41 |
42 | void timer_tick();
43 | void timer_init(void (*tick_isr) (void* ctx), void* ctx);
44 | void timer_poll(void);
45 | void timer_delay(uint32_t ms);
46 | uint32_t timer_sched_timeout_cb(uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx);
47 | uint32_t timer_mod(uint32_t id, uint32_t ms, uint8_t type, void (*cb)(void *ctx), void* ctx);
48 | void timer_cancel_timeout(uint32_t id);
49 | uint32_t timer_get_ms(void);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/trace.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef TRACE_H
31 | #define TRACE_H
32 |
33 | #include
34 | #include "printf-stdarg.h"
35 |
36 | #define ASSERT(cond, str) do { \
37 | if (!(cond)) { \
38 | printk("%s\n", str); \
39 | Assert(0); \
40 | } \
41 | } while(0)
42 |
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/util.h:
--------------------------------------------------------------------------------
1 | /*! \page License
2 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | *
7 | * 1. Redistributions of source code must retain the above copyright notice,
8 | * this list of conditions and the following disclaimer.
9 | *
10 | * 2. Redistributions in binary form must reproduce the above copyright notice,
11 | * this list of conditions and the following disclaimer in the documentation
12 | * and/or other materials provided with the distribution.
13 | *
14 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
15 | * from this software without specific prior written permission.
16 | *
17 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
20 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 | #ifndef _UTIL_H
29 | #define _UTIL_H
30 | #include
31 | #include
32 | #include
33 | #include "lwip/ip.h"
34 | #include
35 |
36 | const char* ip2str(struct ip_addr addr);
37 |
38 | struct ip_addr str2ip(const char* str);
39 |
40 | uint8_t ascii_to_key(char *outp, const char *inp);
41 |
42 | void print_network(struct wl_network_t* wl_network);
43 |
44 | void print_network_list(void);
45 |
46 | int join_argv(char *dst, size_t dst_len, int argc, char* argv[]);
47 |
48 | void printbuf(const char *prefix, const void *data, size_t len);
49 |
50 | const char* ssid2str(struct wl_ssid_t *ssid);
51 |
52 | const char* mac2str(uint8_t mac[6]);
53 |
54 | char* enc_type2str(enum wl_enc_type enc_type);
55 |
56 | int equal_ssid(const struct wl_ssid_t* ssid1,
57 | const struct wl_ssid_t* ssid2);
58 |
59 | int equal_bssid(const struct wl_mac_addr_t* bssid1,
60 | const struct wl_mac_addr_t* bssid2);
61 |
62 | #define NET_SET_SSID(net, xssid, ssid_len) do { \
63 | DE_MEMCPY((net)->ssid.ssid, (xssid), (ssid_len)); \
64 | (net)->ssid.len = (ssid_len); \
65 | } while (0)
66 |
67 | #define NET_SET_BSSID(net, xbssid) do { \
68 | DE_MEMCPY(&(net)->bssid, &(xbssid), sizeof (xbssid)); \
69 | } while (0)
70 |
71 | #endif /* _UTIL_H */
72 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/wl_cm.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef WL_CM_H
31 | #define WL_CM_H
32 |
33 | #include
34 | #include
35 | #include
36 |
37 | typedef void (cm_scan_cb_t)(void* ctx);
38 | typedef void (cm_conn_cb_t)(struct wl_network_t *net, void* ctx);
39 | typedef void (cm_disconn_cb_t)(void* ctx);
40 |
41 | wl_err_t wl_cm_set_network(struct wl_ssid_t *ssid, struct wl_mac_addr_t *bssid);
42 |
43 | wl_err_t wl_cm_init(cm_scan_cb_t scan_cb,
44 | cm_conn_cb_t conn_cb,
45 | cm_disconn_cb_t disconn_cb,
46 | void* ctx);
47 |
48 | wl_err_t wl_cm_start(void);
49 | wl_err_t wl_cm_stop(void);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifiHD/src/wl_definitions.h:
--------------------------------------------------------------------------------
1 | /*
2 | * wl_definitions.h
3 | *
4 | * Created on: Mar 6, 2011
5 | * Author: mlf by Metodo2 srl
6 | */
7 |
8 | #ifndef WL_DEFINITIONS_H_
9 | #define WL_DEFINITIONS_H_
10 |
11 | // Maximum size of a SSID
12 | #define WL_SSID_MAX_LENGTH 32
13 | // Length of passphrase. Valid lengths are 8-63.
14 | #define WL_WPA_KEY_MAX_LENGTH 63
15 | // Length of key in bytes. Valid values are 5 and 13.
16 | #define WL_WEP_KEY_MAX_LENGTH 13
17 | // Size of a MAC-address or BSSID
18 | #define WL_MAC_ADDR_LENGTH 6
19 | // Size of a MAC-address or BSSID
20 | #define WL_IPV4_LENGTH 4
21 | // Maximum size of a SSID list
22 | #define WL_NETWORKS_LIST_MAXNUM 10
23 | // Maxmium number of socket
24 | #define MAX_SOCK_NUM 4
25 | //Maximum number of attempts to establish wifi connection
26 | #define WL_MAX_ATTEMPT_CONNECTION 10
27 |
28 | typedef enum {
29 | WL_IDLE_STATUS,
30 | WL_NO_SSID_AVAIL,
31 | WL_SCAN_COMPLETED,
32 | WL_CONNECTED,
33 | WL_CONNECT_FAILED,
34 | WL_CONNECTION_LOST,
35 | WL_DISCONNECTED
36 | } wl_status_t;
37 |
38 |
39 | #endif /* WL_DEFINITIONS_H_ */
40 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | wifi_dnld
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 | ?name?
14 |
15 |
16 |
17 | org.eclipse.cdt.make.core.append_environment
18 | true
19 |
20 |
21 | org.eclipse.cdt.make.core.buildArguments
22 |
23 |
24 |
25 | org.eclipse.cdt.make.core.buildCommand
26 | make
27 |
28 |
29 | org.eclipse.cdt.make.core.buildLocation
30 | ${workspace_loc:/wifi_dnld/Debug}
31 |
32 |
33 | org.eclipse.cdt.make.core.contents
34 | org.eclipse.cdt.make.core.activeConfigSettings
35 |
36 |
37 | org.eclipse.cdt.make.core.enableAutoBuild
38 | false
39 |
40 |
41 | org.eclipse.cdt.make.core.enableCleanBuild
42 | true
43 |
44 |
45 | org.eclipse.cdt.make.core.enableFullBuild
46 | true
47 |
48 |
49 | org.eclipse.cdt.make.core.stopOnError
50 | true
51 |
52 |
53 | org.eclipse.cdt.make.core.useDefaultBuildCmd
54 | true
55 |
56 |
57 |
58 |
59 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
60 |
61 |
62 |
63 |
64 |
65 | com.atmel.avr32.core.nature
66 | org.eclipse.cdt.core.cnature
67 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
68 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
69 |
70 |
71 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/Release/wifi_dnld.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/Release/wifi_dnld.elf
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/Doc/SPB104 product brief.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/Doc/SPB104 product brief.pdf
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/Doc/gettingstarted.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/Doc/gettingstarted.pdf
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_cpu.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*This file is prepared for Doxygen automatic documentation generation.*/
4 | /*! \file *********************************************************************
5 | *
6 | * \brief NEWLIB_ADDONS CPU include file for AVR32.
7 | *
8 | * - Compiler: GNU GCC for AVR32
9 | * - Supported devices: All AVR32 devices can be used.
10 | * - AppNote:
11 | *
12 | * \author Atmel Corporation: http://www.atmel.com \n
13 | * Support and FAQ: http://support.atmel.no/
14 | *
15 | ******************************************************************************/
16 |
17 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
18 | *
19 | * Redistribution and use in source and binary forms, with or without
20 | * modification, are permitted provided that the following conditions are met:
21 | *
22 | * 1. Redistributions of source code must retain the above copyright notice, this
23 | * list of conditions and the following disclaimer.
24 | *
25 | * 2. Redistributions in binary form must reproduce the above copyright notice,
26 | * this list of conditions and the following disclaimer in the documentation
27 | * and/or other materials provided with the distribution.
28 | *
29 | * 3. The name of Atmel may not be used to endorse or promote products derived
30 | * from this software without specific prior written permission.
31 | *
32 | * 4. This software may only be redistributed and used in connection with an Atmel
33 | * AVR product.
34 | *
35 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
36 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
37 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
38 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
39 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
41 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
42 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
43 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
44 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
45 | *
46 | */
47 |
48 | #ifndef __AVR32_NEWLIB_ADDONS_CPU_H__
49 | #define __AVR32_NEWLIB_ADDONS_CPU_H__
50 |
51 | #include <_ansi.h>
52 |
53 | _BEGIN_STD_C
54 |
55 | #define CPU_HZ get_cpu_hz()
56 |
57 | void udelay(unsigned long usec);
58 | void set_cpu_hz(unsigned int clk_hz);
59 | unsigned int get_cpu_hz();
60 |
61 | _END_STD_C
62 |
63 | #endif
64 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arduino/ArduinoCore-avr/c8c514c9a19602542bc32c7033f48fecbbda4401/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/libnewlib_addons-at32ucr2-speed_opt.a
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*This file is prepared for Doxygen automatic documentation generation.*/
4 | /*! \file *********************************************************************
5 | *
6 | * \brief Preprocessor utils.
7 | *
8 | * - Compiler: IAR EWAVR32 and GNU GCC for AVR32
9 | * - Supported devices: All AVR32 devices can be used.
10 | *
11 | * \author Atmel Corporation: http://www.atmel.com \n
12 | * Support and FAQ: http://support.atmel.no/
13 | *
14 | ******************************************************************************/
15 |
16 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
17 | *
18 | * Redistribution and use in source and binary forms, with or without
19 | * modification, are permitted provided that the following conditions are met:
20 | *
21 | * 1. Redistributions of source code must retain the above copyright notice, this
22 | * list of conditions and the following disclaimer.
23 | *
24 | * 2. Redistributions in binary form must reproduce the above copyright notice,
25 | * this list of conditions and the following disclaimer in the documentation
26 | * and/or other materials provided with the distribution.
27 | *
28 | * 3. The name of Atmel may not be used to endorse or promote products derived
29 | * from this software without specific prior written permission.
30 | *
31 | * 4. This software may only be redistributed and used in connection with an Atmel
32 | * AVR product.
33 | *
34 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
35 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
36 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
37 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
38 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
40 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
43 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
44 | *
45 | */
46 |
47 | #ifndef _PREPROCESSOR_H_
48 | #define _PREPROCESSOR_H_
49 |
50 | #include "tpaste.h"
51 | #include "stringz.h"
52 | #include "mrepeat.h"
53 |
54 |
55 | #endif // _PREPROCESSOR_H_
56 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/clocks.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 |
31 | #ifndef CLOCKS_H
32 | #define CLOCKS_H
33 |
34 | #include "board.h"
35 |
36 |
37 | #if BOARD == EVK1100
38 | # define USE_PLL
39 | # define OSC 0
40 | # define PLL_MUL 10
41 | #elif BOARD == EVK1101
42 | # define USE_PLL
43 | # define OSC 0
44 | # define PLL_MUL 9
45 | #elif BOARD == EVK1104
46 | # define USE_PLL
47 | # define OSC 0
48 | # define PLL_MUL 9 /* for some reason we cant use 66 MHz */
49 | #elif BOARD == EVK1105
50 | # define USE_PLL
51 | # define OSC 1
52 | # define PLL_MUL 10
53 | #elif BOARD == ARDUINO
54 | # define USE_PLL
55 | # define OSC 0
56 | # define PLL_MUL 8
57 | #endif
58 |
59 | #if OSC == 0
60 | # define FOSC FOSC0 /* 12 MHz */
61 | #else
62 | # define FOSC FOSC1 /* 11.2896 MHz */
63 | #endif
64 |
65 | #ifdef USE_PLL
66 | # define FMCK_HZ ((FOSC * (PLL_MUL + 1)) / 2)
67 | #else
68 | # define FMCK_HZ FOSC
69 | #endif
70 |
71 | #define FCPU_HZ FMCK_HZ
72 | #define FHSB_HZ FCPU_HZ
73 | #define FPBB_HZ FMCK_HZ
74 | #define FPBA_HZ FMCK_HZ
75 |
76 | void init_sys_clocks(void);
77 |
78 | #endif
79 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/license.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2009, H&D Wireless AB All rights reserved.
2 |
3 | The license to use this software in whole and in part and to
4 | redistribute it in any form follows with the WiFi HW module from H&D
5 | Wireless and is granted under the following restrictions:
6 |
7 | 1. Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | 3. The name of H&D Wireless AB may not be used to endorse or promote
15 | products derived from this software without specific prior written
16 | permission.
17 |
18 | 4. The software may only be used together with hardware from H&D
19 | Wireless all other use is prohibited.
20 |
21 | 5. The license to use and redistribute the software is granted
22 | together with the purchase of a hardware platform on a one to one
23 | basis
24 |
25 | 6. The binary code may not be reversed engineered or by other means
26 | copied to circumvent this license.
27 |
28 | THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY
29 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
31 | PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT
32 | SHALL HD WIRELESS AB BE LIABLE FOR ANY DIRECT, INDIRECT,
33 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39 | OF THE POSSIBILITY OF SUCH DAMAGE.
40 |
41 | For more information regarding this software license Contact H&D
42 | Wireless AB (support@hd-wireless.se).
43 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/nor_flash.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef NOR_FLASH_H
31 | #define NOR_FLASH_H
32 |
33 | #include "at45dbx.h"
34 |
35 | #define SECTOR_SIZE AT45DBX_SECTOR_SIZE
36 |
37 | void flash_init(void);
38 | void flash_write(U32 addr, const U8* buf, U32 len);
39 | void flash_read(U32 addr, U8* buf, U32 len);
40 |
41 | #endif
42 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/printf-stdarg.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef PRINTF_STDARG_H
31 | #define PRINTF_STDARG_H
32 | #include
33 |
34 | int printk(const char *format, ...);
35 | int printk_va(char **out, const char *format, va_list args );
36 | #endif
37 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/startup.c:
--------------------------------------------------------------------------------
1 | /* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #include "startup.h"
31 | #include "pm.h"
32 | #include "intc.h"
33 | #include "board.h"
34 | #include "print_funcs.h"
35 | #include "clocks.h"
36 |
37 |
38 | static void init_exceptions(void)
39 | {
40 | extern void _evba;
41 | Set_system_register(AVR32_EVBA, (int)&_evba);
42 | Enable_global_exception();
43 | }
44 |
45 | static void init_hmatrix(void)
46 | {
47 | union {
48 | unsigned long scfg;
49 | avr32_hmatrix_scfg_t SCFG;
50 | } u_avr32_hmatrix_scfg = {
51 | AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH]
52 | };
53 | u_avr32_hmatrix_scfg.SCFG.defmstr_type =
54 | AVR32_HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT;
55 | AVR32_HMATRIX.scfg[AVR32_HMATRIX_SLAVE_FLASH] =
56 | u_avr32_hmatrix_scfg.scfg;
57 | }
58 |
59 | static void init_interrupts(void)
60 | {
61 | INTC_init_interrupts();
62 |
63 | //initExtInt();
64 |
65 | Enable_global_interrupt();
66 | }
67 |
68 | void startup_init(void)
69 | {
70 | init_exceptions();
71 | init_hmatrix();
72 | init_sys_clocks();
73 | init_interrupts();
74 | init_dbg_rs232(FPBA_HZ);
75 | }
76 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifi_dnld/src/startup.h:
--------------------------------------------------------------------------------
1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */
2 |
3 | /*! \page License
4 | * Copyright (C) 2009, H&D Wireless AB All rights reserved.
5 | *
6 | * Redistribution and use in source and binary forms, with or without
7 | * modification, are permitted provided that the following conditions are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright notice,
10 | * this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright notice,
13 | * this list of conditions and the following disclaimer in the documentation
14 | * and/or other materials provided with the distribution.
15 | *
16 | * 3. The name of H&D Wireless AB may not be used to endorse or promote products derived
17 | * from this software without specific prior written permission.
18 | *
19 | * THIS SOFTWARE IS PROVIDED BY H&D WIRELESS AB ``AS IS'' AND ANY EXPRESS OR IMPLIED
20 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
22 | * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
23 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 | #ifndef STARTUP_H
31 | #define STARTUP_H
32 |
33 | void startup_init(void);
34 |
35 | #endif
36 |
--------------------------------------------------------------------------------
/firmwares/wifishield/wifishield.atsln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Atmel Studio Solution File, Format Version 11.00
4 | Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "wifi_dnld", "wifi_dnld\wifi_dnld.cproj", "{EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}"
5 | EndProject
6 | Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "wifiHD", "wifiHD\wifiHD.cproj", "{417E15DB-488A-4B56-8D4E-FBE832B2B649}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug_512|AVR = Debug_512|AVR
11 | Debug|AVR = Debug|AVR
12 | Release_512|AVR = Release_512|AVR
13 | Release|AVR = Release|AVR
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug_512|AVR.ActiveCfg = Debug|AVR
17 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug_512|AVR.Build.0 = Debug|AVR
18 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug|AVR.ActiveCfg = Debug|AVR
19 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Debug|AVR.Build.0 = Debug|AVR
20 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release_512|AVR.ActiveCfg = Release|AVR
21 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release_512|AVR.Build.0 = Release|AVR
22 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release|AVR.ActiveCfg = Release|AVR
23 | {EB9606BC-DE32-4EDD-9CDA-AE3BF36977A2}.Release|AVR.Build.0 = Release|AVR
24 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug_512|AVR.ActiveCfg = Debug_512|AVR
25 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug_512|AVR.Build.0 = Debug_512|AVR
26 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug|AVR.ActiveCfg = Debug|AVR
27 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Debug|AVR.Build.0 = Debug|AVR
28 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release_512|AVR.ActiveCfg = Release_512|AVR
29 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release_512|AVR.Build.0 = Release_512|AVR
30 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release|AVR.ActiveCfg = Release|AVR
31 | {417E15DB-488A-4B56-8D4E-FBE832B2B649}.Release|AVR.Build.0 = Release|AVR
32 | EndGlobalSection
33 | GlobalSection(SolutionProperties) = preSolution
34 | HideSolutionNode = FALSE
35 | EndGlobalSection
36 | EndGlobal
37 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * EEPROM Clear
3 | *
4 | * Sets all of the bytes of the EEPROM to 0.
5 | * Please see eeprom_iteration for a more in depth
6 | * look at how to traverse the EEPROM.
7 | *
8 | * This example code is in the public domain.
9 | */
10 |
11 | #include
12 |
13 | void setup() {
14 | // initialize the LED pin as an output.
15 | pinMode(13, OUTPUT);
16 |
17 | /***
18 | Iterate through each byte of the EEPROM storage.
19 |
20 | Larger AVR processors have larger EEPROM sizes, E.g:
21 | - Arduino Duemilanove: 512 B EEPROM storage.
22 | - Arduino Uno: 1 kB EEPROM storage.
23 | - Arduino Mega: 4 kB EEPROM storage.
24 |
25 | Rather than hard-coding the length, you should use the pre-provided length function.
26 | This will make your code portable to all AVR processors.
27 | ***/
28 |
29 | for (int i = 0 ; i < EEPROM.length() ; i++) {
30 | EEPROM.write(i, 0);
31 | }
32 |
33 | // turn the LED on when we're done
34 | digitalWrite(13, HIGH);
35 | }
36 |
37 | void loop() {
38 | /** Empty loop. **/
39 | }
40 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_crc/eeprom_crc.ino:
--------------------------------------------------------------------------------
1 | /***
2 | Written by Christopher Andrews.
3 | CRC algorithm generated by pycrc, MIT licence ( https://github.com/tpircher/pycrc ).
4 |
5 | A CRC is a simple way of checking whether data has changed or become corrupted.
6 | This example calculates a CRC value directly on the EEPROM values.
7 | The purpose of this example is to highlight how the EEPROM object can be used just like an array.
8 | ***/
9 |
10 | #include
11 | #include
12 |
13 | void setup() {
14 |
15 | //Start serial
16 | Serial.begin(9600);
17 | while (!Serial) {
18 | ; // wait for serial port to connect. Needed for native USB port only
19 | }
20 |
21 | //Print length of data to run CRC on.
22 | Serial.print("EEPROM length: ");
23 | Serial.println(EEPROM.length());
24 |
25 | //Print the result of calling eeprom_crc()
26 | Serial.print("CRC32 of EEPROM data: 0x");
27 | Serial.println(eeprom_crc(), HEX);
28 | Serial.print("\n\nDone!");
29 | }
30 |
31 | void loop() {
32 | /* Empty loop */
33 | }
34 |
35 | unsigned long eeprom_crc(void) {
36 |
37 | const unsigned long crc_table[16] = {
38 | 0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac,
39 | 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c,
40 | 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c,
41 | 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c
42 | };
43 |
44 | unsigned long crc = ~0L;
45 |
46 | for (int index = 0 ; index < EEPROM.length() ; ++index) {
47 | crc = crc_table[(crc ^ EEPROM[index]) & 0x0f] ^ (crc >> 4);
48 | crc = crc_table[(crc ^ (EEPROM[index] >> 4)) & 0x0f] ^ (crc >> 4);
49 | crc = ~crc;
50 | }
51 | return crc;
52 | }
53 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_get/eeprom_get.ino:
--------------------------------------------------------------------------------
1 | /***
2 | eeprom_get example.
3 |
4 | This shows how to use the EEPROM.get() method.
5 |
6 | To pre-set the EEPROM data, run the example sketch eeprom_put.
7 | This sketch will run without it, however, the values shown
8 | will be shown from what ever is already on the EEPROM.
9 |
10 | This may cause the serial object to print out a large string
11 | of garbage if there is no null character inside one of the strings
12 | loaded.
13 |
14 | Written by Christopher Andrews 2015
15 | Released under MIT licence.
16 | ***/
17 |
18 | #include
19 |
20 | void setup() {
21 |
22 | float f = 0.00f; //Variable to store data read from EEPROM.
23 | int eeAddress = 0; //EEPROM address to start reading from
24 |
25 | Serial.begin(9600);
26 | while (!Serial) {
27 | ; // wait for serial port to connect. Needed for native USB port only
28 | }
29 | Serial.print("Read float from EEPROM: ");
30 |
31 | //Get the float data from the EEPROM at position 'eeAddress'
32 | EEPROM.get(eeAddress, f);
33 | Serial.println(f, 3); //This may print 'ovf, nan' if the data inside the EEPROM is not a valid float.
34 |
35 | /***
36 | As get also returns a reference to 'f', you can use it inline.
37 | E.g: Serial.print( EEPROM.get( eeAddress, f ) );
38 | ***/
39 |
40 | /***
41 | Get can be used with custom structures too.
42 | I have separated this into an extra function.
43 | ***/
44 |
45 | secondTest(); //Run the next test.
46 | }
47 |
48 | struct MyObject {
49 | float field1;
50 | byte field2;
51 | char name[10];
52 | };
53 |
54 | void secondTest() {
55 | int eeAddress = sizeof(float); //Move address to the next byte after float 'f'.
56 |
57 | MyObject customVar; //Variable to store custom object read from EEPROM.
58 | EEPROM.get(eeAddress, customVar);
59 |
60 | Serial.println("Read custom object from EEPROM: ");
61 | Serial.println(customVar.field1);
62 | Serial.println(customVar.field2);
63 | Serial.println(customVar.name);
64 | }
65 |
66 | void loop() {
67 | /* Empty loop */
68 | }
69 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_iteration/eeprom_iteration.ino:
--------------------------------------------------------------------------------
1 | /***
2 | eeprom_iteration example.
3 |
4 | A set of example snippets highlighting the
5 | simplest methods for traversing the EEPROM.
6 |
7 | Running this sketch is not necessary, this is
8 | simply highlighting certain programming methods.
9 |
10 | Written by Christopher Andrews 2015
11 | Released under MIT licence.
12 | ***/
13 |
14 | #include
15 |
16 | void setup() {
17 |
18 | /***
19 | Iterate the EEPROM using a for loop.
20 | ***/
21 |
22 | for (int index = 0 ; index < EEPROM.length() ; index++) {
23 |
24 | //Add one to each cell in the EEPROM
25 | EEPROM[ index ] += 1;
26 | }
27 |
28 | /***
29 | Iterate the EEPROM using a while loop.
30 | ***/
31 |
32 | int index = 0;
33 |
34 | while (index < EEPROM.length()) {
35 |
36 | //Add one to each cell in the EEPROM
37 | EEPROM[ index ] += 1;
38 | index++;
39 | }
40 |
41 | /***
42 | Iterate the EEPROM using a do-while loop.
43 | ***/
44 |
45 | int idx = 0; //Used 'idx' to avoid name conflict with 'index' above.
46 |
47 | do {
48 |
49 | //Add one to each cell in the EEPROM
50 | EEPROM[ idx ] += 1;
51 | idx++;
52 | } while (idx < EEPROM.length());
53 |
54 |
55 | } //End of setup function.
56 |
57 | void loop() {}
58 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_put/eeprom_put.ino:
--------------------------------------------------------------------------------
1 | /***
2 | eeprom_put example.
3 |
4 | This shows how to use the EEPROM.put() method.
5 | Also, this sketch will pre-set the EEPROM data for the
6 | example sketch eeprom_get.
7 |
8 | Note, unlike the single byte version EEPROM.write(),
9 | the put method will use update semantics. As in a byte
10 | will only be written to the EEPROM if the data is actually
11 | different.
12 |
13 | Written by Christopher Andrews 2015
14 | Released under MIT licence.
15 | ***/
16 |
17 | #include
18 |
19 | struct MyObject {
20 | float field1;
21 | byte field2;
22 | char name[10];
23 | };
24 |
25 | void setup() {
26 |
27 | Serial.begin(9600);
28 | while (!Serial) {
29 | ; // wait for serial port to connect. Needed for native USB port only
30 | }
31 |
32 | float f = 123.456f; //Variable to store in EEPROM.
33 | int eeAddress = 0; //Location we want the data to be put.
34 |
35 |
36 | //One simple call, with the address first and the object second.
37 | EEPROM.put(eeAddress, f);
38 |
39 | Serial.println("Written float data type!");
40 |
41 | /** Put is designed for use with custom structures also. **/
42 |
43 | //Data to store.
44 | MyObject customVar = {
45 | 3.14f,
46 | 65,
47 | "Working!"
48 | };
49 |
50 | eeAddress += sizeof(float); //Move address to the next byte after float 'f'.
51 |
52 | EEPROM.put(eeAddress, customVar);
53 | Serial.print("Written custom data type! \n\nView the example sketch eeprom_get to see how you can retrieve the values!");
54 | }
55 |
56 | void loop() {
57 | /* Empty loop */
58 | }
59 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_read/eeprom_read.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * EEPROM Read
3 | *
4 | * Reads the value of each byte of the EEPROM and prints it
5 | * to the computer.
6 | * This example code is in the public domain.
7 | */
8 |
9 | #include
10 |
11 | // start reading from the first byte (address 0) of the EEPROM
12 | int address = 0;
13 | byte value;
14 |
15 | void setup() {
16 | // initialize serial and wait for port to open:
17 | Serial.begin(9600);
18 | while (!Serial) {
19 | ; // wait for serial port to connect. Needed for native USB port only
20 | }
21 | }
22 |
23 | void loop() {
24 | // read a byte from the current address of the EEPROM
25 | value = EEPROM.read(address);
26 |
27 | Serial.print(address);
28 | Serial.print("\t");
29 | Serial.print(value, DEC);
30 | Serial.println();
31 |
32 | /***
33 | Advance to the next address, when at the end restart at the beginning.
34 |
35 | Larger AVR processors have larger EEPROM sizes, E.g:
36 | - Arduino Duemilanove: 512 B EEPROM storage.
37 | - Arduino Uno: 1 kB EEPROM storage.
38 | - Arduino Mega: 4 kB EEPROM storage.
39 |
40 | Rather than hard-coding the length, you should use the pre-provided length function.
41 | This will make your code portable to all AVR processors.
42 | ***/
43 | address = address + 1;
44 | if (address == EEPROM.length()) {
45 | address = 0;
46 | }
47 |
48 | /***
49 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
50 | EEPROM address is also doable by a bitwise and of the length - 1.
51 |
52 | ++address &= EEPROM.length() - 1;
53 | ***/
54 |
55 | delay(500);
56 | }
57 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_update/eeprom_update.ino:
--------------------------------------------------------------------------------
1 | /***
2 | EEPROM Update method
3 |
4 | Stores values read from analog input 0 into the EEPROM.
5 | These values will stay in the EEPROM when the board is
6 | turned off and may be retrieved later by another sketch.
7 |
8 | If a value has not changed in the EEPROM, it is not overwritten
9 | which would reduce the life span of the EEPROM unnecessarily.
10 |
11 | Released using MIT licence.
12 | ***/
13 |
14 | #include
15 |
16 | /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/
17 | int address = 0;
18 |
19 | void setup() {
20 | /** Empty setup **/
21 | }
22 |
23 | void loop() {
24 | /***
25 | need to divide by 4 because analog inputs range from
26 | 0 to 1023 and each byte of the EEPROM can only hold a
27 | value from 0 to 255.
28 | ***/
29 | int val = analogRead(0) / 4;
30 |
31 | /***
32 | Update the particular EEPROM cell.
33 | these values will remain there when the board is
34 | turned off.
35 | ***/
36 | EEPROM.update(address, val);
37 |
38 | /***
39 | The function EEPROM.update(address, val) is equivalent to the following:
40 |
41 | if( EEPROM.read(address) != val ){
42 | EEPROM.write(address, val);
43 | }
44 | ***/
45 |
46 |
47 | /***
48 | Advance to the next address, when at the end restart at the beginning.
49 |
50 | Larger AVR processors have larger EEPROM sizes, E.g:
51 | - Arduino Duemilanove: 512 B EEPROM storage.
52 | - Arduino Uno: 1 kB EEPROM storage.
53 | - Arduino Mega: 4 kB EEPROM storage.
54 |
55 | Rather than hard-coding the length, you should use the pre-provided length function.
56 | This will make your code portable to all AVR processors.
57 | ***/
58 | address = address + 1;
59 | if (address == EEPROM.length()) {
60 | address = 0;
61 | }
62 |
63 | /***
64 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
65 | EEPROM address is also doable by a bitwise and of the length - 1.
66 |
67 | ++address &= EEPROM.length() - 1;
68 | ***/
69 |
70 | delay(100);
71 | }
72 |
--------------------------------------------------------------------------------
/libraries/EEPROM/examples/eeprom_write/eeprom_write.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * EEPROM Write
3 | *
4 | * Stores values read from analog input 0 into the EEPROM.
5 | * These values will stay in the EEPROM when the board is
6 | * turned off and may be retrieved later by another sketch.
7 | */
8 |
9 | #include
10 |
11 | /** the current address in the EEPROM (i.e. which byte we're going to write to next) **/
12 | int addr = 0;
13 |
14 | void setup() {
15 | /** Empty setup. **/
16 | }
17 |
18 | void loop() {
19 | /***
20 | Need to divide by 4 because analog inputs range from
21 | 0 to 1023 and each byte of the EEPROM can only hold a
22 | value from 0 to 255.
23 | ***/
24 |
25 | int val = analogRead(0) / 4;
26 |
27 | /***
28 | Write the value to the appropriate byte of the EEPROM.
29 | these values will remain there when the board is
30 | turned off.
31 | ***/
32 |
33 | EEPROM.write(addr, val);
34 |
35 | /***
36 | Advance to the next address, when at the end restart at the beginning.
37 |
38 | Larger AVR processors have larger EEPROM sizes, E.g:
39 | - Arduino Duemilanove: 512 B EEPROM storage.
40 | - Arduino Uno: 1 kB EEPROM storage.
41 | - Arduino Mega: 4 kB EEPROM storage.
42 |
43 | Rather than hard-coding the length, you should use the pre-provided length function.
44 | This will make your code portable to all AVR processors.
45 | ***/
46 | addr = addr + 1;
47 | if (addr == EEPROM.length()) {
48 | addr = 0;
49 | }
50 |
51 | /***
52 | As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
53 | EEPROM address is also doable by a bitwise and of the length - 1.
54 |
55 | ++addr &= EEPROM.length() - 1;
56 | ***/
57 |
58 |
59 | delay(100);
60 | }
61 |
--------------------------------------------------------------------------------
/libraries/EEPROM/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Syntax Coloring Map For EEPROM
3 | #######################################
4 |
5 | #######################################
6 | # Datatypes (KEYWORD1)
7 | #######################################
8 |
9 | EEPROM KEYWORD1
10 | EERef KEYWORD1
11 | EEPtr KEYWORD2
12 |
13 | #######################################
14 | # Methods and Functions (KEYWORD2)
15 | #######################################
16 |
17 | update KEYWORD2
18 |
19 | #######################################
20 | # Constants (LITERAL1)
21 | #######################################
22 |
23 |
--------------------------------------------------------------------------------
/libraries/EEPROM/library.properties:
--------------------------------------------------------------------------------
1 | name=EEPROM
2 | version=2.0
3 | author=Arduino, Christopher Andrews
4 | maintainer=Arduino
5 | sentence=Enables reading and writing to the permanent board storage.
6 | paragraph=This library allows to read and write data in a memory type, the EEPROM, that keeps its content also when the board is powered off. The amount of EEPROM available depends on the microcontroller type.
7 | category=Data Storage
8 | url=http://www.arduino.cc/en/Reference/EEPROM
9 | architectures=avr
10 |
11 |
--------------------------------------------------------------------------------
/libraries/HID/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Syntax Coloring Map For HID
3 | #######################################
4 |
5 | #######################################
6 | # Datatypes (KEYWORD1)
7 | #######################################
8 |
9 | HID KEYWORD1
10 |
11 | #######################################
12 | # Methods and Functions (KEYWORD2)
13 | #######################################
14 | begin KEYWORD2
15 | SendReport KEYWORD2
16 | AppendDescriptor KEYWORD2
17 |
18 | #######################################
19 | # Constants (LITERAL1)
20 | #######################################
21 | HID_TX LITERAL1
--------------------------------------------------------------------------------
/libraries/HID/library.properties:
--------------------------------------------------------------------------------
1 | name=HID
2 | version=1.0
3 | author=Arduino
4 | maintainer=Arduino
5 | sentence=Module for PluggableUSB infrastructure. Exposes an API for devices like Keyboards, Mice and Gamepads.
6 | paragraph=
7 | category=Communication
8 | url=http://www.arduino.cc/en/Reference/HID
9 | architectures=avr
10 |
--------------------------------------------------------------------------------
/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino:
--------------------------------------------------------------------------------
1 | /*
2 | Digital Pot Control
3 |
4 | This example controls an Analog Devices AD5206 digital potentiometer.
5 | The AD5206 has 6 potentiometer channels. Each channel's pins are labeled
6 | A - connect this to voltage
7 | W - this is the pot's wiper, which changes when you set it
8 | B - connect this to ground.
9 |
10 | The AD5206 is SPI-compatible,and to command it, you send two bytes,
11 | one with the channel number (0 - 5) and one with the resistance value for the
12 | channel (0 - 255).
13 |
14 | The circuit:
15 | * All A pins of AD5206 connected to +5V
16 | * All B pins of AD5206 connected to ground
17 | * An LED and a 220-ohm resistor in series connected from each W pin to ground
18 | * CS - to digital pin 10 (SS pin)
19 | * SDI - to digital pin 11 (MOSI pin)
20 | * CLK - to digital pin 13 (SCK pin)
21 |
22 | created 10 Aug 2010
23 | by Tom Igoe
24 |
25 | Thanks to Heather Dewey-Hagborg for the original tutorial, 2005
26 |
27 | */
28 |
29 |
30 | // include the SPI library:
31 | #include
32 |
33 |
34 | // set pin 10 as the slave select for the digital pot:
35 | const int slaveSelectPin = 10;
36 |
37 | void setup() {
38 | // set the slaveSelectPin as an output:
39 | pinMode(slaveSelectPin, OUTPUT);
40 | // initialize SPI:
41 | SPI.begin();
42 | }
43 |
44 | void loop() {
45 | // go through the six channels of the digital pot:
46 | for (int channel = 0; channel < 6; channel++) {
47 | // change the resistance on this channel from min to max:
48 | for (int level = 0; level < 255; level++) {
49 | digitalPotWrite(channel, level);
50 | delay(10);
51 | }
52 | // wait a second at the top:
53 | delay(100);
54 | // change the resistance on this channel from max to min:
55 | for (int level = 0; level < 255; level++) {
56 | digitalPotWrite(channel, 255 - level);
57 | delay(10);
58 | }
59 | }
60 |
61 | }
62 |
63 | void digitalPotWrite(int address, int value) {
64 | // take the SS pin low to select the chip:
65 | digitalWrite(slaveSelectPin, LOW);
66 | delay(100);
67 | // send in the address and value via SPI:
68 | SPI.transfer(address);
69 | SPI.transfer(value);
70 | delay(100);
71 | // take the SS pin high to de-select the chip:
72 | digitalWrite(slaveSelectPin, HIGH);
73 | }
74 |
--------------------------------------------------------------------------------
/libraries/SPI/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Syntax Coloring Map For SPI
3 | #######################################
4 |
5 | #######################################
6 | # Datatypes (KEYWORD1)
7 | #######################################
8 |
9 | SPI KEYWORD1
10 |
11 | #######################################
12 | # Methods and Functions (KEYWORD2)
13 | #######################################
14 | begin KEYWORD2
15 | end KEYWORD2
16 | transfer KEYWORD2
17 | setBitOrder KEYWORD2
18 | setDataMode KEYWORD2
19 | setClockDivider KEYWORD2
20 |
21 |
22 | #######################################
23 | # Constants (LITERAL1)
24 | #######################################
25 | SPI_CLOCK_DIV4 LITERAL1
26 | SPI_CLOCK_DIV16 LITERAL1
27 | SPI_CLOCK_DIV64 LITERAL1
28 | SPI_CLOCK_DIV128 LITERAL1
29 | SPI_CLOCK_DIV2 LITERAL1
30 | SPI_CLOCK_DIV8 LITERAL1
31 | SPI_CLOCK_DIV32 LITERAL1
32 | SPI_CLOCK_DIV64 LITERAL1
33 | SPI_MODE0 LITERAL1
34 | SPI_MODE1 LITERAL1
35 | SPI_MODE2 LITERAL1
36 | SPI_MODE3 LITERAL1
--------------------------------------------------------------------------------
/libraries/SPI/library.properties:
--------------------------------------------------------------------------------
1 | name=SPI
2 | version=1.0
3 | author=Arduino
4 | maintainer=Arduino
5 | sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus.
6 | paragraph=SPI is a synchronous serial data protocol used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. It uses three lines common to all devices (MISO, MOSI and SCK) and one specific for each device.
7 | category=Communication
8 | url=http://www.arduino.cc/en/Reference/SPI
9 | architectures=avr
10 |
11 |
--------------------------------------------------------------------------------
/libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino:
--------------------------------------------------------------------------------
1 | /*
2 | Software serial multiple serial test
3 |
4 | Receives from the hardware serial, sends to software serial.
5 | Receives from software serial, sends to hardware serial.
6 |
7 | The circuit:
8 | * RX is digital pin 10 (connect to TX of other device)
9 | * TX is digital pin 11 (connect to RX of other device)
10 |
11 | Note:
12 | Not all pins on the Mega and Mega 2560 support change interrupts,
13 | so only the following can be used for RX:
14 | 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
15 |
16 | Not all pins on the Leonardo and Micro support change interrupts,
17 | so only the following can be used for RX:
18 | 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
19 |
20 | created back in the mists of time
21 | modified 25 May 2012
22 | by Tom Igoe
23 | based on Mikal Hart's example
24 |
25 | This example code is in the public domain.
26 |
27 | */
28 | #include
29 |
30 | SoftwareSerial mySerial(10, 11); // RX, TX
31 |
32 | void setup() {
33 | // Open serial communications and wait for port to open:
34 | Serial.begin(57600);
35 | while (!Serial) {
36 | ; // wait for serial port to connect. Needed for native USB port only
37 | }
38 |
39 |
40 | Serial.println("Goodnight moon!");
41 |
42 | // set the data rate for the SoftwareSerial port
43 | mySerial.begin(4800);
44 | mySerial.println("Hello, world?");
45 | }
46 |
47 | void loop() { // run over and over
48 | if (mySerial.available()) {
49 | Serial.write(mySerial.read());
50 | }
51 | if (Serial.available()) {
52 | mySerial.write(Serial.read());
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino:
--------------------------------------------------------------------------------
1 | /*
2 | Software serial multiple serial test
3 |
4 | Receives from the two software serial ports,
5 | sends to the hardware serial port.
6 |
7 | In order to listen on a software port, you call port.listen().
8 | When using two software serial ports, you have to switch ports
9 | by listen()ing on each one in turn. Pick a logical time to switch
10 | ports, like the end of an expected transmission, or when the
11 | buffer is empty. This example switches ports when there is nothing
12 | more to read from a port
13 |
14 | The circuit:
15 | Two devices which communicate serially are needed.
16 | * First serial device's TX attached to digital pin 10(RX), RX to pin 11(TX)
17 | * Second serial device's TX attached to digital pin 8(RX), RX to pin 9(TX)
18 |
19 | Note:
20 | Not all pins on the Mega and Mega 2560 support change interrupts,
21 | so only the following can be used for RX:
22 | 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
23 |
24 | Not all pins on the Leonardo support change interrupts,
25 | so only the following can be used for RX:
26 | 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
27 |
28 | created 18 Apr. 2011
29 | modified 19 March 2016
30 | by Tom Igoe
31 | based on Mikal Hart's twoPortRXExample
32 |
33 | This example code is in the public domain.
34 |
35 | */
36 |
37 | #include
38 | // software serial #1: RX = digital pin 10, TX = digital pin 11
39 | SoftwareSerial portOne(10, 11);
40 |
41 | // software serial #2: RX = digital pin 8, TX = digital pin 9
42 | // on the Mega, use other pins instead, since 8 and 9 don't work on the Mega
43 | SoftwareSerial portTwo(8, 9);
44 |
45 | void setup() {
46 | // Open serial communications and wait for port to open:
47 | Serial.begin(9600);
48 | while (!Serial) {
49 | ; // wait for serial port to connect. Needed for native USB port only
50 | }
51 |
52 |
53 | // Start each software serial port
54 | portOne.begin(9600);
55 | portTwo.begin(9600);
56 | }
57 |
58 | void loop() {
59 | // By default, the last initialized port is listening.
60 | // when you want to listen on a port, explicitly select it:
61 | portOne.listen();
62 | Serial.println("Data from port one:");
63 | // while there is data coming in, read it
64 | // and send to the hardware serial port:
65 | while (portOne.available() > 0) {
66 | char inByte = portOne.read();
67 | Serial.write(inByte);
68 | }
69 |
70 | // blank line to separate data from the two ports:
71 | Serial.println();
72 |
73 | // Now listen on the second port
74 | portTwo.listen();
75 | // while there is data coming in, read it
76 | // and send to the hardware serial port:
77 | Serial.println("Data from port two:");
78 | while (portTwo.available() > 0) {
79 | char inByte = portTwo.read();
80 | Serial.write(inByte);
81 | }
82 |
83 | // blank line to separate data from the two ports:
84 | Serial.println();
85 | }
86 |
--------------------------------------------------------------------------------
/libraries/SoftwareSerial/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Syntax Coloring Map for SoftwareSerial
3 | # (formerly NewSoftSerial)
4 | #######################################
5 |
6 | #######################################
7 | # Datatypes (KEYWORD1)
8 | #######################################
9 |
10 | SoftwareSerial KEYWORD1
11 |
12 | #######################################
13 | # Methods and Functions (KEYWORD2)
14 | #######################################
15 |
16 | begin KEYWORD2
17 | end KEYWORD2
18 | read KEYWORD2
19 | write KEYWORD2
20 | available KEYWORD2
21 | isListening KEYWORD2
22 | overflow KEYWORD2
23 | flush KEYWORD2
24 | listen KEYWORD2
25 | peek KEYWORD2
26 |
27 | #######################################
28 | # Constants (LITERAL1)
29 | #######################################
30 |
31 |
--------------------------------------------------------------------------------
/libraries/SoftwareSerial/library.properties:
--------------------------------------------------------------------------------
1 | name=SoftwareSerial
2 | version=1.0
3 | author=Arduino
4 | maintainer=Arduino
5 | sentence=Enables serial communication on any digital pin.
6 | paragraph=The SoftwareSerial library has been developed to allow serial communication on any digital pin of the board, using software to replicate the functionality of the hardware UART. It is possible to have multiple software serial ports with speeds up to 115200 bps.
7 | category=Communication
8 | url=http://www.arduino.cc/en/Reference/SoftwareSerial
9 | architectures=avr
10 |
11 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino:
--------------------------------------------------------------------------------
1 | // I2C Digital Potentiometer
2 | // by Nicholas Zambetti
3 | // and Shawn Bonkowski
4 |
5 | // Demonstrates use of the Wire library
6 | // Controls AD5171 digital potentiometer via I2C/TWI
7 |
8 | // Created 31 March 2006
9 |
10 | // This example code is in the public domain.
11 |
12 |
13 | #include
14 |
15 | void setup() {
16 | Wire.begin(); // join I2C bus (address optional for master)
17 | }
18 |
19 | byte val = 0;
20 |
21 | void loop() {
22 | Wire.beginTransmission(44); // transmit to device #44 (0x2c)
23 | // device address is specified in datasheet
24 | Wire.write(byte(0x00)); // sends instruction byte
25 | Wire.write(val); // sends potentiometer value byte
26 | Wire.endTransmission(); // stop transmitting
27 |
28 | val++; // increment value
29 | if (val == 64) { // if reached 64th position (max)
30 | val = 0; // start over from lowest value
31 | }
32 | delay(500);
33 | }
34 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino:
--------------------------------------------------------------------------------
1 | // --------------------------------------
2 | // i2c_scanner
3 | //
4 | // Version 1
5 | // This program (or code that looks like it)
6 | // can be found in many places.
7 | // For example on the Arduino.cc forum.
8 | // The original author is not known.
9 | // Version 2, June 2012, Using Arduino 1.0.1
10 | // Adapted to be as simple as possible by Arduino.cc user Krodal
11 | // Version 3, Feb 26 2013
12 | // V3 by louarnold
13 | // Version 4, March 3, 2013, Using Arduino 1.0.3
14 | // by Arduino.cc user Krodal.
15 | // Changes by louarnold removed.
16 | // Scanning addresses changed from 0...127 to 1...119,
17 | // according to the i2c scanner by Nick Gammon
18 | // https://www.gammon.com.au/forum/?id=10896
19 | // Version 5, March 28, 2013
20 | // As version 4, but address scans now to 127.
21 | // A sensor seems to use address 120.
22 | // Version 6, November 27, 2015.
23 | // Added waiting for the Leonardo serial communication.
24 | //
25 | //
26 | // This sketch tests the standard 7-bit addresses
27 | // Devices with higher bit address might not be seen properly.
28 | //
29 |
30 | #include
31 |
32 | void setup() {
33 | Wire.begin();
34 |
35 | Serial.begin(9600);
36 | while (!Serial); // Leonardo: wait for Serial Monitor
37 | Serial.println("\nI2C Scanner");
38 | }
39 |
40 | void loop() {
41 | int nDevices = 0;
42 |
43 | Serial.println("Scanning...");
44 |
45 | for (byte address = 1; address < 127; ++address) {
46 | // The i2c_scanner uses the return value of
47 | // the Wire.endTransmission to see if
48 | // a device did acknowledge to the address.
49 | Wire.beginTransmission(address);
50 | byte error = Wire.endTransmission();
51 |
52 | if (error == 0) {
53 | Serial.print("I2C device found at address 0x");
54 | if (address < 16) {
55 | Serial.print("0");
56 | }
57 | Serial.print(address, HEX);
58 | Serial.println(" !");
59 |
60 | ++nDevices;
61 | } else if (error == 4) {
62 | Serial.print("Unknown error at address 0x");
63 | if (address < 16) {
64 | Serial.print("0");
65 | }
66 | Serial.println(address, HEX);
67 | }
68 | }
69 | if (nDevices == 0) {
70 | Serial.println("No I2C devices found\n");
71 | } else {
72 | Serial.println("done\n");
73 | }
74 | delay(5000); // Wait 5 seconds for next scan
75 | }
76 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/master_reader/master_reader.ino:
--------------------------------------------------------------------------------
1 | // Wire Master Reader
2 | // by Nicholas Zambetti
3 |
4 | // Demonstrates use of the Wire library
5 | // Reads data from an I2C/TWI slave device
6 | // Refer to the "Wire Slave Sender" example for use with this
7 |
8 | // Created 29 March 2006
9 |
10 | // This example code is in the public domain.
11 |
12 |
13 | #include
14 |
15 | void setup() {
16 | Wire.begin(); // join I2C bus (address optional for master)
17 | Serial.begin(9600); // start serial for output
18 | }
19 |
20 | void loop() {
21 | Wire.requestFrom(8, 6); // request 6 bytes from slave device #8
22 |
23 | while (Wire.available()) { // slave may send less than requested
24 | char c = Wire.read(); // receive a byte as character
25 | Serial.print(c); // print the character
26 | }
27 |
28 | delay(500);
29 | }
30 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/master_writer/master_writer.ino:
--------------------------------------------------------------------------------
1 | // Wire Master Writer
2 | // by Nicholas Zambetti
3 |
4 | // Demonstrates use of the Wire library
5 | // Writes data to an I2C/TWI slave device
6 | // Refer to the "Wire Slave Receiver" example for use with this
7 |
8 | // Created 29 March 2006
9 |
10 | // This example code is in the public domain.
11 |
12 |
13 | #include
14 |
15 | void setup() {
16 | Wire.begin(); // join I2C bus (address optional for master)
17 | }
18 |
19 | byte x = 0;
20 |
21 | void loop() {
22 | Wire.beginTransmission(8); // transmit to device #8
23 | Wire.write("x is "); // sends five bytes
24 | Wire.write(x); // sends one byte
25 | Wire.endTransmission(); // stop transmitting
26 |
27 | x++;
28 | delay(500);
29 | }
30 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/slave_receiver/slave_receiver.ino:
--------------------------------------------------------------------------------
1 | // Wire Slave Receiver
2 | // by Nicholas Zambetti
3 |
4 | // Demonstrates use of the Wire library
5 | // Receives data as an I2C/TWI slave device
6 | // Refer to the "Wire Master Writer" example for use with this
7 |
8 | // Created 29 March 2006
9 |
10 | // This example code is in the public domain.
11 |
12 |
13 | #include
14 |
15 | void setup() {
16 | Wire.begin(8); // join I2C bus with address #8
17 | Wire.onReceive(receiveEvent); // register event
18 | Serial.begin(9600); // start serial for output
19 | }
20 |
21 | void loop() {
22 | delay(100);
23 | }
24 |
25 | // function that executes whenever data is received from master
26 | // this function is registered as an event, see setup()
27 | void receiveEvent(int howMany) {
28 | while (1 < Wire.available()) { // loop through all but the last
29 | char c = Wire.read(); // receive byte as a character
30 | Serial.print(c); // print the character
31 | }
32 | int x = Wire.read(); // receive byte as an integer
33 | Serial.println(x); // print the integer
34 | }
35 |
--------------------------------------------------------------------------------
/libraries/Wire/examples/slave_sender/slave_sender.ino:
--------------------------------------------------------------------------------
1 | // Wire Slave Sender
2 | // by Nicholas Zambetti
3 |
4 | // Demonstrates use of the Wire library
5 | // Sends data as an I2C/TWI slave device
6 | // Refer to the "Wire Master Reader" example for use with this
7 |
8 | // Created 29 March 2006
9 |
10 | // This example code is in the public domain.
11 |
12 |
13 | #include
14 |
15 | void setup() {
16 | Wire.begin(8); // join I2C bus with address #8
17 | Wire.onRequest(requestEvent); // register event
18 | }
19 |
20 | void loop() {
21 | delay(100);
22 | }
23 |
24 | // function that executes whenever data is requested by master
25 | // this function is registered as an event, see setup()
26 | void requestEvent() {
27 | Wire.write("hello "); // respond with message of 6 bytes
28 | // as expected by master
29 | }
30 |
--------------------------------------------------------------------------------
/libraries/Wire/keywords.txt:
--------------------------------------------------------------------------------
1 | #######################################
2 | # Syntax Coloring Map For Wire
3 | #######################################
4 |
5 | #######################################
6 | # Datatypes (KEYWORD1)
7 | #######################################
8 |
9 | Wire KEYWORD1
10 |
11 | #######################################
12 | # Methods and Functions (KEYWORD2)
13 | #######################################
14 |
15 | begin KEYWORD2
16 | setClock KEYWORD2
17 | beginTransmission KEYWORD2
18 | endTransmission KEYWORD2
19 | requestFrom KEYWORD2
20 | onReceive KEYWORD2
21 | onRequest KEYWORD2
22 |
23 | #######################################
24 | # Constants (LITERAL1)
25 | #######################################
26 |
27 |
--------------------------------------------------------------------------------
/libraries/Wire/library.properties:
--------------------------------------------------------------------------------
1 | name=Wire
2 | version=1.0
3 | author=Arduino
4 | maintainer=Arduino
5 | sentence=This library allows you to communicate with I2C and Two Wire Interface devices.
6 | paragraph=It allows the communication with I2C devices like temperature sensors, realtime clocks and many others using SDA (Data Line) and SCL (Clock Line).
7 | category=Communication
8 | url=http://www.arduino.cc/en/Reference/Wire
9 | architectures=avr
10 |
11 |
--------------------------------------------------------------------------------
/libraries/Wire/src/utility/twi.h:
--------------------------------------------------------------------------------
1 | /*
2 | twi.h - TWI/I2C library for Wiring & Arduino
3 | Copyright (c) 2006 Nicholas Zambetti. All right reserved.
4 |
5 | This library is free software; you can redistribute it and/or
6 | modify it under the terms of the GNU Lesser General Public
7 | License as published by the Free Software Foundation; either
8 | version 2.1 of the License, or (at your option) any later version.
9 |
10 | This library is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | Lesser General Public License for more details.
14 |
15 | You should have received a copy of the GNU Lesser General Public
16 | License along with this library; if not, write to the Free Software
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 |
19 | Modified 2020 by Greyson Christoforo (grey@christoforo.net) to implement timeouts
20 | */
21 |
22 | #ifndef twi_h
23 | #define twi_h
24 |
25 | #include
26 |
27 | //#define ATMEGA8
28 |
29 | #ifndef TWI_FREQ
30 | #define TWI_FREQ 100000L
31 | #endif
32 |
33 | #ifndef TWI_BUFFER_LENGTH
34 | #define TWI_BUFFER_LENGTH 32
35 | #endif
36 |
37 | #define TWI_READY 0
38 | #define TWI_MRX 1
39 | #define TWI_MTX 2
40 | #define TWI_SRX 3
41 | #define TWI_STX 4
42 |
43 | void twi_init(void);
44 | void twi_disable(void);
45 | void twi_setAddress(uint8_t);
46 | void twi_setFrequency(uint32_t);
47 | uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t);
48 | uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t);
49 | uint8_t twi_transmit(const uint8_t*, uint8_t);
50 | void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) );
51 | void twi_attachSlaveTxEvent( void (*)(void) );
52 | void twi_reply(uint8_t);
53 | void twi_stop(void);
54 | void twi_releaseBus(void);
55 | void twi_setTimeoutInMicros(uint32_t, bool);
56 | void twi_handleTimeout(bool);
57 | bool twi_manageTimeoutFlag(bool);
58 |
59 | #endif
60 |
--------------------------------------------------------------------------------
/post_install.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | set ARGS=/LM /SW /SA
3 | if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
4 | drivers\dpinst-amd64.exe %ARGS%
5 | ) ELSE IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" (
6 | drivers\dpinst-amd64.exe %ARGS%
7 | ) ELSE (
8 | drivers\dpinst-x86.exe %ARGS%
9 | )
10 |
11 | REM dpinst /PATH has problems with relative paths, so use absolute path.
12 | if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
13 | drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS%
14 | ) ELSE IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" (
15 | drivers\dpinst-amd64.exe /PATH "%cd%\drivers\gemma" %ARGS%
16 | ) ELSE (
17 | drivers\dpinst-x86.exe /PATH "%cd%\drivers\gemma" %ARGS%
18 | )
19 |
20 | exit /b 0
21 |
--------------------------------------------------------------------------------
/variants/eightanaloginputs/pins_arduino.h:
--------------------------------------------------------------------------------
1 | /*
2 | pins_arduino.h - Pin definition functions for Arduino
3 | Part of Arduino - http://www.arduino.cc/
4 |
5 | Copyright (c) 2007 David A. Mellis
6 |
7 | This library is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU Lesser General Public
9 | License as published by the Free Software Foundation; either
10 | version 2.1 of the License, or (at your option) any later version.
11 |
12 | This library is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | Lesser General Public License for more details.
16 |
17 | You should have received a copy of the GNU Lesser General
18 | Public License along with this library; if not, write to the
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 | Boston, MA 02111-1307 USA
21 | */
22 |
23 | #include "../standard/pins_arduino.h"
24 | #undef NUM_ANALOG_INPUTS
25 | #define NUM_ANALOG_INPUTS 8
26 |
--------------------------------------------------------------------------------
/variants/micro/pins_arduino.h:
--------------------------------------------------------------------------------
1 | /*
2 | pins_arduino.h - Pin definition functions for Arduino
3 | Part of Arduino - http://www.arduino.cc/
4 |
5 | Copyright (c) 2007 David A. Mellis
6 |
7 | This library is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU Lesser General Public
9 | License as published by the Free Software Foundation; either
10 | version 2.1 of the License, or (at your option) any later version.
11 |
12 | This library is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | Lesser General Public License for more details.
16 |
17 | You should have received a copy of the GNU Lesser General
18 | Public License along with this library; if not, write to the
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 | Boston, MA 02111-1307 USA
21 | */
22 |
23 | #include "../leonardo/pins_arduino.h"
24 |
25 | #undef TXLED0
26 | #undef TXLED1
27 | #undef RXLED0
28 | #undef RXLED1
29 | #undef TX_RX_LED_INIT
30 |
31 | #define TXLED0 PORTD &= ~(1<<5)
32 | #define TXLED1 PORTD |= (1<<5)
33 | #define RXLED0 PORTB &= ~(1<<0)
34 | #define RXLED1 PORTB |= (1<<0)
35 | #define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0), TXLED0, RXLED0
36 |
--------------------------------------------------------------------------------
/variants/yun/pins_arduino.h:
--------------------------------------------------------------------------------
1 | /*
2 | pins_arduino.h - Pin definition functions for Arduino
3 | Part of Arduino - http://www.arduino.cc/
4 |
5 | Copyright (c) 2013 Arduino LLC
6 |
7 | This library is free software; you can redistribute it and/or
8 | modify it under the terms of the GNU Lesser General Public
9 | License as published by the Free Software Foundation; either
10 | version 2.1 of the License, or (at your option) any later version.
11 |
12 | This library is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | Lesser General Public License for more details.
16 |
17 | You should have received a copy of the GNU Lesser General
18 | Public License along with this library; if not, write to the
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20 | Boston, MA 02111-1307 USA
21 | */
22 |
23 | #include "../leonardo/pins_arduino.h"
24 |
25 | // These serial port names are intended to allow libraries and architecture-neutral
26 | // sketches to automatically default to the correct port name for a particular type
27 | // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
28 | // the first hardware serial port whose RX/TX pins are not dedicated to another use.
29 | //
30 | // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
31 | //
32 | // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
33 | //
34 | // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
35 | //
36 | // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
37 | //
38 | // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
39 | // pins are NOT connected to anything by default.
40 | #define SERIAL_PORT_LINUXBRIDGE Serial1
41 |
42 | // defined in the Leonardo variant
43 | #undef SERIAL_PORT_HARDWARE_OPEN
44 |
45 |
--------------------------------------------------------------------------------