Commit graph

320 commits

Author SHA1 Message Date
Angus Gratton
cc20f8efca 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
3d7fa49083 NMIExceptionHandler: Clean up, refactor to use excsave3 for stack pointer 2015-09-29 14:37:33 +10:00
Angus Gratton
c0c775e77d Add assembly code style to README & emacs dir-locals 2015-09-29 14:33:18 +10:00
Angus Gratton
23ea182e83 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
9f7a5a7fdd Consolidate interrupt management in core as esp/interrupts.h & esp_interrupts.c 2015-09-28 22:15:40 +10:00
Angus Gratton
606db46a89 Merge branch 'feature/mbedtls' 2015-09-28 13:29:38 +10:00
Angus Gratton
9f59dca90b Update README regarding mbedTLS 2015-09-28 13:09:07 +10:00
Angus Gratton
e8a60268c5 Remove axTLS 2015-09-28 13:01:22 +10:00
Angus Gratton
5088e7e64b hmac_test_vectors test: Replace axTLS with mbedTLS 2015-09-28 13:01:22 +10:00
Angus Gratton
4a3509d852 Add link to IRC channel 2015-09-25 18:26:57 +10:00
Angus Gratton
7ad7c1f5ad Remove extraneous extras/ subdirs - all merged into cpp_support now 2015-09-25 18:26:51 +10:00
Angus Gratton
8e5221b894 Merge branch 'experiments/unaligned_load' into feature/mbedtls_notworking 2015-09-25 16:57:49 +10:00
Alex Stewart
ad7217404b Code reformat/cleanup of exception_vectors.S 2015-09-24 22:43:29 -07:00
Alex Stewart
4ea9382ee6 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
3ceb07b9db 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
2f412bbcfd unaligned_load tests: Remove incorrect references to DoubleException 2015-09-25 09:22:06 +10:00
Angus Gratton
8f7f246a36 Refactor Hardware RNG functions to esp/hwrand.h
As suggested by @foogod, thanks!
2015-09-24 20:48:16 +10:00
Angus Gratton
8bcab35d51 Merge branch 'master' into feature/mbedtls 2015-09-24 20:40:36 +10:00
Angus Gratton
680047bc8d Merge branch 'experiments/unaligned_load' into feature/mbedtls 2015-09-24 20:25:10 +10:00
Angus Gratton
d1e0ac0d36 Merge remote-tracking branch 'foogod/open-startup' 2015-09-24 08:32:32 +10:00
Alex Stewart
34bd63c943 More LoadStoreErrorHandler performance improvements 2015-09-23 08:51:36 -07:00
Alex Stewart
bcacfa426a Further optimizations for LoadStoreErrorHandler 2015-09-21 22:13:14 -07:00
Angus Gratton
0f3b4d831c bmp180: Fix more 'temperatue' typos (thanks @atomman) 2015-09-21 08:46:45 +10:00
Alex Stewart
0d0d9277db Fix format strings in app_main.c 2015-09-20 14:09:30 -07:00
Alex Stewart
7b353b15d5 Merge branch 'master' into open-startup 2015-09-20 14:05:54 -07:00
Angus Gratton
7542e995ec http_get_mbedtls: Add root cert used by howmyssl.com 2015-09-20 21:41:39 +10:00
Angus Gratton
5b67ca4f5f Merge branch 'master' into feature/mbedtls 2015-09-20 21:26:29 +10:00
Angus Gratton
18381f88fe 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
9f5dedd1a8 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
68012041a7 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
464359ea66 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
1cbb34b9ab Rename main.cpp in tasks example 2015-09-20 21:13:38 +10:00
Angus Gratton
77813c8032 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
72377c4cd5 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
adb7dc9744 Remove stray extras/cplusplus 2015-09-20 21:13:38 +10:00
Angus Gratton
1f7a27b49a examples/Makefile: Use MAKE to properly invoke make recursively 2015-09-20 21:13:38 +10:00
Angus Gratton
f2651d1be3 common_macros: Include sys/cdefs.h, defines _Static_assert among others 2015-09-20 21:13:38 +10:00
Angus Gratton
07ba9ec6ea 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
8324a0ccc4 gpio.h: Explicit cast to enum type (needed for g++) 2015-09-20 21:13:38 +10:00
Angus Gratton
047d2def6a Post-merge cleanup of extras/cpp_support 2015-09-20 21:13:38 +10:00
Michael Jacobsen
78b006e6d3 Header files adjustment
(MQTT changes split from original commit - @projectgus.)
2015-09-20 21:13:38 +10:00
Michael Jacobsen
0a6722840c Header files re-arrangement 2015-09-20 21:13:38 +10:00
Michael Jacobsen
f251416307 Updated license 2015-09-20 21:13:38 +10:00
Michael Jacobsen
19cff5ae30 Header files adjustments 2015-09-20 21:13:38 +10:00
Michael Jacobsen
3d8ed11087 Added C++ base components and example 2015-09-20 21:13:38 +10:00
Angus Gratton
d308687782 Add basic C++ new/delete operators, as contributed by @mikejac in #24 2015-09-20 21:13:38 +10:00
Angus Gratton
aea147ad6a 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
436aa8b8cc Mostly updated header files for use in C++ 2015-09-20 21:13:38 +10:00
Alex Stewart
9d62d09d3f 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
Alex Stewart
dc1b8b1816 Add sanity-test suite to unaligned_load.c
Tests are designed to methodically exercise all code paths/opcodes/offsets/etc.
2015-09-19 15:16:44 -07:00