Merge branch 'feature/newlib_locking' into 'master'
newlib locking support
Has matching tests here: http://gitlab.espressif.cn/idf/esp-idf-tests/commits/feature/newlib_locking_tests
This is ready, the "bug" I saw was me not understanding how newlib stream locking works (I still don't understand why it works like it does, but that's less important for now.)
Ivan Grokhotkov [Thu, 1 Sep 2016 07:41:08 +0000 (15:41 +0800)]
Merge branch 'bugfix/gitlab_update_submodules' into 'master'
gitlab-ci: update submodules before build
Gitlab CI will cache build directory per branch and per build step. Also it doesn't try to update submodules.
We have to do this manually because otherwise we end up with old version of submodule in cached directory.
Ivan Grokhotkov [Thu, 1 Sep 2016 07:13:15 +0000 (15:13 +0800)]
gitlab-ci: update submodules before build
Gitlab CI will cache build directory per branch and per build step. Also it doesn't try to update submodules.
We have to do this manually because otherwise we end up with old version of submodule in cached directory.
Jeroen Domburg [Tue, 30 Aug 2016 10:02:20 +0000 (18:02 +0800)]
Merge branch 'feature/openocd_doc' into 'master'
Add openocd documentation and config file
As we (=Ivan/Angus) discussed, the esp32-specific openocd/gdb documentation and helper tools will live in the esp-idf repository. This is an initial document detailing the basics of setting up OpenOCD with an esp32 module. It should be sufficient for people already familiar with a similar setup on another platform to start using JTAG for debugging. It can be expanded much more (e.g. the tracetool still is missing) but we'llhave to add that later.
Ivan Grokhotkov [Mon, 29 Aug 2016 07:04:15 +0000 (15:04 +0800)]
Merge branch 'bugfix/rom_aes_set_endian' into 'master'
[Github] Fix prototype for ets_aes_set_endian
https://github.com/espressif/esp-idf/pull/3
Original description:
>
> found small mistake in it
>
> we have:
>
```
PROVIDE ( ets_aes_crypt = 0x4005c9b8 );
PROVIDE ( ets_aes_disable = 0x4005c8f8 );
PROVIDE ( ets_aes_enable = 0x4005c8cc );
PROVIDE ( ets_aes_set_endian = 0x4005c928 );
PROVIDE ( ets_aes_setkey_dec = 0x4005c994 );
PROVIDE ( ets_aes_setkey_enc = 0x4005c97c );
```
liuzhifu [Wed, 24 Aug 2016 08:33:30 +0000 (16:33 +0800)]
components: lwip
Implement lwip per-thread-sem with:
vTaskSetThreadLocalStoragePointerAndDelCallback/pvTaskGetThreadLocalStoragePointer
register sys_thread_tls_free to free per-thread-sem when the thread is terminated.
Also let lwip use index CONFIG_LWIP_THREAD_LOCAL_STORAGE_INDEX
xiaxiaotian [Tue, 23 Aug 2016 03:22:58 +0000 (11:22 +0800)]
1. Remove ip member of struct station_info
2. Add struct station_list into tcpip_adapter layer
3. When ap -L cmd is received, get mac address from mac layer first and then search ip address based on mac address on dhcp layer.
Wu Jian Gang [Thu, 25 Aug 2016 07:52:11 +0000 (15:52 +0800)]
Merge branch 'feature/ld_change' into 'master'
update ld and heap region
Divide origin fpga ld to several lds, choose specific ld for normal/BT/Trace by menuconfig, change iram/dram len in ld to full use hardware ram region.
Ivan Grokhotkov [Thu, 25 Aug 2016 03:07:21 +0000 (11:07 +0800)]
Merge branch 'bugfix/dualcore_startup' into 'master'
Fix dualcore startup
This MR includes:
- a workaround for a hardware bug with cache initialization
- fix of `#if CONFIG_WIFI_ENABLED` block in cpu_start.c for the case when WiFi is disabled.
- removal of miscellaneous delays in cpu_start.c
Ivan Grokhotkov [Thu, 25 Aug 2016 02:19:17 +0000 (10:19 +0800)]
Merge branch 'bugfix/dram_attr' into 'master'
fix DRAM_ATTR attribute
Variables marked with DRAM_ATTR were not placed in any specific section and were appended to the last section, causing some errors at binary file generation stage.
This change places contents of .dram1 section into .dram0.data.
Also removes .iram1pro/.iram1app/.dram1pro/.dram1app which weren't used anywhere.
Ivan Grokhotkov [Wed, 24 Aug 2016 12:24:33 +0000 (20:24 +0800)]
Merge branch 'bugfix/bootloader_incremental_build' into 'master'
Make: fix incremental builds, add build tests
Four semi-related build changes in one:
* Add basic tests for make system sanity (can be expanded as we find corner cases)
* Fix incremental building of bootloader when source files change
* Don't regenerate component libraries or re-link the ELF file if nothing changed
* Rename `$(vecho)` to `$(summary)` and add a new `$(details)` macro to echo some helpful build details when V=1.
Jeroen Domburg [Wed, 24 Aug 2016 12:21:52 +0000 (20:21 +0800)]
Merge branch 'feature/openocd-freertos-support_try2' into 'master'
Add symbol needed for OpenOCD to detect FreeRTOS, add feature to break execution, try 2
Add symbol needed for OpenOCD to detect FreeRTOS, add optional feature to break execution when the scheduler is initially started. The workflow is now so that if you start an esp-idf program, you can reset the CPU and end up in a gdb prompt just before all threads start up. In gdb you can then inspect all threads and watch breakpoints. Has the nice side effect that OpenOCD will restore any break/watchpoints that were there before you reset the chip.
This is try 2 because seemingly, someone or something replaced the bit of my brain that is responsible for handling Git with a squeaky toy.
Ivan Grokhotkov [Wed, 24 Aug 2016 08:25:04 +0000 (16:25 +0800)]
components/bootloader: fix enabling cache for APP CPU
This is a workaround for a hardware bug with cache initialization.
Only two lines of code related to DPORT_APP_CACHE_MMU_IA_CLR were added around mmu_init(1); call,
and two lines at the end of comment block.
I reformatted surrounding lines to use spaces for indentation, like the rest of the code in this file does.
Ivan Grokhotkov [Wed, 24 Aug 2016 08:21:28 +0000 (16:21 +0800)]
components/esp32: fix and clean up dual core startup
This change removes various delays in PRO and APP CPU startup paths.
Also some unused code and ets_printf statements are cleaned up or removed.
2nd CPU now communicates that it has started through a global variable.
Jeroen Domburg [Wed, 24 Aug 2016 05:29:06 +0000 (13:29 +0800)]
'Merge branch 'thread_local_storage_delete_callbacks' into 'master'
The thread-local-storage feature in FreeRTOS attaches an application-usable array of pointers to a thread control block. These pointers usually point to a structure the thread allocates. When a thread gets (voluntarily or involuntarily) destroyed, this memory can leak. This merge adds a matching second array of user-settable pointers to destructor routines. As soon as the task gets cleaned up (which happens in the idle thread), the destructors get called and the memory can be freed.
Ivan Grokhotkov [Tue, 23 Aug 2016 15:13:50 +0000 (23:13 +0800)]
Merge branch 'bugfix/ci-menuconfig-noninteractive' into 'master'
Fix for noninteractive builds
This MR fixes the case when new Kconfig configuration options were added
and you run `make menuconfig`. Previously this would first show console
prompt to set values for new options, and then launch menuconfig.
Now this will just launch menuconfig. New items are marked as `(NEW)`.
New target is added, defconfig, which may be useful for non-interactive
environments to set default values for all new configuration options.
Gitlab CI uses `make defconfig` to update sdkconfig in case any new
options were added in ESP-IDF.
Ivan Grokhotkov [Tue, 23 Aug 2016 09:25:32 +0000 (17:25 +0800)]
docs: add linux getting started guide
Currently this is mostly a verbatim copy of macOS guide with some obvious changes.
Exact lists of dependencies for Debian and Arch need to be specified.
Also made minor fixes to Windows and macOS guides:
- changed http urls to https
- added --prefix=$PWD to crosstool-NG's configure
- added chmod u+w for the build output directory
In general, except for prerequisites, Linux and macOS guides are virtually identical.
It might make sense to refactor this into single document with prerequisites being
described in separate docs.
Ivan Grokhotkov [Tue, 23 Aug 2016 08:18:36 +0000 (16:18 +0800)]
make: add defconfig, don't run silentoldconfig before menuconfig
This commit fixes the case when new Kconfig configuration options were added and you run `make menuconfig`.
Previously this would first show console prompt to set values for new options, and then launch menuconfig.
Now this will just launch menuconfig.
New target is added, defconfig, which may be useful for non-interactive environments to set default values for
all new configuration options.
Ivan Grokhotkov [Tue, 23 Aug 2016 07:06:06 +0000 (15:06 +0800)]
Merge branch 'feature/nvs_tests' into 'master'
Power off recovery tests for non-volatile storage library, bug fixes, test coverage
This merge request:
- fixes several issues with internal state handling in nvs::Page
- fixes possible infinite loop when initializing namespace list
- fixes nvs_get_{str,blob} APIs to behave according to header file doc (they didn't return *length)
- adds extra consistency checks in nvs::PageManger initialization.
- adds test coverage via gcov and lcov
- adds host side tests during CI builds