Commit graph

918 commits

Author SHA1 Message Date
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
0078a9e04e Travis: Verbose build output 2015-12-01 09:54:07 +11:00
Angus Gratton
e264d63e35 Pass linker search paths with -L not -Wl,-L, so they take priority over sysroot
This fixes link-time errors where the toolchain used was esp-open-sdk
built with the default STANDALONE=y (meaning there are Espressif SDK
libs in the sysroot).

Closes #74
2015-12-01 09:44:50 +11:00
Angus Gratton
812c2fef21 Removed INLINED (force inline) macro.
Progress towards #57.
2015-11-28 18:01:03 +11:00
Angus Gratton
2d6eeb83ea README: Make PATH step more explicit, as suggested on IRC 2015-11-28 16:33:39 +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
Angus Gratton
d14d5b1aab stdin_uart_interrupt driver: Don't reset TX FIFO (loses output otherwise)
Fixes bug in 'terminal' example where banner message didn't print on startup.

Relates to #59.
2015-11-21 17:13:08 +11:00
Angus Gratton
01773fd1c9 terminal example: Remove unused BUFFER_SIZE macro, redundant setbuf
(Line-buffering is now disabled by default.)

Relates to #59.
2015-11-21 17:11:41 +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
Alex Stewart
3b3d41d502 Merge pull request #70 from DagAgren/master
Add I2S and SLC register headers
2015-11-19 12:25:30 -08: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
4b5349c236 Makefile CPPFLAGS: Don't need FLASH_SIZE defined any more
To determine flash size from inside a program, better to look via the
SPI flash header at this stage.
2015-11-13 12:20:05 +11:00
Angus Gratton
e8eac9614d Simplify linker script to remove preprocessing, not check flash sizes
Memory layout is now split into two linker scripts for OTA vs
non-OTA (different starting offsets), remaining functionality in
common.ld.

As discussed in #64, progress towards #38
2015-11-13 12:15:01 +11:00
Angus Gratton
fbea34b07a Linker script: Fix IROM0_LEN calculation
Use linker script arithmetic (yay?) to calculate flash size in bytes
from FLASH_SIZE in megabits.

Closes #64
2015-11-13 11:25:08 +11: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
Alex Stewart
f1808860b2 Add utils/addrsource 2015-10-27 12:14:08 -07:00
Angus Gratton
6506a29d21 serial_echo example: Remove setbuf() call as stdout no longer buffered by default 2015-10-27 13:36:51 +11:00
Angus Gratton
51c752dbcb Remove redundant symbols_norename.txt
No longer used, and all the symbols in those lists are found in newlib
libc or our own source code now.
2015-10-27 09:14:09 +11:00
Alex Stewart
8bcec7eea1 Merge pull request #53 from SuperHouse/uart_h
Fix issue #52.  Add esp/uart.h
2015-10-10 22:04:53 -07:00
Angus Gratton
a5a76ed93d http_get_mbedtls example: Remove fflush() calls as stdout is no longer line buffered 2015-10-11 09:25:51 +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
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