Commit Graph
100 Commits
Author SHA1 Message Date
Jeroen Domburg 293ad4cd36 Add xPortGetFreeHeapSizeCaps and xPortGetMinimumEverFreeHeapSizeCaps plus everything it entails. Allows querying the available memory for various capabilities. Also: xPortGetFreeHeapSize and xPortGetMinimumEverFreeHeapSize now return the expected value. Bonus: the linked list used in the allocator is now 4 bytes smaller, which should save some memory. 2016-12-15 15:03:22 +08:00
Jeroen Domburg 3f3cf397f7 Tabs -> spaces 2016-12-15 15:03:22 +08:00
Jeroen Domburg 1cb2081d99 Do not disable entire IRAM pool; instead disable only the bit that is used. This gives us 50K of iram at the moment. 2016-12-15 15:03:22 +08:00
Jeroen Domburg 25e7f3a303 Add name to tag type 2016-12-15 15:03:22 +08:00
Jeroen Domburg d5c57d1d10 Put ets_isr_* functions into IRAM. Original fns were in ROM so people may expect them to work when flash cache is out. 2016-12-13 13:24:01 +08:00
Jeroen Domburg 78161a1fe3 Replace non-multicore-aware rom funcs with multicore-aware funcs, ESP_LOG->ESP_EARLY_LOG fix, reserve ints used in wireless libs. Fixes WiFi crashing 2016-12-13 13:24:01 +08:00
Jeroen Domburg baa6a477c5 Fix example code, add chapter to docs about interrupts and multicore issues 2016-12-08 14:42:00 +08:00
Jeroen Domburg cb9ef19d3b Also add intr_alloc magic to rtc code 2016-12-08 12:57:57 +08:00
Jeroen Domburg 2c34ab3374 Mark some interrupts that are now allocated dynamically as free, add int handle param documentation, add local ints test 2016-12-08 12:39:33 +08:00
Jeroen Domburg 9dc908d105 Add test for local interrupts, fix int disable code 2016-12-08 12:39:33 +08:00
Jeroen Domburg ae8c37e0b6 Add disabling/enabling of shared interrupt, add testcase for interrupts 2016-12-08 12:39:33 +08:00
Jeroen Domburg 32fa94935d Changes according to merge request 2016-12-08 12:39:33 +08:00
Jeroen Domburg 655fd2986a Add interrupt allocation scheme / interrupt sharing. Also modifies drivers and examples. Also allows interrupts
to be marked specifically as having a handler that's all in IRAM.
2016-12-08 12:39:33 +08:00
Jeroen Domburg c852e9958b Invoke panic handler when a stack overflow has been detected; unhandled interrupt now prints interrupt/cpu number. 2016-12-05 20:37:59 +08:00
Jeroen Domburg 004aadfe70 Fix small bug in gdbstub where it sometimes would not return a valid stop reason, timing out gdb. Also clean up the code a bit. 2016-12-02 17:42:11 +08:00
Jeroen Domburg f3a44aa4db Merge with master; merge Doxygen config 2016-11-17 20:21:12 +08:00
Jeroen Domburg d73448f57f Make sure task wdt also does the right thing when triggered when flash is disabled 2016-11-17 18:05:47 +08:00
Jeroen Domburg 02f5bb9442 Add docs build artifacts to gitignore 2016-11-17 12:33:31 +08:00
Jeroen Domburg d116adf260 Add documentation 2016-11-17 12:09:08 +08:00
Jeroen Domburg a023b005c6 taskwdt fixes: better handling of empty/emptying wdt task list, lock task struct while feeding 2016-11-16 17:53:50 +08:00
Jeroen Domburg 0e69a2c446 Merge remote-tracking branch 'origin/master' into feature/better_idle_tick_hook_mechanism 2016-11-15 12:36:15 +08:00
Jeroen Domburg 9a2887c458 Add comments/headers according to merge request comments 2016-11-15 12:10:02 +08:00
Jeroen Domburg aa81f047f8 Merge remote-tracking branch 'origin/master' into bugfix/workaround_gpio_pullupdown_bug 2016-11-15 11:57:01 +08:00
Jeroen Domburg 64a2f0ee0b Amend gpio driver to work around SoC bug with some pullups/pulldowns in the GPIO peripheral; mark existing function that does not always work as deprecated 2016-11-15 10:29:52 +08:00
Jeroen Domburg 045a53a7e5 Fix wdt idle hook 2016-11-14 10:20:49 +08:00
Jeroen Domburg 57009aaa7f Add a more scalable mechanism for the FreeRTOS tick- and idle hooks; idle handler now uses WAITI to reduce power 2016-11-11 19:20:54 +08:00
Jeroen Domburg fdf3db1959 Comment fix 2016-11-11 12:26:42 +08:00
Jeroen Domburg 07c30f22b5 Add core info to xt interrupt api 2016-11-10 18:04:23 +08:00
Jeroen Domburg 86d8f63005 Per-CPU interrupt handlers and args 2016-11-10 17:59:46 +08:00
Jeroen Domburg d0fac3c395 Language tweaking 2016-11-02 10:26:02 +08:00
Jeroen Domburg 8c1d1e19c2 OpenOCD doc fix, fix gdbstub 2016-11-01 15:41:10 +08:00
Jeroen Domburg 90b787636a Remove redundant volatile keyword 2016-10-31 11:00:27 +08:00
Jeroen Domburg 3cd86d6bce Also call tick hook on app cpu when scheduler is suspended 2016-10-28 14:37:36 +08:00
Jeroen Domburg 309bd12855 Re-add panic.o to IRAM/DRAM. 2016-10-28 14:32:11 +08:00
Jeroen Domburg 4d8ad3c877 Fix int wdt iram, fix some fallout of moving panic stuff to esp32 2016-10-28 12:05:42 +08:00
Jeroen Domburg 68f39c1ed9 Only init crosscore when FreeRTOS runs in multicore mode, add warnings that cross_int calls are private. 2016-10-27 16:50:28 +08:00
Jeroen Domburg b14faabfda Merge latest master in 2016-10-27 16:18:55 +08:00
Jeroen Domburg 3371083c16 Add checks for tasks woken up on other CPUs where needed, make xYieldPending and xPendingReadyList per-processor, add configurable ISR stack size to Kconfig, in general fix the entire wake-up-task-on-other-cpu-by-interrupt implementation 2016-10-27 16:07:47 +08:00
Jeroen Domburg c6477ff10d Fix int clear, actually call int init code 2016-10-27 12:37:19 +08:00
Jeroen Domburg ff6b8addd9 Fix panic config ifdefs, un-stall app cpu on boot so it restarts after panic 2016-10-27 11:17:24 +08:00
Jeroen Domburg fd887dbeea Merge remote-tracking branch 'origin/master' into feature/wdts 2016-10-27 10:25:23 +08:00
Jeroen Domburg 6d54fb004d Change inline to static inline functions. Ref Github issue 62. 2016-10-27 09:17:04 +08:00
Jeroen Domburg d3d9a8bc28 Most code written. Interrupts still do not fire yet. 2016-10-26 21:09:55 +08:00
Jeroen Domburg 9546ad5b5e Move write key and stage action select constants into headers 2016-10-26 14:54:50 +08:00
Jeroen Domburg bb1efe50c3 Remove superfluous backup files 2016-10-26 12:23:35 +08:00
Jeroen Domburg 7d254eb3f0 Move panic handler and gdbstub into esp32 component, clean up wdt according to merge req suggestions 2016-10-26 12:23:01 +08:00
Jeroen Domburg 1ca97f5adb Move panic handler code from FreeRTOS to esp32 component 2016-10-26 11:06:53 +08:00
Jeroen Domburg 6f96b23989 Merge in master updates 2016-10-26 11:04:42 +08:00
Jeroen Domburg 06bff71481 Add licenses, docbook, general cleanup 2016-10-25 18:18:11 +08:00
Jeroen Domburg 89f7752cdd Make CPU1 int wdt / idle task wdt configurable, panic now properly disables other cpu, tick handler now also is called on cpu1, task wdt prints currently running tasks. 2016-10-25 18:08:55 +08:00
Jeroen Domburg 75a11589a1 Disable brown-out WDT, fix thread WDT, add panic reason indication to _xt_panic() 2016-10-25 17:05:13 +08:00
Jeroen Domburg d7ea61734b Tabs -> spaces 2016-10-24 21:25:48 +08:00
Jeroen Domburg d9005e739d Add bytebuffer support to ringbuf.c 2016-10-24 21:18:02 +08:00
Jeroen Domburg ae5c563080 Brownout works (in as far brownout can work...), int wdt works. 2016-10-21 19:30:29 +08:00
Jeroen Domburg 2b8a493659 Add licenses to Trax files 2016-10-21 18:01:20 +08:00
Jeroen Domburg 53146799a0 Initial addition of wdt and brownout code 2016-10-21 17:59:57 +08:00
Jeroen Domburg 6b85040059 Also export HOSTCC etc for components 2016-10-20 20:11:13 +08:00
Jeroen Domburg 2d393f0530 Change inline assembly bits from macros to inline functions 2016-10-20 11:23:59 +08:00
Jeroen Domburg 340a722715 Warn user if trax is disabled in menuconfig but functions are called anyway. 2016-10-18 11:50:19 +08:00
Jeroen Domburg d00ef1607e Some more optimizations, mostly in involuntary task switches. Doesn not really help here, but might in other cases. 2016-10-18 10:51:08 +08:00
Jeroen Domburg 6a7ec425cb Detect success before errors in vPortCPUReleaseMutex. Shaves off another half uS. 2016-10-17 18:49:19 +08:00
Jeroen Domburg c03549e117 Make uxPortCompareSet into a macro. 25uS -> 24uS 2016-10-17 18:30:13 +08:00
Jeroen Domburg 0403d43b19 Optimize xPortGetCoreID to 2-instruction inline assembly. 2016-10-17 18:09:15 +08:00
Jeroen Domburg 0aab006bb7 Add Trax-support to esp-idf 2016-10-17 12:18:17 +08:00
Jeroen Domburg 03bd5b6d22 Fix offset of coreid in tasktcb 2016-10-12 18:17:58 +08:00
Jeroen Domburg 89097d5f11 Add xCoreID arg to prvInitialiseNewTask code; initialize pvThreadLocalStoragePointersDelCallback array to NULL 2016-10-12 17:46:15 +08:00
Jeroen Domburg df31bb8dfc Rename include, use spaces instead of tabs 2016-10-09 15:32:08 +08:00
Jeroen Domburg 82df5f9aa0 Convert Windows -> Unix line ends in gpio.c 2016-10-08 14:12:55 +08:00
Jeroen Domburg a03e75d34c Move heap_alloc_caps.h to a location where it can be included by components 2016-10-08 14:11:34 +08:00
Jeroen Domburg 5cd3bd5c4b Add data memory for RMT peripheral 2016-10-08 13:15:06 +08:00
Jeroen Domburg 7bdcafe553 Also push relevant tags over 2016-09-30 18:06:41 +08:00
Jeroen Domburg 4daa768e3c Define xcoreid offset, add warning in tcb struct wrt the need to also change that define when struct changes 2016-09-29 11:07:18 +08:00
Jeroen Domburg a59897d656 Merge branch 'master' into feature/freertos_untested_feature_assert 2016-09-28 22:15:05 +08:00
Jeroen Domburg b3309a03a3 Automatically pin no-cpu-affinity task to a core when FPU is used 2016-09-28 17:02:44 +08:00
Jeroen Domburg a9502dffd3 Add ringbuf.c. This works like a FreeRTOS queue, but allows for variable-length items which in some cases is more memory efficient than a queue. 2016-09-28 12:43:35 +08:00
Jeroen Domburg 8db85d71b2 Fix UNTESTED_FUNCTION includes, remove unnecessary mux initialization in event groups 2016-09-27 11:50:46 +08:00
Jeroen Domburg fc53bb6ed5 Add UNTESTED_FUNCTION() call to untested functions, make Kconfig option to enable that to map to assert() 2016-09-27 11:36:30 +08:00
Jeroen Domburg 14de3a3815 Fix a spelling mistake in panic message, add carriage return to stack canary message 2016-09-26 11:18:43 +08:00
Jeroen Domburg b8bfa9fa35 Spinlocks already come initialized. Remove the code that would essentially re-initialize them at runtime 2016-09-23 17:46:16 +08:00
Jeroen Domburg d63dac0320 Remove all references to prvLockQueue / prvUnlockQueue 2016-09-23 17:43:52 +08:00
Jeroen Domburg 4d4c6a3694 Enable SO_REUSEADDR in LWIP 2016-09-18 16:43:48 +08:00
Jeroen Domburg f703acd344 Adding -fstrict-volatile-bitfields to the CFLAGS/CXXFLAGS. Without this, gcc tries to access bitfields using the smallest possible methods (eg l8i to
grab an 8-bit field from a 32-bit). Our hardware does not like that. This flag tells gcc that if a bitfield is volatile, it should always use the type
the field is defined at (uint32_t in our case) to size its access to the field. This fixes accessing the hardware through the xxx_struct.h headers.
2016-09-18 12:10:01 +08:00
Jeroen Domburg 174a0e3f8b Fix bug where nesting vTaskEnterCritical calls would not re-enable interrupts after vTaskExitCritical sections. 2016-09-13 11:47:22 +08:00
Jeroen Domburg 9664de6867 Add working portASSERT_IF_IN_ISR function, fix enter_critical thing even better. 2016-09-09 17:15:50 +08:00
Jeroen Domburg 128bb77c5a Fix prev code to not crash horribly when scheduler is not running yet 2016-09-09 17:15:49 +08:00
Jeroen Domburg 08ec33c6a2 Make vTaskEnterCritical callable from ISR 2016-09-09 17:15:12 +08:00
Jeroen Domburg 5a0e374a46 Set default SPI flash access mode to DIO 2016-09-08 10:22:15 +08:00
Jeroen Domburg 669e85758c Add flash freq selection to menuconfig 2016-09-06 14:24:28 +08:00
Jeroen Domburg 4272996ebe Add QIO/QOUT/DIO/DOUT select for esptool.py 2016-09-06 14:24:14 +08:00
Jeroen Domburg c6394ed2ce Fix: Return after setting breakpoint when ocd is detected instead of continuing into the panic routine 2016-08-30 17:55:20 +08:00
Jeroen Domburg 69f7bf5235 Add bit of text saying openocd helper options for esp-idf are enabled by default 2016-08-30 15:44:20 +08:00
Jeroen Domburg 6858d2993f Fix issued raised in the merge request 2016-08-30 11:30:03 +08:00
Jeroen Domburg 16956f6474 Add openocd documentation and config file 2016-08-29 16:24:22 +08:00
Jeroen Domburg 95f547025b Undo two empty lines 2016-08-24 18:34:04 +08:00
Jeroen Domburg b1ad6a16e9 Undo submodule commit 2016-08-24 18:31:37 +08:00
Jeroen Domburg bdf4b27e38 Add symbol needed for OpenOCD to detect FreeRTOS, add feature to break execution when the scheduler is initially started. 2016-08-24 17:32:20 +08:00
Jeroen Domburg a44c45e63e Add files I forgot (FreeRTOS-openocd.c and panic.h) 2016-08-24 17:30:53 +08:00
Jeroen Domburg 29c2e58c75 '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.

See merge request !19
2016-08-24 13:30:30 +08:00
Jeroen Domburg d579040e32 Add cr after a lf is printed (configurable)
Formatting
2016-08-23 15:20:03 +08:00
Jeroen Domburg f34110009a Add C99-style named field in initialisation struct 2016-08-22 17:45:46 +08:00