Commit graph

336 commits

Author SHA1 Message Date
Angus Gratton
c2e3541c05 Disable default line-buffering of stdout
As discussed in #52. Application can re-enable buffering on stdout with setbuf() or setbuf()
2015-10-11 09:21:30 +11:00
Angus Gratton
0c6a8881a4 Fix sdk_uart_rx_one_char implementation, move into sdk_compat.c 2015-10-06 23:48:28 +11:00
Angus Gratton
be3968abf0 stdout: Bring back auto-CRLF behaviour as discussed 2015-10-06 23:24:40 +11:00
Angus Gratton
7823a28ff8 Change default baud rate back to 74906bps, compatible with boot ROM rate
This reverts a behaviour change from 3ceadfc0a6.
2015-10-06 23:11:17 +11:00
Angus Gratton
cd68622292 Merge branch 'master' into uart_h 2015-10-06 18:37:28 +11:00
Angus Gratton
dc0fa4e207 Merge pull request #50 from SuperHouse/fix/interrupts
Fix/interrupts
2015-10-06 18:36:03 +11:00
Angus Gratton
12399c05ef exception_vectors: Use call0 for sdk__xt_int_exit, in case it needs a literal 2015-10-06 18:25:48 +11:00
Angus Gratton
0d35c0c02d exception_vectors.S: Use .Lnnn syntax for local labels, as noted by @foogod 2015-10-06 18:24:35 +11:00
Angus Gratton
0c0668bfa0 app_main: Refactor to use uart.h functions instead of raw register access
This removes the automatic insertion of CR ahead of LF by the SDK putc
function when called inside the SDK (although we'd already replaced
printf, so most were bypassing this putc function anyhow.)
2015-10-06 18:14:05 +11:00
Angus Gratton
4f05f15366 serial_echo: Fix program name in makefile 2015-10-06 17:55:37 +11:00
Angus Gratton
3060d72234 Add a basic serial_echo example, with a silly Easter Egg 2015-10-06 17:54:43 +11:00
Angus Gratton
f69791729e libc: newlib revision daf48a0d3 with various space-saving measures:
* --enable-newlib-reent-small
* Compiled with -DHAVE_ABORT -DHAVE_SIGNAL
* Default fd buffer size shrunk to 128 bytes (ref #52)

Full build options:
../configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --disable-newlib-io-long-long --disable-newlib-io-float --disable-newlib-io-long-double --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
CROSS_CFLAGS="-DSIGNAL_PROVIDED -DABORT_PROVIDED" make
2015-10-06 17:49:00 +11:00
Angus Gratton
3ceadfc0a6 uart.h: Add uart_get_baud/uart_set_baud functions, change default baud rate from 74906 to 115200 2015-10-06 17:49:00 +11:00
Alex Stewart
707d0ed981 Fix issue #52. Add esp/uart.h 2015-10-05 21:51:57 -07:00
Angus Gratton
afd58bc1ff core headers: Add C++ linker compatibility 2015-10-05 18:33:32 +11:00
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