Commit graph

49 commits

Author SHA1 Message Date
Angus Gratton
e4c76b488c 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
1df6fce030 Allow properly for out-of-tree components (was a hack before) 2015-09-08 10:36:19 +10:00
Angus Gratton
6fbfa766a7 Add link from common.mk components section to wiki page 2015-09-08 10:36:03 +10:00
Angus Gratton
1221e2117b 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
c19bb63286 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
Johan Kanflo
74041e4210 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
Angus Gratton
f7c4b6d550 Dependencies: Rebuild component if its makefile changes, or if common.mk/local.mk changes 2015-06-12 09:51:25 +10:00
Angus Gratton
f34e229bbc Allow specifying list of files in Makefiles as alternative to dirs
Also allow xx_EXTRA_SRC_FILES
Let target component use name TARGET so TARGET_EXTRA_SRC_FILES, TARGET_SRC_DIR, etc.
2015-06-12 08:12:47 +10:00
Angus Gratton
0dbb6d31a5 Add IRAM attribute for IRAM loaded symbols, add to common FreeRTOS functions
Closes #7.

It'd be nice to change the linker script so .text is always linked to
IROM instead of needing to objcopy each compiled file. The sticking
point for this is libgcc & libhal, which have symbols in .text that need
to be loaded to IRAM.
2015-06-08 18:19:59 +10:00
Angus Gratton
2c46be9825 Basic support for GPIOs 0-15.
Start new 'core' component for low-level parts

Progress towards #8
2015-06-08 12:09:34 +10:00
Angus Gratton
b01e7a89bd Rearrange make order so user program gets compiled first (most likely to have compiler error) 2015-06-05 15:35:04 +10:00
Angus Gratton
a173ffa81d Remove custom entry point, pending merge of esptool.py patch adding --entry-symbol option 2015-06-03 14:29:56 +10:00
Angus Gratton
1ee7222509 Add wiki link, clean up README a bit 2015-06-03 09:15:56 +10:00
Angus Gratton
1bfe1c5147 Fix makefile local.mk usage 2015-06-03 09:14:50 +10:00
Angus Gratton
9120590caa Fix up submodule paths, add some hints for submodule usage 2015-06-02 18:51:22 +10:00
Angus Gratton
b92fd8a872 Tweak // path argument in makefile 2015-06-02 18:03:16 +10:00
Angus Gratton
81afe58334 Change symbol extraction to use objdump not nm
nm outputs warnings to stderr so hard to clean output.

Also now picks up global variables, like NMIIrqOn.
2015-06-02 17:57:33 +10:00
Angus Gratton
c126fa6430 Add README, 'make help', header comments, Copyright notices 2015-06-02 17:12:20 +10:00
Angus Gratton
c8bc934b3d Fixup git revision in axTLS output 2015-06-02 17:12:20 +10:00
Angus Gratton
3fcec6106f Swap binary axTLS libssl for direct compiled version 2015-06-02 17:12:20 +10:00
Angus Gratton
98730b96b5 Add axTLS version.h file, embed git revision in version 2015-06-02 17:09:54 +10:00
Angus Gratton
e743d03a78 Preprocess all binary SDK symbols to add an sdk_ prefix
* This fixes the problem of axTLS symbols hmac_md5/hmac_sha1 having same
  name as symbols in libwpa (which have incompatible signatures)

* Also allows for easier identification and piece-by-piece removal of
  binary functions.

* Some libc symbols are not renamed, list is in lib/symbols_norename.txt
2015-06-02 15:08:35 +10:00
Angus Gratton
05019cb0ee Remove cJSON blob (can re-add later from source) 2015-06-02 15:08:35 +10:00
Angus Gratton
dc4ca6861f Remove udhcp (DHCP server support) as it's a GPL violation :( 2015-06-02 15:08:35 +10:00
Angus Gratton
2449914df1 Makefile: Add 'size' target 2015-06-02 15:08:35 +10:00
Angus Gratton
156143d850 Allow parallel 'make rebuild' 2015-06-02 15:08:35 +10:00
Angus Gratton
806962d5c7 Replace lwip SDK blob with lwip 1.4.1 upstream source
Compiles but won't work yet
2015-06-02 15:08:26 +10:00
Angus Gratton
496c5a8330 Heavily rework Makefile to support 'components' of source code to build independently, etc. 2015-06-02 15:08:03 +10:00
Angus Gratton
d68970d51b Add example HTTP client 2015-06-02 15:07:54 +10:00
Angus Gratton
c2bdc4bf96 Change main Makefile to common.mk, add per-example Makefile that
includes common.mk
2015-05-07 15:58:01 +10:00