Commit graph

340 commits

Author SHA1 Message Date
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
1d72ed3f70 Hardware timer support 2015-07-09 12:29:40 +10:00
Angus Gratton
4217a1029e xtensa_interrupts: Add _xt_disable_interrupts/_xt_restore_interrupts inline functions 2015-06-18 11:30:13 +10:00
Angus Gratton
5151ccc3b2 xtensa_interrupts: Add esync after writing intenable/intclear, add comment about non-interrupt-safe mask/unmask 2015-06-18 09:04:45 +10:00
Angus Gratton
2c1b1ab141 Minor core header cleanups 2015-06-18 09:04:45 +10:00
Angus Gratton
ad37abda8b blink examplpe: Fix FreeRTOSConfig mistake 2015-06-17 08:07:26 +10:00
Angus Gratton
72b61b17f8 Create a default FreeRTOSConfig.h, can override on a per-program basis
Closes #12
2015-06-16 17:28:32 +10:00
Angus Gratton
8478dfd92f Examples: Rename main.c files to more descriptive file names 2015-06-16 16:59:32 +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
a3c4469b1f Add a linker script comment for all the patched newlib _lock_xxx symbols 2015-06-16 16:34:13 +10:00
Angus Gratton
b7b16de429 Alias ets_printf directly to printf at link time
I thought maybe ets_printf had some special properties, but it doesn't
seem to have any so far.
2015-06-16 16:22:55 +10:00
Angus Gratton
2e51f7b164 http_get_ssl example: Fix name of output elf file 2015-06-16 14:23:48 +10:00
Angus Gratton
93dc7edead Grow linker script irom section for 512KB flash chip
Necessary to fit http_get_ssl example, newlib string functions are
larger than espressif SDK implementations.
2015-06-16 14:23:47 +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
f0b5bc324c Implement xPortGetFreeHeapSize when using libc memory management 2015-06-16 14:20:52 +10:00
Angus Gratton
49268a33e1 Link against newlib from esp-open-sdk's libcirom, replace FreeRTOS heap management.
Compiles and runs, expects xtensa lock.c patch in newlib (will still run
otherwise but malloc/free and other functions will be non-memory-safe...)
2015-06-16 14:20:24 +10:00
Angus Gratton
1b0124cf05 Timer FRC1 & FRC2 registers
Mostly determined from reverse engineering and poking around.

Includes first "experiments" program with random bits and pieces for
poking at registers, may be useful to keep in source control but not
useful for writing actual programs.
2015-06-12 17:05:54 +10:00
Angus Gratton
8f3111c5e1 Add local.mk to gitignore 2015-06-12 10:40:35 +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
47a7bb1952 blink example: Remove stray gpio_enable call 2015-06-12 09:57:32 +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
b3aa4eedd3 Change github URLs to use HTTPS not ssh
Thanks again to vic for pointing this out!
2015-06-12 07:44:16 +10:00
Angus Gratton
5e08256849 Add note about building esp-open-sdk with STANDALONE=n
(thanks vic on esp8266.com for pointing this out)
2015-06-12 07:42:44 +10:00
Angus Gratton
6a5866aa55 http examples: don't write NULs to sockets
Thanks @pfalcon for the heads-up.
2015-06-09 09:03:56 +10:00
Angus Gratton
c09167715e Indentation fixes
- Fix dir-locals so emacs won't inject occasional tabs to case statements.
- Fix stray tab indentation in example programs. (Thx @pfalcon for pointing this out)
2015-06-09 09:00:32 +10:00
Angus Gratton
a59b1565e4 Better comments on esp_gpio_interrupts.c 2015-06-08 18:33:56 +10:00
Angus Gratton
0078252df3 Add GPIO config, interrupt registers, GPIO interrupt support, 'button' example 2015-06-08 18:20:29 +10:00
Angus Gratton
822533fd92 Interrupt support refactor
Write inline versions for SDK-based interrupt convenience functions.
2015-06-08 18:20:29 +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
a476fb007e Fix IROM macro 2015-06-08 17:58:10 +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
5cb37060cd Readme: Add third party libraries link and axTLS 2015-06-03 14:45:31 +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
4790654bc2 Add actual LICENSE file 2015-06-03 07:53:55 +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
9e3328abe8 Add 'examples' top level Makefile for building all examples together 2015-06-02 17:56:41 +10:00
Angus Gratton
70cec6c3b7 Rename the sdk_prototypes header to sdk_private 2015-06-02 17:15:00 +10:00
Angus Gratton
1292829a07 Add hmac test vector test program 2015-06-02 17:15:00 +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
93c3e1a53a Add http_get_ssl example 2015-06-02 17:12:20 +10:00