Angus Gratton
9dec5dd628
gcc __attribute__((constructor)): Remove hacked calling, move ctor sections to flash
...
More hacky moving of parts of .rodata to flash, until we can move all of it.
2016-02-09 16:07:08 +11:00
Angus Gratton
b4af009efe
Add esp_gpio.c, including gpio_enable() function
...
Fix build broken since 812c2fef
(unclear why previous commits didn't break?)
2015-12-01 09:56:40 +11:00
Angus Gratton
812c2fef21
Removed INLINED (force inline) macro.
...
Progress towards #57 .
2015-11-28 18:01:03 +11:00
Angus Gratton
2887896c76
timers.h: Return error codes instead of true/false for failures
2015-11-28 16:33:39 +11:00
Angus Gratton
336bad573d
timers.h: Remove compile-time-auto-inlining complexity
...
Fixes bug mentioned in #72 (oops!), also progress towards #57 .
2015-11-28 16:32:52 +11:00
Johan Kanflo
4cfe40d348
extras/stdin_uart_interrupt: stdin via IRQ driven RX driver on UART0
...
See examples/terminal/ for usage
2015-11-21 16:15:58 +11:00
Angus Gratton
5301174290
registers.h: Add i2s, SLC, RTC register headers
2015-11-20 17:56:38 +11:00
Angus Gratton
d63a341c4c
RTC registers: Add some notes about other register values
...
Still patchy, but more towards #8 .
2015-11-20 17:49:46 +11:00
Angus Gratton
925753819e
Add in-progress RTC register header (some registers still undocumented)
...
Author for this work is @foogod, extracted from 1da996e
(open-libmain branch).
Progress towards #8 .
2015-11-20 17:31:11 +11:00
Angus Gratton
547c57c840
Add SLC interrupt number 1. Closes #69
2015-11-20 17:25:15 +11:00
Dag Ågren
cad1655330
Add static asserts and create slc.h header for descriptor struct
2015-11-19 21:14:16 +02:00
Dag Agren
1f1bb4d190
Add I2S and SLC register headers
2015-11-16 00:20:16 +02:00
Angus Gratton
5cd31c649a
GPIO2 UART iomux values: Remove _BLINK from macro name
...
This pin acts as a real TX not an activity LED as some pages suggest.
2015-10-28 20:31:50 +11:00
Angus Gratton
0165592231
iomux: Fix bug setting IOMUX_FUNC(4)
...
Function masking value was incorrect
2015-10-28 20:31:44 +11:00
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
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
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
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
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
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
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
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
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
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
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