Angus Gratton
bfd38cd1e2
Experimental support for storing const strings in SPI flash or IRAM
...
As discussed in #11
Known limitations:
- Only supports l8ui/l16ui
- Unoptimised load routine
- Not called from DoubleExceptionHandler but should be
- Doesn't restore state properly when falling through to fatal exception handler
2015-08-10 12:03:03 +10:00
Angus Gratton
25e124a612
ld: Link memmove into IRAM (used by sprintf, etc.)
2015-08-10 11:54:30 +10:00
Angus Gratton
d685581829
Syscall hander: Fix a3 save address
...
(SDK doesn't use syscall exception so bug probably never hit?)
2015-08-10 11:54:30 +10:00
Angus Gratton
1cb2de5b96
spi_flash.h: Correct comment regarding flashchip structure
...
From ed0a079d9b
2015-08-07 18:19:09 +10:00
Angus Gratton
e7460de0a1
esp_system.h: Fix return type of sdk_system_get_rst_info
2015-08-06 16:35:20 +10:00
Angus Gratton
ed0a079d9b
Expose SDK flashchip parameter
...
More thanks due to @foogod's RE work for this.
2015-08-06 11:40:44 +10:00
Angus Gratton
d703f8eae0
esptool.py: Ensure flash size args are passed at each step
...
('esptool.py write_image' will override the flash size in your binaries with the
default, given the chance)
2015-08-06 11:40:44 +10:00
Angus Gratton
bed6907d22
Exception vector address must be 256 byte aligned
...
Not actually a problem with the current linker script as the address is
predetermined there at start of IRAM, but might as well be accurate
about it.
As per advice from @foogod on esp8266-re mailing list:
https://groups.google.com/d/msg/esp8266-re/1ljIY3Zttbo/HvzHSWOLCgAJ
2015-08-06 09:54:46 +10:00
Angus Gratton
5f82b3c27f
Merge branch 'master' of github.com:SuperHouse/esp-open-rtos
2015-08-05 14:24:10 +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
6887a8119a
Simple example: Fix printf modifier
2015-08-05 14:04:12 +10:00
Angus Gratton
dd538b2889
Makefile: Pass flash size & speed flags to both esptool.py & esptool2
2015-08-05 14:04:12 +10:00
Angus Gratton
6bbd6736a4
Add SDK set_sleep_type/get_sleep_time functions (undocumented in 0.9.9, may not workas expected)
2015-08-03 12:52:42 +10:00
Angus Gratton
aed843fc14
exception_vectors: Remove some cruft some the symbol table
2015-07-30 10:10:37 +10:00
Angus Gratton
147257efa4
Almost functional OTA support
...
ota_basic example can receive new image via TCP.
However - writing to flash with interrupts disabled causes data loss,
and the TCP flow is very slow to recover. Linux sender quickly ramps up
RTT timer to very long retry intervals, crippling performance &
throughput.
Running the update without the flash writes causes the data to be
received quickly, so this is definitely an issue with the time taken for
the erase cycle.
Progress towards #10
2015-07-29 16:50:23 +10:00
Angus Gratton
3797cf5357
lwip: Ignore some compiler warnings when debugging is on
2015-07-29 16:50:23 +10:00
Angus Gratton
efc454035c
Move all code paths touched by NMI to IRAM
...
Prerequisite for calling Cache_Read_Disable() for OTA updates.
Massive thanks due to @foogod and their xtobjdis tool, creating the call
graph of where the wDev_ProcessFiq touched (including in newlib, etc.)
would have otherwise been very painful:
https://bitbucket.org/foogod/xtobjdis
2015-07-29 16:47:33 +10:00
Angus Gratton
28fdebee92
gpio: Change gpio_write argument to bool
2015-07-29 10:35:15 +10:00
Angus Gratton
9c7c94f96d
Makefile: When assembling, add the source dir to the assembler include path
2015-07-28 11:42:56 +10:00
Angus Gratton
30877f4ef0
Makefile: Assemble any .s files files found in SRC_DIRs
2015-07-28 11:27:41 +10:00
Angus Gratton
2440ba526a
Makefiles: Allow for EXTRA_COMPONENTS and EXTRA_LDFLAGS to append to either variable
2015-07-28 11:20:18 +10:00
Angus Gratton
265cef7e00
Add some LED debugging assembler macros
...
Not used directly in esp-open-rtos but useful to keep around.
2015-07-28 11:19:01 +10:00
Angus Gratton
ed7ba52c9a
Add exception vectors & low-level handlers
...
At the moment these are almost bit-for-bit copies of the vector
behaviour in the RTOS SDK, but hopefully that will start to change.
Progress towards #2
2015-07-28 11:01:57 +10:00
Angus Gratton
4d91d4432e
Merge pull request #14 from kanflo/master
...
Changed flashing order
2015-07-24 09:57:10 +10:00
Johan Kanflo
d4873379a9
Changed flashing order
...
Workaround for a ESP8266 ROM bug that cuases SPI flash erase
to sometimes erase an extra sector. See
https://github.com/themadinventor/esptool/issues/33
2015-07-23 14:13:07 +02:00
Angus Gratton
d4a503f320
Fix bug with blank OTA binary file name
2015-07-23 15:19:30 +10:00
Angus Gratton
87dc2317f5
Support building an OTA-compatible flash image
...
Image is suitable for SDK v1.2 bootloader or rBoot.
2015-07-21 15:27:19 +10:00
Angus Gratton
5bbbc1f144
Run linker scripts via C preprocessor
2015-07-21 15:27:19 +10:00
Angus Gratton
c95369e86c
emacs dir-locals.el: Only disable tabs in c-mode (Makefiles need tabs)
2015-07-21 15:26:11 +10:00
Angus Gratton
e0e7814856
Update README, including removing references to esp8266-wiki
...
Closes #9
2015-07-15 16:15:35 +10:00
Angus Gratton
86188c01fd
Merge branch 'newlib'
2015-07-15 16:01:18 +10:00
Angus Gratton
689cf874b2
Provide our own newlib libc
...
Newlib 2.2.0 w/ nan ofeatures, xtensa patches, locking
implementation.
Built from https://github.com/projectgus/newlib-xtensa
branch xtensa-2_2_0-lock
commit daa6ae40cdc8099f54c3e68a586fc1b906169c5a
For more details, see:
https://github.com/SuperHouse/esp-open-rtos/wiki/libc-configuration
Closes #1
2015-07-15 15:17:59 +10:00
Angus Gratton
a566a51c09
Use linker scripts rather than libcirom/objcopy tricks to arrange
...
IRAM/IROM sections.
esp-open-rtos compiled code: .text goes into irom by default, symbols
explicitly marked with IRAM attribute go into iram.
SDK code: .text goes into iram by default, symbols marked with
ICACHE_FLASH_ATTR go into irom.
libgcc functions also go into iram by default.
2015-07-09 13:58:41 +10:00
Angus Gratton
1d72ed3f70
Hardware timer support
2015-07-09 12:29:40 +10:00
Angus Gratton
4217a1029e
xtensa_interrupts: Add _xt_disable_interrupts/_xt_restore_interrupts inline functions
2015-06-18 11:30:13 +10:00
Angus Gratton
5151ccc3b2
xtensa_interrupts: Add esync after writing intenable/intclear, add comment about non-interrupt-safe mask/unmask
2015-06-18 09:04:45 +10:00
Angus Gratton
2c1b1ab141
Minor core header cleanups
2015-06-18 09:04:45 +10:00
Angus Gratton
ad37abda8b
blink examplpe: Fix FreeRTOSConfig mistake
2015-06-17 08:07:26 +10:00
Angus Gratton
72b61b17f8
Create a default FreeRTOSConfig.h, can override on a per-program basis
...
Closes #12
2015-06-16 17:28:32 +10:00
Angus Gratton
8478dfd92f
Examples: Rename main.c files to more descriptive file names
2015-06-16 16:59:32 +10:00
Angus Gratton
f0db6f2b98
WiFi Examples: Load SSID & password from a common local.h file instead
...
of coding into program
2015-06-16 16:58:27 +10:00
Angus Gratton
a3c4469b1f
Add a linker script comment for all the patched newlib _lock_xxx symbols
2015-06-16 16:34:13 +10:00
Angus Gratton
b7b16de429
Alias ets_printf directly to printf at link time
...
I thought maybe ets_printf had some special properties, but it doesn't
seem to have any so far.
2015-06-16 16:22:55 +10:00
Angus Gratton
2e51f7b164
http_get_ssl example: Fix name of output elf file
2015-06-16 14:23:48 +10:00
Angus Gratton
93dc7edead
Grow linker script irom section for 512KB flash chip
...
Necessary to fit http_get_ssl example, newlib string functions are
larger than espressif SDK implementations.
2015-06-16 14:23:47 +10:00
Angus Gratton
aaef4b0644
Replace all binary SDK libc functions with newlib
...
Adds a new build step to remove the SDK object files listed in
<libname>.remove.
Closes #1 .
2015-06-16 14:21:24 +10:00
Angus Gratton
f0b5bc324c
Implement xPortGetFreeHeapSize when using libc memory management
2015-06-16 14:20:52 +10:00
Angus Gratton
49268a33e1
Link against newlib from esp-open-sdk's libcirom, replace FreeRTOS heap management.
...
Compiles and runs, expects xtensa lock.c patch in newlib (will still run
otherwise but malloc/free and other functions will be non-memory-safe...)
2015-06-16 14:20:24 +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
8f3111c5e1
Add local.mk to gitignore
2015-06-12 10:40:35 +10:00