Angus Gratton
19b0a19ad6
libc: Recompile newlib to enable float & long double i/o in printf/scanf
...
Enabled by default, set PRINTF_SCANF_FLOAT_SUPPORT=0 in local.mk/Makefile to disable
newlib-xtensa revision ae10be3
Configure/compile steps:
../configure --with-newlib --enable-multilib
--disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf
--target=xtensa-lx106-elf --prefix=/home/gus/dev/esp/rtos/open-rtos/libc/ --enable-newlib-nano-malloc --enable-newlib-nano-formatted-io --enable-newlib-reent-small --prefix=path_to/esp-open-rtos/libc
CROSS_CFLAGS="-DSIGNAL_PROVIDED -DABORT_PROVIDED" make
make install
Closes #95
2016-02-24 09:10:52 +11:00
Angus Gratton
e12077513f
common.mk: Consider possibility that not building inside a git checkout
2016-02-17 15:51:46 +11:00
Angus Gratton
71a2eb7b85
common.mk: Fix places using build/ instead of configurable BUILD_DIR
2016-02-17 15:47:40 +11:00
Angus Gratton
2696e80471
common.mk: Rename FW_BASE to FIRMWARE_DIR, in line with other directory variable names
2016-02-17 15:47:09 +11:00
Angus Gratton
3e7edd43aa
Makefile: Don't apply C_CXX_FLAGS to assembler source, move "universal" flags to CPPFLAGS
...
Closes #79
2016-01-04 12:03:09 +11:00
Angus Gratton
0102b8090d
Makefile: Allow EXTRA_CFLAGS, EXTRA_CXXFLAGS, overriding of CXXFLAGS, etc.
2015-12-30 13:06:39 +11:00
Angus Gratton
e264d63e35
Pass linker search paths with -L not -Wl,-L, so they take priority over sysroot
...
This fixes link-time errors where the toolchain used was esp-open-sdk
built with the default STANDALONE=y (meaning there are Espressif SDK
libs in the sysroot).
Closes #74
2015-12-01 09:44:50 +11:00
Angus Gratton
4b5349c236
Makefile CPPFLAGS: Don't need FLASH_SIZE defined any more
...
To determine flash size from inside a program, better to look via the
SPI flash header at this stage.
2015-11-13 12:20:05 +11:00
Angus Gratton
e8eac9614d
Simplify linker script to remove preprocessing, not check flash sizes
...
Memory layout is now split into two linker scripts for OTA vs
non-OTA (different starting offsets), remaining functionality in
common.ld.
As discussed in #64 , progress towards #38
2015-11-13 12:15:01 +11:00
Angus Gratton
233e5f377a
Remove axTLS
2015-09-28 13:01:22 +10:00
Angus Gratton
09405a9095
Merge branch 'master' into feature/mbedtls
2015-09-24 20:40:36 +10:00
Alex Stewart
ba7492756c
Merge branch 'master' into open-startup
2015-09-20 14:05:54 -07:00
Angus Gratton
f230fbcd65
Move start of IROM0 to 0x40220000, save 128kB of flash
...
Old starting point left 256kB for RAM sections, but I think they
shouldn't ever possibly exceed 128kB.
2015-09-20 21:13:38 +10:00
Angus Gratton
1c9e106db8
Compile with -ffunction-sectons -fdata-sections, link with -gc-sections
...
This seems to shrink code size by abou 3.5%. Not sure if there are any downsides.
2015-09-20 21:13:38 +10:00
Michael Jacobsen
602d3e2d98
Header files re-arrangement
2015-09-20 21:13:38 +10:00
Michael Jacobsen
627b78331a
Added C++ base components and example
2015-09-20 21:13:38 +10:00
Angus Gratton
cc97067fa1
Add C++ support to Makefile, and proof-of-concept simple.cpp example
...
This is a work in progress based on @mikejac's work.
Missing:
* No 'new' operator.
* I don't think STL is currently supported.
2015-09-20 21:13:38 +10:00
Michael Jacobsen
372827ac42
Mostly updated header files for use in C++
2015-09-20 21:13:38 +10:00
Angus Gratton
c7a7dfdf82
Remove the unaligned load handler to its own source file as it was getting quite complex
...
The downside here is needing to use #include so the 'beq' in the
exception vector can land on it directly, save an instruction.
There might be a better way to do this, but it seems hard to "curate"
the order that symbols appear in each section.
2015-09-15 11:34:21 +10:00
Angus Gratton
8b90dbd9e5
Merge branch 'feature/c++'
2015-09-12 16:27:26 +10:00
Angus Gratton
421f8ddaa5
Allow properly for out-of-tree components (was a hack before)
2015-09-08 10:36:19 +10:00
Angus Gratton
9f5bc3735e
Add link from common.mk components section to wiki page
2015-09-08 10:36:03 +10:00
Angus Gratton
7e73693898
Rework component makefiles to have a default <component>_ROOT
...
This fixes a long-standing bug where build directories sometimes
expanded many levels deeper than they should have.
Component names can now no longer contains slashes (ie the component
name for 'extras/i2c' is now just 'i2c')
2015-09-08 09:59:59 +10:00
Angus Gratton
0090153fa7
Reorder library arguments so component libraries come first
...
This allows components to override weak linked symbols in the core or
the SDK libraries, without needing to force symbol discovery.
Will help with #24 , for instance.
2015-08-31 16:59:34 +10:00
Alex Stewart
c16dd2ef23
Add 'sdklike' FLAVOR to makefile
2015-08-28 18:53:43 -07:00
Alex Stewart
8b8f7c9de4
Use fixed symbol rename list
...
To keep things from changing out from under us as we slowly replace bits of the
SDK libs, changing Makefiles to not auto-generate the list of symbols to
rename, but always use the same list every time.
2015-08-28 18:53:43 -07:00
Michael Jacobsen
94a953d3e3
Header files re-arrangement
2015-08-26 10:45:21 +10:00
Michael Jacobsen
1282e11c08
Added C++ base components and example
2015-08-26 10:45:21 +10:00
Angus Gratton
424dc0f3b0
Add C++ support to Makefile, and proof-of-concept simple.cpp example
...
This is a work in progress based on @mikejac's work.
Missing:
* No 'new' operator.
* I don't think STL is currently supported.
2015-08-10 16:14:30 +10:00
Michael Jacobsen
da6b5f74bb
Mostly updated header files for use in C++
2015-08-10 15:31:03 +10:00
Johan Kanflo
0e521a74a9
WiFi credentials
...
Changed local.h to include/ssid_config.h and added instructions on how
to keep your WiFi credentials safe from Github.
2015-08-07 13:26:06 +02:00
Angus Gratton
d703f8eae0
esptool.py: Ensure flash size args are passed at each step
...
('esptool.py write_image' will override the flash size in your binaries with the
default, given the chance)
2015-08-06 11:40:44 +10:00
Angus Gratton
5f82b3c27f
Merge branch 'master' of github.com:SuperHouse/esp-open-rtos
2015-08-05 14:24:10 +10:00
Angus Gratton
dd538b2889
Makefile: Pass flash size & speed flags to both esptool.py & esptool2
2015-08-05 14:04:12 +10:00
Angus Gratton
aed843fc14
exception_vectors: Remove some cruft some the symbol table
2015-07-30 10:10:37 +10:00
Angus Gratton
147257efa4
Almost functional OTA support
...
ota_basic example can receive new image via TCP.
However - writing to flash with interrupts disabled causes data loss,
and the TCP flow is very slow to recover. Linux sender quickly ramps up
RTT timer to very long retry intervals, crippling performance &
throughput.
Running the update without the flash writes causes the data to be
received quickly, so this is definitely an issue with the time taken for
the erase cycle.
Progress towards #10
2015-07-29 16:50:23 +10:00
Angus Gratton
9c7c94f96d
Makefile: When assembling, add the source dir to the assembler include path
2015-07-28 11:42:56 +10:00
Angus Gratton
30877f4ef0
Makefile: Assemble any .s files files found in SRC_DIRs
2015-07-28 11:27:41 +10:00
Angus Gratton
2440ba526a
Makefiles: Allow for EXTRA_COMPONENTS and EXTRA_LDFLAGS to append to either variable
2015-07-28 11:20:18 +10:00
Johan Kanflo
d4873379a9
Changed flashing order
...
Workaround for a ESP8266 ROM bug that cuases SPI flash erase
to sometimes erase an extra sector. See
https://github.com/themadinventor/esptool/issues/33
2015-07-23 14:13:07 +02:00
Angus Gratton
d4a503f320
Fix bug with blank OTA binary file name
2015-07-23 15:19:30 +10:00
Angus Gratton
87dc2317f5
Support building an OTA-compatible flash image
...
Image is suitable for SDK v1.2 bootloader or rBoot.
2015-07-21 15:27:19 +10:00
Angus Gratton
5bbbc1f144
Run linker scripts via C preprocessor
2015-07-21 15:27:19 +10:00
Angus Gratton
86188c01fd
Merge branch 'newlib'
2015-07-15 16:01:18 +10:00
Angus Gratton
689cf874b2
Provide our own newlib libc
...
Newlib 2.2.0 w/ nan ofeatures, xtensa patches, locking
implementation.
Built from https://github.com/projectgus/newlib-xtensa
branch xtensa-2_2_0-lock
commit daa6ae40cdc8099f54c3e68a586fc1b906169c5a
For more details, see:
https://github.com/SuperHouse/esp-open-rtos/wiki/libc-configuration
Closes #1
2015-07-15 15:17:59 +10:00
Angus Gratton
a566a51c09
Use linker scripts rather than libcirom/objcopy tricks to arrange
...
IRAM/IROM sections.
esp-open-rtos compiled code: .text goes into irom by default, symbols
explicitly marked with IRAM attribute go into iram.
SDK code: .text goes into iram by default, symbols marked with
ICACHE_FLASH_ATTR go into irom.
libgcc functions also go into iram by default.
2015-07-09 13:58:41 +10:00
Angus Gratton
f0db6f2b98
WiFi Examples: Load SSID & password from a common local.h file instead
...
of coding into program
2015-06-16 16:58:27 +10:00
Angus Gratton
aaef4b0644
Replace all binary SDK libc functions with newlib
...
Adds a new build step to remove the SDK object files listed in
<libname>.remove.
Closes #1 .
2015-06-16 14:21:24 +10:00
Angus Gratton
b4cbd2712e
Makefile tweaks for xxx_SRC_FILES search path & error reporting
2015-06-12 10:27:14 +10:00
Angus Gratton
685a48583a
Change 'TARGET' in makefiles to 'PROGRAM', keep consistent with documentation terminology
2015-06-12 10:26:02 +10:00