1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-22 21:23:07 +03:00

60 Commits

Author SHA1 Message Date
Earle F. Philhower, III
2ec3daa225 Use Python JSON to format packages.json file (#5429)
The packages JSON file which includes the boards, tools, etc. and needs to
have consistent formatting to be reproducible.  The current boards.txt.py
uses a REGEX to string-replace a bit of it, but that bit has a different
indent than the rest of the file.

Use Python's JSON writer to format the whole file repeatably.
2018-12-04 00:26:18 -03:00
Earle F. Philhower, III
f68362e78f
Add in Win64 pointers to Win32 tools (#5427)
Some needed tools are not yet built for Win64, so use the Win32 binaries.
Add them to the platform.json file so get.py and Arduino can find them.
2018-12-03 13:35:13 -08:00
Alwin Arrasyid
ca3678f7c1 ESPectro Core board support (#5419) 2018-12-03 15:27:06 +01:00
Earle F. Philhower, III
6280e98b03 Enable exceptions, update to optimized newlib, migrate to new toolchain (#5376)
* Move to PROGMEM aware libc, allow PSTR in printf()

A Newlib (libc) patch is in progress to move the _P functions from inside
Arduino into first-class citizens in libc.  This Arduino patch cleans up
code that's been migrated there.  Binaries for the new libs are included
because it seems they're part of the Arduino git tree, and should be
replaced with @igrr built ones when/if the Newlib changes are accepted.

Notable changes/additions for Arduino:
Allow for use of PROGMEM based format and parameter strings in all
*printf functions.  No need for copying PSTR()s into RAM before printing
them out (transparently saves heap space when using _P functions) and
makes it easier to print out constant strings for applications.

Add "%S" (capital-S) format that I've been told, but cannot verify,
is used in Arduino to specify a PROGMEM string parameter in printfs,
as an alias for "%s" since plain "%s" can now handle PROGMEM.

Optimized the memcpy_P, strnlen_P, and strncpy_P functions to use 32-bit
direct reads whenver possible (source and dest alignment mediated), but
there is still room for improvement in others.

Finally, move several constant arrays from RODATA into PROGMEM and
update their accessors.  Among these are the ctype array, ~260 bytes,
mprec* arrays, ~300 bytes, and strings/daycounts in the time
formatting functions, ~200 bytes.  All told, sketches will see from
300 to 800 additional RAM heap free on startup (depending on their
use of these routines).

* Fix merge error in #ifdef/#endif

* Fix host test using the newlib generic pgmspace.h

Host tests now use the sys/pgmspace.h for compiles instead of the
ESP8266-specific version.

* Update with rebuilt libraries using latest newlib

* Include binaries built directly from @igrr repo

Rebuild the binaries using a git clone of
https://github.com/igrr/newlib-xtensa

Build commands for posterity:
````
rm -rf ./xtensa-lx106-elf/
./configure --prefix=<DIR>/esp8266/tools/sdk/libc --with-newlib \
            --enable-multilib --disable-newlib-io-c99-formats \
            --disable-newlib-supplied-syscalls \
            --enable-newlib-nano-formatted-io --enable-newlib-reent-small \
            --enable-target-optspace \
            --program-transform-name="s&^&xtensa-lx106-elf-&" \
            --disable-option-checking --with-target-subdir=xtensa-lx106-elf \
            --target=xtensa-lx106-elf
rm -f etc/config.cache
CROSS_CFLAGS="-fno-omit-frame-pointer -DSIGNAL_PROVIDED -DABORT_PROVIDED"\
             " -DMALLOC_PROVIDED" \
  PATH=<DIR>/esp8266/tools/xtensa-lx106-elf/bin/:$PATH \
  make all install
````

* Fix merge define conflict in c_types.h

* Fix strlen_P misaligned source error

Include fix from newlib-xtensa/fix-strlen branch cleaning up misaligned
access on a non-aligned source string.

* Fix strlen_P and strcpy_P edge cases

Ran the included test suite on ESP8266 tstring.c with the following defines:
 #define MAX_1 50
 #define memcmp memcmp_P
 #define memcpy memcpy_P
 #define memmem memmem_P
 #define memchr memchr_P
 #define strcat strcat_P
 #define strncat strncat_P
 #define strcpy strcpy_P
 #define strlen strlen_P
 #define strnlen strnlen_P
 #define strcmp strcmp_P
 #define strncmp strncmp_P

Uncovered edge case and return value problems in the optimized versions of
the strnlen_P and strncpy_P functions.  Corrected.

* Fix memcpy_P return value

memcpy-1.c test suite showed error in return value of memcpy_P.  Correct it.

* Fix strnlen_P/strlen_P off-by-4 error

Random crashes, often on String constructors using a PSTR, would occur due
to the accelerated strnlen_P going past the end of the string. Would make
debug builds fail, too (ESP.getVersionString() failure).

Fix to fall through to normal copy on a word that's got a 0 byte anywhere
in it.

* Add device tests for libc functional verification

Add test suite used to debug libc optimized _P functions to the device
tests.

* Rebuild from igrr's repo (same source as prior)

Rebuild .a from igrr's repo at 347260af117b4177389e69fd4d04169b11d87a97

* WIP - add exceptions

* Fix exception to have 0-terminator

* Move some exception constants to TEXT from RODATA

* Remove throw stubs

* Move more exception stuff to ROM

* Enable exceptions in platform.io

* Remove atexit, is duplicated in rebuilt lib

Need to look at the quick-toolchain options, there seems to be a definition
for atexit defined there (libgcc?) that needs to be excised.  For now,
remove our local do-nothing copy.

* Update libgcc to remove soft-fp functions

The esp-quick-toolchain generated libgcc.a needed to have the soft-FP routines
that are in ROM removed from it.  Remove them in the new esp-quick-toolchain
and update.

* Fix merge typos in Makefile

* Add unhandled exception handler to postmortem

* Return our atexit() handler

* Latest stdc++, minimize exception emercengy area

* Remove atexit from newlib

atexit was defined in newlib strongly, but we also define a noop atexit in core.
Since we never exit, use the core's noop and delete the atexit from libc.a

Updated in esp-quick-toolchain as well.

* Move __FUNCTION__ static strings to PROGMEM

__FUNCTION__ is unlikely to be a timing sensitive variable, so move it to
PROGMEM and not RODATA (RAM) using linker magic.

asserts() now should take no RAM for any strings.

* Clean up linker file, update to latest stdc++

* Update to latest stdc++ which doesn't call strerror

* Update to GCC5.1 exception emergency allocator

Using GCC 5.1's emergency memory allocator for exceptions, much less
space is required in programs which do not use exceptions and when
space is allocated it is managed more efficiently.

* Initial try with new compiler toolchain

* Include newlib built from esp-quick-toolchain

* Update JSON with all new esp-quick-toolchain builds

* Use 64bit Windows compiler on 64bit Windows

* Dump std::exception.what() when possible

When doing the panic on unhandled exceptions, try and grab the
.what() pointer and dump it as part of the termination info.
Makes it easy to see mem errors (std::bad_alloc) or std::runtime_error
strings.

* Use scripted install from esp-quick-toolchain

Makes sure proper libraries and includes are present by using a
scripted installation from esp-quick-install instead of a manual
one.

* Update eqk to remove atexit, fix packaging diff
2018-12-03 03:37:14 -03:00
david gauchard
c6777149a8
constexpr helpers to identify core version (#5269) 2018-11-29 17:10:33 +01:00
Invent Victor
d7ca884007 support new board (invent one) (#5286)
* add inventone to boards.txt.py

* add inventone pin mapping .h file to variants

* generate files running boards.txt.py via Python2

* delete .orig files
2018-10-28 15:44:31 -03:00
Ivan Grokhotkov
b65709021a
package: add version to board package name (#5046)
In tools menu, boards belonging to each platform are grouped together.
The title of the groups is the board package name. When switching
between versions, mentioning the version number in package name helps
identify the installed version.

Rename board group from "ESP8266 Modules" to "ESP8266 Boards", to be
more similar to other platforms, and to reflect the fact that most
entries included are boards, not modules.

As an extra change, when building the boards manager package, set
version number in platform.txt based on git tag name. This saves one
step when creating the release — don't need to update platform.txt
twice.

Closes https://github.com/esp8266/Arduino/issues/5007.
2018-08-20 17:16:51 +08:00
Ivan Grokhotkov
559a286f02 Minor fixes for #4999 (#5003)
* ci: work around tagging issue in Travis CI deployment

When `draft: true` is set, incorrect commit/tag information is sent to
Github. Override tag/target fields for correct behavior.

Ref. https://github.com/travis-ci/travis-ci/issues/9852

* doc: clarify some points in the release process
2018-08-08 14:12:02 -04:00
Ivan Grokhotkov
1dba69d87e doc: add document describing the release process 2018-08-03 09:51:29 +03:00
Ivan Grokhotkov
0f762f64af ci: deploy released package index to arduino.esp8266.com 2018-08-03 09:51:29 +03:00
WEMOS Electronics
b1f0435fb3 change "WeMos" to new brand name "LOLIN" (#4984)
* change "WeMos" to new brand name "LOLIN"
2018-07-31 20:55:35 -04:00
Jack Shao
3906ee4d91 Add support for Seeed Wio Link board (#4943) 2018-07-20 14:51:32 -04:00
brendanvanbreda
e5648f3dfd Add support for XinaBox (#4929)
Add support for the XinaBox CW01;
2018-07-17 11:53:26 -07:00
acosinwork
9c5c16e9c8 add board WiFi Slot (#3916) 2018-06-04 18:42:11 +02:00
Peter Lerup
3138bdfc51 Update SoftwareSerial version to 3.4.1 (#4623)
* Update SoftwareSerial version to 3.4.1
2018-04-10 00:48:28 -03:00
i3water
7ae8f98e57 add board WiFiduino (#4590) 2018-04-01 18:51:59 +02:00
david gauchard
8053f285b1 provide full version descriptor, displayed in debug mode (#4467)
* provide full version descriptor, displayed in debug mode

* unix: shows core version like under windows when git is unavailable

* store strings in progmem

* version string honours NDEBUG

* add ARDUINO_ESP8266_GIT_DESC
restore ARDUINO_ESP8266_GIT_VER
restore global variable "core_version"
don't print full version on setDebugOutput(true)
set platform.txt version to 2.4.1-pre
hide irrelevant boot version
fix typo

* lwip2: fix disconnection/reconnection issue
also:
improve version string
remove useless message

* lwip2: bump tag before 2.4.1

* lwip2: improve netif flags management on git side

* full-version string: remove useless NDEBUG in separate source file

* do not automatically enable sdk messages along with core messages

* automatically reenable sdk messages along with core messages *before* setup not after

* check serial port when showing version-string + move sdk messages enabler in hardware serial

* + license header

* updated and tested windows commands in platform.txt (without git)

* updated and tested windows commands in platform.txt (without git)

* update package builder accordingly
2018-03-08 11:37:03 +08:00
Ivan Grokhotkov
0222e32f15 esptool: update to 0.4.13
- fix argument parsing for flash erase command (-ce)
- add region erase command (-cz)
2018-02-20 21:51:53 +03:00
Ivan Grokhotkov
a358bce0d9 boards.txt.py: fix extra newline at the end of JSON output 2018-02-19 12:43:30 +03:00
Ivan Grokhotkov
f0787e7106 boards.txt.py: fix trailing comma in generated JSON 2018-02-19 12:43:30 +03:00
Ivan Grokhotkov
aa37364e04 boards, package: update from boards.txt.py 2018-02-19 12:43:30 +03:00
Peter Lerup
fdac1a2653 Update SoftwareSerial to 3.3.0 (#3727)
SoftwareSerial: update to 3.3.1
2017-10-22 13:32:53 +08:00
Ivan Grokhotkov
d24a358817 esptool: update to 0.4.12 2017-10-15 01:40:10 -05:00
me-no-dev
1ee17e54dd Update mkspiffs to version 0.2.0 2017-09-22 03:48:18 -05:00
me-no-dev
6ac48124bd Update spiffs 0.3.7 to and mkspiffs 0.1.3 2017-09-12 19:21:08 +08:00
Christopher Hiller
3f5d06bc12 add DigiStump Oak pins & board 2017-08-21 11:10:55 -05:00
Ivan Grokhotkov
8166263c0d SoftwareSerial: update to 3.2.3 (#3239) 2017-05-23 17:52:35 +08:00
Ivan Grokhotkov
a3a7e87df7 ci: build and upload releases on Travis 2017-05-15 03:49:21 -05:00
4D Systems
ca3a1728d0 Addition of gen4-IoD Range boards (#3202) 2017-05-06 06:26:58 -05:00
Ivan Grokhotkov
5488792aff package: move toolchains to Github 2017-05-06 10:52:20 +08:00
Helio
f0e2c9f28b Fix typo (#2291)
Great *Arudino* boards!
Maybe is a Chinese rebrand. Like the Casdo calculators
😄
2016-07-18 19:29:25 +08:00
Ivan Grokhotkov
8831ef562e Fix messed up linux toolchain checksums (#2185) 2016-06-24 10:36:13 +08:00
Ivan Grokhotkov
3e34c7575c Update esptool to 0.4.9 2016-06-21 14:48:16 +08:00
Ivan Grokhotkov
7d56ea4d9d Fix ARM toolchain size and hash in boards manager package template (#2004) 2016-06-12 14:50:20 +08:00
Ivan Grokhotkov
32bd42b028 Store git version of the core in the compiled binary (#2099)
* Store git version of the core in the compiled binary

* Don't update version number when using boards manager package
2016-06-06 14:37:39 +08:00
Nat
222e92a5fc Add new boards Phoenix 1.0 & Phoenix 2.0 (#2088)
* Add new boards Phoenix 1.0, Phoenix 2.0

* ESP8266HTTPClient: fix duplicate Content-Length headers (#1902)

* Add new boards Phoenix 1.0, Phoenix 2.0

* Add phoenix in variants.
2016-06-06 12:20:41 +08:00
Ivan Grokhotkov
a8640c4244 Fix ARM toolchain files permissions (#2004) 2016-05-11 14:31:41 +08:00
Ivan Grokhotkov
797c78ddad Add ARM tools (#269) 2016-04-14 13:06:23 +03:00
Peter Lerup
6d33ea2cd0 Update SoftwareSerial to version 3.1.0 2016-03-10 18:28:20 +01:00
Ivan Grokhotkov
5ab63dcf7a Update esptool to 0.4.8 2016-02-28 00:48:13 +03:00
Ivan Grokhotkov
99d351d661 Update esptool to 0.4.7 2016-02-27 01:47:14 +03:00
Ivan Grokhotkov
0550e7283f Merge pull request #1608 from narongrat/master
Add ESPino (WROOM-02) by ThaiEasyElec.com
2016-02-10 19:22:28 +03:00
Narongrat Srimee
4a119f048f Update package_esp8266com_index.template.json 2016-02-08 19:50:02 +07:00
Nat Weerawan
5dc34d1f95 - Update board and filesystem detail.
- use LED_BUILTIN instead of BUILTIN_LED.
- update package_esp8266com_index.template.json file.
2016-02-08 19:31:58 +07:00
Peter Lerup
486a31260b Use SoftwareSerial version 2.2 2016-01-11 23:28:44 +01:00
Ivan Grokhotkov
971bba13dd Update release tools 2016-01-04 18:36:28 +03:00
xsyp
6d87ef5aa9 Add espduino board
ESPDuino boards from doit.am (arduino uno look like board for esp8266)
2015-12-27 17:15:49 +08:00
Charles
027b5aff1d Added WifInfo boards 2015-12-11 18:41:58 +01:00
Rodrigo Mendez
8847d7ab1a added ESPino to dox/boards.md and package_esp8266com_index.template.json. removed flash speed selection 2015-12-07 17:35:30 -06:00
Ivan Grokhotkov
866921c54a Documentation update 2015-11-23 20:21:16 +03:00