Commit graph

169 commits

Author SHA1 Message Date
Angus Gratton
678b59babf Honour values of configCPU_CLOCK_HZ & configTICK_RATE_HZ for tick rate
Fixes #147

* Can vary tick rate from 100Hz via configTICK_RATE_HZ. Note that the
  SDK binary libraries are hard-coded to assume the tick rate is 100Hz,
  so changing the tick rate may have unexpected consequences for lower
  layer WiFi behaviour (such as certain kinds of timeouts happening
  faster/slower.)

* Setting configCPU_CLOCK_HZ to 160MHz means ESP will set 160MHz during
  initialisation. Only 80MHz and 160MHz are supported.

* Timing of tasks is no longer affected by current CPU freq (whether set
  via configCPU_CLOCK_HZ or via sdk_system_update_cpu_freq().)
  Previously doubling the CPU frequency would double the tick rate.
2016-07-06 17:22:09 +10:00
Alex Stewart
8c9a77efe8 Added first half of RE'd user_interface.c 2016-07-06 17:21:34 +10:00
Alex Stewart
4d6fa0ccfa Misc post-merge fixups 2016-07-06 17:21:34 +10:00
Alex Stewart
2ecbf1d584 First batch of opensdk additions
Replacements for:
    libmain/misc.o
    libmain/os_cpu_a.o
    libmain/spi_flash.o
    libmain/timers.o
    libmain/uart.o
    libmain/xtensa_context.o
2016-07-06 17:21:34 +10:00
Angus Gratton
04b119a61e Seed libc PRNG from hardware RNG on reset 2016-06-30 08:18:10 +10:00
Angus Gratton
4b39a0e6ca Merge pull request #136 from SuperHouse/feature/ota_improvements
OTA improvements, always enable OTA mode
2016-05-28 12:46:58 +10:00
Angus Gratton
230aa9fd37 Add new "RAM" storage macro for putting constant data in RAM
Also update comments in common_macros.h following #142
2016-05-28 12:39:56 +10:00
Angus Gratton
d9202af2aa Use latest upstream rboot, always build with OTA - use prebuilt rboot if
none is compiled locally.
2016-05-28 11:27:10 +10:00
Angus Gratton
6eceb5843c OTA: Move OTA-aware Cache_Read_Enable to core
Otherwise images built with OTA=1 are only OTA-suitable if they also
link rboot-ota.
2016-05-28 11:27:10 +10:00
Angus Gratton
f0db26604f brk/malloc: Allow malloc to fail when out of RAM
Fixes #76.
2016-05-27 12:09:07 +10:00
Angus Gratton
3ba19d7c4e Merge pull request #137 from SuperHouse/feature/better_crash_dumps
Better crash dumps
2016-05-17 09:38:19 +10:00
Angus Gratton
1e9296f60c Fatal exceptions: Cleanly deal with exceptions that occur inside fatal_exception_handler_inner()
In case of heap corruption or some other major problem, dumping details
in the exception handler can cause a crash loop - so fail out if we seem
to be going in circles.
2016-05-17 09:27:31 +10:00
Angus Gratton
981c87899b Add heap information to fatal exception & abort dumps 2016-05-15 22:30:01 +10:00
Angus Gratton
efedd24624 fatal exception handler: Only dump "registers" from stack for fatal user exceptions 2016-05-15 22:30:01 +10:00
Angus Gratton
36886412e6 Add abort() implementation
Also reduces the IRAM footprint of the fatal exception handler, as only
the prelude (which disables interrupts & enables the flash mapping) is
in IRAM now.

Closes #54, relevant to #133.
2016-05-15 22:30:01 +10:00
Angus Gratton
cf350efd8a Dump register state on fatal exception 2016-05-15 22:30:01 +10:00
Angus Gratton
52f9b13faf Break out debug dump functions into their own compilation unit 2016-05-15 22:30:01 +10:00
Angus Gratton
640609c3f5 lwip sys_arch: Add functional xInsideISR implementation
Relies on global flags set when the user ISR is executing.

Unclear if this fixes any bugs as ISR code may not have been calling
into LWIP, but the previous implementation was broken.
2016-05-15 22:30:01 +10:00
Angus Gratton
f9fb0f212c Add stack memory dump to fatal exception handler 2016-05-15 22:24:40 +10:00
Angus Gratton
fd20b1a530 Add PHY hardware management for Bluetooth Coexistence pin choice 2016-05-15 22:21:10 +10:00
Angus Gratton
b61d06e940 Wrap structure around phy_info PHY initialisation settings
Add notes based on testing some of the values found there.
2016-05-15 22:21:10 +10:00
Angus Gratton
fee987d5cf Startup code: Move user_start_phase2 to irom section
This saves 1020 bytes from the text (IRAM) section by preventing
inlining of user_start_phase2() (and dump_flash_config_sectors() as
well) into the IRAM function sdk_user_start().
2016-05-15 22:16:42 +10:00
Angus Gratton
dccc57433d Move static constructor calls to after PHY, clock & baud rate are setup
Otherwise anything printed inside the constructor happens at unexpected baud rate.

Ref #128
2016-04-24 18:52:20 +10:00
Angus Gratton
b61b62136b 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.

Candidate fix for #128
2016-04-24 18:52:16 +10:00
UncleRus
3a62a0af0c esp/gpio.h c++ compatibility 2016-03-22 01:51:50 +05:00
UncleRus
42018f0315 SPI big endian swap bug fix, spi_get_settings()/spi_set_settings() 2016-03-18 03:27:36 +05:00
UncleRus
b0fb8736a8 Comments updated 2016-03-13 16:48:05 +05:00
UncleRus
22ceb08b49 Tabs to spaces. Again. 2016-03-13 02:25:15 +05:00
UncleRus
b4554b5806 SPI mode bug fixed, SPI endianness bugs fixed, new spi_transfer() 2016-03-13 01:59:52 +05:00
UncleRus
9dc565ff7c Separate send/receive buffers 2016-03-08 04:00:11 +05:00
UncleRus
b5c2120efc Removed redeclaration of peripheral bus freq 2016-03-06 01:24:59 +05:00
UncleRus
0e3f3bb2ca Frequency divider bug 2016-03-05 03:07:57 +05:00
UncleRus
bd40f75d37 Hardware SPI driver 2016-03-05 02:29:01 +05:00
Angus Gratton
2e8c370d2c Merge pull request #94 from foogod/gpio_pullup_changes
Separate pullup config out of `gpio_enable()`
2016-02-24 09:17:39 +11:00
Angus Gratton
d1091b69d1 Make the task stack overflow message clearer
Related to #96
2016-02-24 08:54:32 +11:00
Alex Stewart
8279b5cfd1 Added some clarifications to comments in esp/gpio.h 2016-02-22 09:32:12 -08:00
Alex Stewart
c36feab845 Separate pullup config out of gpio_enable()
Created `gpio_set_pullup` to configure pullups independently of direction.
Removed GPIO_INPUT_PULLUP direction type.
Added misc other helper functions in iomux.h
2016-02-21 18:34:11 -08: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