mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-07 16:23:38 +03:00
Merge remote-tracking branch 'esp8266/master' into ssdp-fixes
This commit is contained in:
commit
e54e387ca8
16
.travis.yml
16
.travis.yml
@ -13,9 +13,12 @@ addons:
|
||||
script:
|
||||
- set -e
|
||||
- export CXX="g++-4.8" CC="gcc-4.8" GCOV="gcov-4.8"
|
||||
- echo -e "travis_fold:start:host_tests"
|
||||
- pushd $TRAVIS_BUILD_DIR/tests/host
|
||||
- make
|
||||
- make clean-objects
|
||||
- echo -e "travis_fold:end:host_tests"
|
||||
- echo -e "travis_fold:start:sketch_test_env_prepare"
|
||||
- popd
|
||||
- wget -O arduino.tar.xz https://www.arduino.cc/download.php?f=/arduino-nightly-linux64.tar.xz
|
||||
- tar xf arduino.tar.xz
|
||||
@ -26,15 +29,18 @@ script:
|
||||
- ln -s $TRAVIS_BUILD_DIR esp8266
|
||||
- cd esp8266/tools
|
||||
- python get.py
|
||||
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16
|
||||
- sleep 3
|
||||
- export DISPLAY=:1.0
|
||||
- export PATH="$HOME/arduino_ide:$PATH"
|
||||
- export PATH="$HOME/arduino_ide:$TRAVIS_BUILD_DIR/tools/xtensa-lx106-elf/bin:$PATH"
|
||||
- which arduino
|
||||
- cd $TRAVIS_BUILD_DIR
|
||||
- source tests/common.sh
|
||||
- install_libraries
|
||||
- build_sketches $HOME/arduino_ide $TRAVIS_BUILD_DIR "python tools/build.py -l $HOME/Arduino/libraries -b generic -v"
|
||||
- echo -e "travis_fold:end:sketch_test_env_prepare"
|
||||
- echo -e "travis_fold:start:sketch_test"
|
||||
- build_sketches $HOME/arduino_ide $TRAVIS_BUILD_DIR "-l $HOME/Arduino/libraries"
|
||||
- echo -e "travis_fold:end:sketch_test"
|
||||
- echo -e "travis_fold:start:size_report"
|
||||
- cat size.log
|
||||
- echo -e "travis_fold:end:size_report"
|
||||
|
||||
after_success:
|
||||
- pushd $TRAVIS_BUILD_DIR/tests/host
|
||||
|
@ -20,7 +20,7 @@ ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and
|
||||
|
||||
Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).
|
||||
|
||||
- Install Arduino 1.6.5 from the [Arduino website](http://www.arduino.cc/en/main/software).
|
||||
- Install Arduino 1.6.8 from the [Arduino website](http://www.arduino.cc/en/main/software).
|
||||
- Start Arduino and open Preferences window.
|
||||
- Enter ```http://arduino.esp8266.com/stable/package_esp8266com_index.json``` into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
|
||||
- Open Boards Manager from Tools > Board menu and install *esp8266* platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
|
||||
@ -44,7 +44,7 @@ Documentation: [http://esp8266.github.io/Arduino/versions/2.1.0-rc2/](http://esp
|
||||
### Using git version
|
||||
[](https://travis-ci.org/esp8266/Arduino) [](https://codecov.io/github/esp8266/Arduino?branch=master)
|
||||
|
||||
- Install Arduino 1.6.7
|
||||
- Install Arduino 1.6.8
|
||||
- Go to Arduino directory
|
||||
- Clone this repository into hardware/esp8266com/esp8266 directory (or clone it elsewhere and create a symlink)
|
||||
```bash
|
||||
|
@ -55,7 +55,8 @@ enum RFMode {
|
||||
RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
|
||||
};
|
||||
|
||||
#define RF_MODE(mode) extern "C" int __get_rf_mode() { return mode; }
|
||||
#define RF_MODE(mode) int __get_rf_mode() { return mode; }
|
||||
#define RF_PRE_INIT() void __run_user_rf_pre_init()
|
||||
|
||||
// compatibility definitions
|
||||
#define WakeMode RFMode
|
||||
@ -71,7 +72,7 @@ enum ADCMode {
|
||||
ADC_VDD = 255
|
||||
};
|
||||
|
||||
#define ADC_MODE(mode) extern "C" int __get_adc_mode(void) { return (int) (mode); }
|
||||
#define ADC_MODE(mode) int __get_adc_mode(void) { return (int) (mode); }
|
||||
|
||||
typedef enum {
|
||||
FM_QIO = 0x00,
|
||||
|
@ -113,11 +113,15 @@ void noTone(uint8_t _pin) {
|
||||
digitalWrite(_pin, LOW);
|
||||
}
|
||||
|
||||
void t1IntHandler() {
|
||||
if (toggle_counts[T1INDEX] > 0){
|
||||
ICACHE_RAM_ATTR void t1IntHandler() {
|
||||
if (toggle_counts[T1INDEX] != 0){
|
||||
// toggle the pin
|
||||
digitalWrite(tone_pins[T1INDEX], toggle_counts[T1INDEX] % 2);
|
||||
toggle_counts[T1INDEX]--;
|
||||
// handle the case of indefinite duration
|
||||
if (toggle_counts[T1INDEX] < -2){
|
||||
toggle_counts[T1INDEX] = -1;
|
||||
}
|
||||
}else{
|
||||
disableTimer(T1INDEX);
|
||||
digitalWrite(tone_pins[T1INDEX], LOW);
|
||||
|
@ -242,6 +242,14 @@ static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
|
||||
[114] = 2
|
||||
};
|
||||
|
||||
// These functions will be overriden from C++ code.
|
||||
// Unfortunately, we can't use extern "C" because Arduino preprocessor
|
||||
// doesn't generate forward declarations for extern "C" functions correctly,
|
||||
// so we use mangled names here.
|
||||
#define __get_adc_mode _Z14__get_adc_modev
|
||||
#define __get_rf_mode _Z13__get_rf_modev
|
||||
#define __run_user_rf_pre_init _Z22__run_user_rf_pre_initv
|
||||
|
||||
extern int __real_register_chipv6_phy(uint8_t* init_data);
|
||||
extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
|
||||
if (init_data != NULL) {
|
||||
@ -279,5 +287,6 @@ void user_rf_pre_init() {
|
||||
}
|
||||
|
||||
system_set_os_print(0);
|
||||
system_phy_set_rfoption(__get_rf_mode());
|
||||
__run_user_rf_pre_init();
|
||||
}
|
||||
|
@ -59,17 +59,17 @@ void micros_overflow_tick(void* arg) {
|
||||
micros_at_last_overflow_tick = m;
|
||||
}
|
||||
|
||||
unsigned long millis() {
|
||||
unsigned long ICACHE_RAM_ATTR millis() {
|
||||
uint32_t m = system_get_time();
|
||||
uint32_t c = micros_overflow_count + ((m < micros_at_last_overflow_tick) ? 1 : 0);
|
||||
return c * 4294967 + m / 1000;
|
||||
}
|
||||
|
||||
unsigned long micros() {
|
||||
unsigned long ICACHE_RAM_ATTR micros() {
|
||||
return system_get_time();
|
||||
}
|
||||
|
||||
void delayMicroseconds(unsigned int us) {
|
||||
void ICACHE_RAM_ATTR delayMicroseconds(unsigned int us) {
|
||||
os_delay_us(us);
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*
|
||||
/*
|
||||
analog.c - analogRead implementation for esp8266
|
||||
|
||||
Copyright (c) 2015 Hristo Gochkov. All rights reserved.
|
||||
This file is part of the esp8266 core for Arduino environment.
|
||||
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
@ -17,8 +17,8 @@
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
|
||||
|
||||
18/06/2015 analogRead bugfix by Testato
|
||||
*/
|
||||
|
||||
@ -26,11 +26,13 @@
|
||||
#include "pins_arduino.h"
|
||||
|
||||
|
||||
extern int __analogRead(uint8_t pin) {
|
||||
if(pin == 17){
|
||||
return system_adc_read();
|
||||
}
|
||||
return digitalRead(pin) * 1023;
|
||||
extern int __analogRead(uint8_t pin)
|
||||
{
|
||||
// accept both A0 constant and ADC channel number
|
||||
if(pin == 17 || pin == 0) {
|
||||
return system_adc_read();
|
||||
}
|
||||
return digitalRead(pin) * 1023;
|
||||
}
|
||||
|
||||
extern int analogRead(uint8_t pin) __attribute__ ((weak, alias("__analogRead")));
|
||||
|
@ -7,7 +7,7 @@ title: Installation
|
||||
This is the suggested installation method for end users.
|
||||
|
||||
### Prerequisites
|
||||
- Arduino 1.6.5, get it from [Arduino website](https://www.arduino.cc/en/Main/OldSoftwareReleases#previous). Arduino 1.6.6 has several issues, so we recommend to stick with 1.6.5 for now.
|
||||
- Arduino 1.6.8, get it from [Arduino website](https://www.arduino.cc/en/Main/OldSoftwareReleases#previous).
|
||||
- Internet connection
|
||||
|
||||
### Instructions
|
||||
@ -27,7 +27,7 @@ This is the suggested installation method for contributors and library developer
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Arduino 1.6.5 (or newer, if you know what you are doing)
|
||||
- Arduino 1.6.8 (or newer, if you know what you are doing)
|
||||
- git
|
||||
- python 2.7
|
||||
- terminal, console, or command prompt (depending on you OS)
|
||||
|
@ -1,13 +1,49 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function print_size_info()
|
||||
{
|
||||
elf_file=$1
|
||||
|
||||
if [ -z "$elf_file" ]; then
|
||||
printf "sketch data rodata bss text irom0.text dram flash\n"
|
||||
return 0
|
||||
fi
|
||||
|
||||
elf_name=$(basename $elf_file)
|
||||
sketch_name="${elf_name%.*}"
|
||||
# echo $sketch_name
|
||||
declare -A segments
|
||||
while read -a tokens; do
|
||||
seg=${tokens[0]}
|
||||
seg=${seg//./}
|
||||
size=${tokens[1]}
|
||||
addr=${tokens[2]}
|
||||
if [ "$addr" -eq "$addr" -a "$addr" -ne "0" ] 2>/dev/null; then
|
||||
segments[$seg]=$size
|
||||
fi
|
||||
|
||||
|
||||
done < <(xtensa-lx106-elf-size --format=sysv $elf_file)
|
||||
|
||||
total_ram=$((${segments[data]} + ${segments[rodata]} + ${segments[bss]}))
|
||||
total_flash=$((${segments[data]} + ${segments[rodata]} + ${segments[text]} + ${segments[irom0text]}))
|
||||
|
||||
printf "%-28s %-8d %-8d %-8d %-8d %-8d %-8d %-8d\n" $sketch_name ${segments[data]} ${segments[rodata]} ${segments[bss]} ${segments[text]} ${segments[irom0text]} $total_ram $total_flash
|
||||
return 0
|
||||
}
|
||||
|
||||
function build_sketches()
|
||||
{
|
||||
set +e
|
||||
local arduino=$1
|
||||
local srcpath=$2
|
||||
local build_cmd=$3
|
||||
echo $build_cmd
|
||||
local build_arg=$3
|
||||
local build_dir=build.tmp
|
||||
mkdir -p $build_dir
|
||||
rm -rf $build_dir/*
|
||||
local build_cmd="python tools/build.py -b generic -v -k -p $PWD/$build_dir $build_arg "
|
||||
local sketches=$(find $srcpath -name *.ino)
|
||||
print_size_info >size.log
|
||||
export ARDUINO_IDE_PATH=$arduino
|
||||
for sketch in $sketches; do
|
||||
local sketchdir=$(dirname $sketch)
|
||||
@ -33,6 +69,7 @@ function build_sketches()
|
||||
return $result
|
||||
fi
|
||||
rm build.log
|
||||
print_size_info $build_dir/*.elf >>size.log
|
||||
done
|
||||
set -e
|
||||
}
|
||||
|
11
tests/test_overrides/test_overrides.ino
Normal file
11
tests/test_overrides/test_overrides.ino
Normal file
@ -0,0 +1,11 @@
|
||||
ADC_MODE(ADC_VCC);
|
||||
RF_MODE(RF_DISABLED);
|
||||
RF_PRE_INIT()
|
||||
{
|
||||
}
|
||||
|
||||
void setup() {
|
||||
}
|
||||
|
||||
void loop() {
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user