Angus Gratton
d39b3f6bb6
NMI Handler: Save 512 bytes of RAM via NMI stack space. Add stack overflow detection.
2015-09-29 17:33:15 +10:00
Angus Gratton
697d5b72bc
NMIExceptionHandler: Don't save callee-saved registers, fix stack alignment
...
NMI routine sdk_wDev_ProcessFiq seems to be written in C, meets ABI
calling conventions for callee-saved registers. Not sure why SDK
handlers saved them.
NMI handler now also meets the ABI requirement that stack is 16 byte
aligned (doesn't seem strictly necessary, but can't hurt.)
2015-09-29 15:05:57 +10:00
Angus Gratton
4448380c5e
NMIExceptionHandler: Clean up, refactor to use excsave3 for stack pointer
2015-09-29 14:37:33 +10:00
Angus Gratton
c595562343
Add assembly code style to README & emacs dir-locals
2015-09-29 14:33:18 +10:00
Angus Gratton
89c481c606
Simplify interrupt and RTOS timer tick handlers
...
RTOS Timer tick handler is now the same as any other ISR.
This causes a few subtle behaviour changes that seem OK but are worth noting:
* RTOS tick handler sdk__xt_timer_int() is now called from one stack
frame deeper (inside _xt_isr_handler()), whereas before it was called
from the level above in UserHandleInterrupt. I can't see any way that
the extra ~40 bytes of stack use here hurt, though.
* sdk__xt_timer_int() was previous called after all other interrupts
flagged in the handler, now it's called before the TIMER FRC1 & FRC2
handlers. The tick handler doesn't appear to do anything particularly
timing intensive, though.
* GPIO interrupt (value 3) is now lower priority than the SPI
interrupt (value 2), whereas before it would have been called before
SPI if both interrupts triggered at once.
2015-09-29 13:21:04 +10:00
Angus Gratton
ed8470631f
Consolidate interrupt management in core as esp/interrupts.h & esp_interrupts.c
2015-09-28 22:15:40 +10:00
Angus Gratton
65307aed75
Merge branch 'feature/mbedtls'
2015-09-28 13:29:38 +10:00
Angus Gratton
0f960f0b2c
Update README regarding mbedTLS
2015-09-28 13:09:07 +10:00
Angus Gratton
233e5f377a
Remove axTLS
2015-09-28 13:01:22 +10:00
Angus Gratton
99facb808e
hmac_test_vectors test: Replace axTLS with mbedTLS
2015-09-28 13:01:22 +10:00
Angus Gratton
8117ae330b
Add link to IRC channel
2015-09-25 18:26:57 +10:00
Angus Gratton
1907e3c45e
Remove extraneous extras/ subdirs - all merged into cpp_support now
2015-09-25 18:26:51 +10:00
Angus Gratton
fc9d9ff89c
Merge branch 'experiments/unaligned_load' into feature/mbedtls_notworking
2015-09-25 16:57:49 +10:00
Alex Stewart
b813489524
Code reformat/cleanup of exception_vectors.S
2015-09-24 22:43:29 -07:00
Alex Stewart
b6c2e4df59
Fix bad memory access in NMI handler
...
CallNMIExceptionHandler was saving/restoring registers to the wrong offsets,
causing it to potentially corrupt the first two slots of the
LoadStoreErrorHandler's save area.
2015-09-24 20:12:14 -07:00
Angus Gratton
4dd8712526
unaligned_load: Run some tests after scheduler/network/wifi all up and running
...
As written this doesn't expose any new bugs.
2015-09-25 09:41:53 +10:00
Angus Gratton
edbfd3a66e
unaligned_load tests: Remove incorrect references to DoubleException
2015-09-25 09:22:06 +10:00
Angus Gratton
87f77b1021
Refactor Hardware RNG functions to esp/hwrand.h
...
As suggested by @foogod, thanks!
2015-09-24 20:48:16 +10:00
Angus Gratton
09405a9095
Merge branch 'master' into feature/mbedtls
2015-09-24 20:40:36 +10:00
Angus Gratton
c31b9be9a2
Merge branch 'experiments/unaligned_load' into feature/mbedtls
2015-09-24 20:25:10 +10:00
Angus Gratton
020ab328f7
Merge remote-tracking branch 'foogod/open-startup'
2015-09-24 08:32:32 +10:00
Alex Stewart
b15d149b09
More LoadStoreErrorHandler performance improvements
2015-09-23 08:51:36 -07:00
Alex Stewart
f1bff97103
Further optimizations for LoadStoreErrorHandler
2015-09-21 22:13:14 -07:00
Angus Gratton
c5a53c87fa
bmp180: Fix more 'temperatue' typos (thanks @atomman)
2015-09-21 08:46:45 +10:00
Alex Stewart
b280f8a725
Fix format strings in app_main.c
2015-09-20 14:09:30 -07:00
Alex Stewart
ba7492756c
Merge branch 'master' into open-startup
2015-09-20 14:05:54 -07:00
Angus Gratton
59a0a6f86e
http_get_mbedtls: Add root cert used by howmyssl.com
2015-09-20 21:41:39 +10:00
Angus Gratton
8a470e6f98
Merge branch 'master' into feature/mbedtls
2015-09-20 21:26:29 +10:00
Angus Gratton
b03f279f74
mbedTLS: Add ESP8266 hardware entropy source discovered by @foogod
...
Addresses #3 , provided turns out to be an effective HWRNG.
2015-09-20 21:15:30 +10:00
Angus Gratton
1b22cc088e
Add initial mbedTLS and HTTPS example project (using howsmyssl.com JSON API)
...
mbedTLS version 2.1.0 (current stable)
Has some known issues/hacks:
* Entropy source not hooked in at all
* Linker script has a messy hack in it to store some (not all) data in
irom
2015-09-20 21:13:38 +10: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
Angus Gratton
0da6c97a9d
Rename main.cpp in tasks example
2015-09-20 21:13:38 +10:00
Angus Gratton
3aff91c85c
Rename GPIO_CONF_PUSH_PULL to GPIO_CONF_OPEN_DRAIN
...
Seems I got the functionality of this bit inverted when
initially testing.
In testing it also seems open drain mode is ignored on some pins, which
still source current. Needs more investigation though (may be pullups
internal to the ESP modules or set by default in software.)
Relates to #45
2015-09-20 21:13:38 +10:00
Angus Gratton
f31daa7f9a
iomux: Fix setting of invalid bits when masking in iomux fields
...
Fixes regression from 2a939e97
Part of issue #45
2015-09-20 21:13:38 +10:00
Angus Gratton
a5ba05b5f9
Remove stray extras/cplusplus
2015-09-20 21:13:38 +10:00
Angus Gratton
8a29e46319
examples/Makefile: Use MAKE to properly invoke make recursively
2015-09-20 21:13:38 +10:00
Angus Gratton
6c06e5e91e
common_macros: Include sys/cdefs.h, defines _Static_assert among others
2015-09-20 21:13:38 +10:00
Angus Gratton
1c8017484c
Move c++ operators back to link-time resolutions, part of 'core'
...
This reverts commit e9b1df5cb5
.
2015-09-20 21:13:38 +10:00
Angus Gratton
7be365ef08
gpio.h: Explicit cast to enum type (needed for g++)
2015-09-20 21:13:38 +10:00
Angus Gratton
6416fe7329
Post-merge cleanup of extras/cpp_support
2015-09-20 21:13:38 +10:00
Michael Jacobsen
fbb01c81ad
Header files adjustment
...
(MQTT changes split from original commit - @projectgus.)
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
028451fa84
Updated license
2015-09-20 21:13:38 +10:00
Michael Jacobsen
63bbf92a76
Header files adjustments
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
94fabc6ceb
Add basic C++ new/delete operators, as contributed by @mikejac in #24
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
Alex Stewart
a3d7732da8
unaligned_load.c: Added more naive_strcpy tests
...
Added tests for naive_strcpy using a variety of different regs, as execution time can depend on which register is being used.
2015-09-19 20:03:22 -07:00