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
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
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
7be365ef08
gpio.h: Explicit cast to enum type (needed for g++)
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
Angus Gratton
8b90dbd9e5
Merge branch 'feature/c++'
2015-09-12 16:27:26 +10:00
Angus Gratton
c45e84d61d
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-12 16:21:26 +10:00
Angus Gratton
91d897dbbe
iomux: Fix setting of invalid bits when masking in iomux fields
...
Fixes regression from 2a939e97
Part of issue #45
2015-09-12 15:23:42 +10:00
Angus Gratton
7ed064a750
libc: Redefine int32_t/uint32_t as 'int' not 'long'
...
libc built from projectgus/newlib-xtensa@0077776963
Closes #42
2015-09-05 13:37:00 +10:00
Alex Stewart
a88f36d986
More app_main.c fixups
...
It's alive! IT'S ALIVE!!
2015-08-28 18:53:43 -07:00
Alex Stewart
a9eb3a38e3
More app_main fixups from object code comparisons
2015-08-28 18:53:43 -07:00
Alex Stewart
aa7f305e16
Various app_main.c bug fixes
2015-08-28 18:53:43 -07:00
Alex Stewart
a044c061d5
Replace libmain:app_main.o with core/app_main.c
2015-08-28 18:53:43 -07:00
Alex Stewart
b0206d0ca6
Fix broken UART(i) definition
2015-08-25 22:31:47 -07:00
Angus Gratton
c824bcf74a
common_macros: Include sys/cdefs.h, defines _Static_assert among others
2015-08-26 11:11:31 +10:00
Angus Gratton
c565e2b90d
gpio.h: Explicit cast to enum type (needed for g++)
2015-08-26 10:49:00 +10:00
Angus Gratton
fff17627d9
Merge branch 'master' into feature/c++
2015-08-26 10:46:48 +10:00
Alex Stewart
e2e841c660
Remove 'packed' attribute from all regs structs
2015-08-25 17:13:13 -07:00
Alex Stewart
2a939e97b5
Remove unnecessary AND for VAL2FIELD macro
...
Added VAL2FIELD_M / SET_FIELD_M for rare cases when there might actually be some need for it.
2015-08-25 17:07:06 -07:00
Angus Gratton
22d35ed5f2
Merge pull request #29 from foogod/issue_8
...
Add more *_regs.h definitions
2015-08-24 16:14:19 +10:00
Angus Gratton
050b17adbe
Add a comment explaining commented out REG_BASE lines
...
Change was part of #27
2015-08-22 17:39:25 +10:00
Alex Stewart
2f3b82812b
Add esp/rtcmem_regs.h
2015-08-21 14:20:00 -07:00
Alex Stewart
fdbb361a60
Fix a couple of struct def issues with 2 previous commits
2015-08-21 14:06:38 -07:00
Alex Stewart
0b6dfb6080
Add more regs to esp/dport_regs.h
...
Added a bunch of definitions based on info in http://esp8266-re.foogod.com/wiki/Memory_Map#dport0
2015-08-21 13:59:20 -07:00
Alex Stewart
e88b5b8c4b
Add esp/uart_regs.h and esp/spi_regs.h
2015-08-21 13:56:23 -07:00
Alex Stewart
1ebb85b150
rename GPIO_CONF_DRIVER_ENABLE back to GPIO_CONF_PUSH_PULL
2015-08-21 09:54:20 -07:00
Alex Stewart
8263fce80f
Fix leftover IOMUX_FUNC_A/D references
2015-08-19 16:53:02 -07:00
Alex Stewart
d2231b7ff5
Cleanup a few comments in *_regs.h files
2015-08-19 16:50:56 -07:00
Alex Stewart
177ad281aa
Add esp/wdt_regs.h
2015-08-19 16:48:11 -07:00
Alex Stewart
4fa66ca391
Added esp/timer_regs.h and esp/dport_regs.h
2015-08-19 11:34:18 -07:00
Alex Stewart
b271e19b51
Replace stdint.h with esp/types.h in gpio_regs.h
2015-08-19 09:05:03 -07:00
Alex Stewart
b84a69168f
Fix cut-paste error in gpio_regs.h comment
2015-08-19 09:03:18 -07:00
Alex Stewart
fc1a1a7d0a
Add esp/gpio_regs.h
2015-08-18 22:46:25 -07:00
Alex Stewart
2ffd3da71e
Add esp/iomux_regs.h
2015-08-18 17:38:31 -07:00
Michael Jacobsen
da6b5f74bb
Mostly updated header files for use in C++
2015-08-10 15:31:03 +10:00
Angus Gratton
19b8383069
Working TFTP server based OTA updates
...
Tested with 16MBit flash configuration, two rboot update slots.
Closes #10
2015-08-05 14:10:14 +10:00
Angus Gratton
28fdebee92
gpio: Change gpio_write argument to bool
2015-07-29 10:35:15 +10:00
Angus Gratton
86188c01fd
Merge branch 'newlib'
2015-07-15 16:01:18 +10:00
Angus Gratton
1d72ed3f70
Hardware timer support
2015-07-09 12:29:40 +10:00
Angus Gratton
2c1b1ab141
Minor core header cleanups
2015-06-18 09:04:45 +10:00
Angus Gratton
1b0124cf05
Timer FRC1 & FRC2 registers
...
Mostly determined from reverse engineering and poking around.
Includes first "experiments" program with random bits and pieces for
poking at registers, may be useful to keep in source control but not
useful for writing actual programs.
2015-06-12 17:05:54 +10:00
Angus Gratton
c09167715e
Indentation fixes
...
- Fix dir-locals so emacs won't inject occasional tabs to case statements.
- Fix stray tab indentation in example programs. (Thx @pfalcon for pointing this out)
2015-06-09 09:00:32 +10:00
Angus Gratton
0078252df3
Add GPIO config, interrupt registers, GPIO interrupt support, 'button' example
2015-06-08 18:20:29 +10:00
Angus Gratton
822533fd92
Interrupt support refactor
...
Write inline versions for SDK-based interrupt convenience functions.
2015-06-08 18:20:29 +10:00