Jeroen Domburg fa476c8ba9 Merge branch 'bugfix/small_fixes_jd' into 'master' 9 năm trước cách đây
..
include 0383bc8599 Merge branch 'workaround/pin_noaffinity_task_to_core_when_fpu_used' into 'master' 9 năm trước cách đây
FreeRTOS-openocd.c a44c45e63e Add files I forgot (FreeRTOS-openocd.c and panic.h) 9 năm trước cách đây
Kconfig 1bae606ccc FreeRTOS KConfig: Limit tick rate to 1000Hz 9 năm trước cách đây
component.mk 3b1c3dab4b Name component makefiles component.mk instead of Makefile 9 năm trước cách đây
croutine.c fc53bb6ed5 Add UNTESTED_FUNCTION() call to untested functions, make Kconfig option to enable that to map to assert() 9 năm trước cách đây
event_groups.c 8db85d71b2 Fix UNTESTED_FUNCTION includes, remove unnecessary mux initialization in event groups 9 năm trước cách đây
gdbstub.c 41d397cf3f Only modify headers in soc/ . 9 năm trước cách đây
gdbstub.h bd6ea4393c Initial public version 9 năm trước cách đây
heap_regions.c b21d2dfa6b FreeRTOS: temporary solution for memory canaries and memory debug 9 năm trước cách đây
heap_regions_debug.c b21d2dfa6b FreeRTOS: temporary solution for memory canaries and memory debug 9 năm trước cách đây
license.txt bd6ea4393c Initial public version 9 năm trước cách đây
list.c bd6ea4393c Initial public version 9 năm trước cách đây
panic.c 71c09d8f66 Fix stack overflow message format 9 năm trước cách đây
port.c 9664de6867 Add working portASSERT_IF_IN_ISR function, fix enter_critical thing even better. 9 năm trước cách đây
portasm.S bd6ea4393c Initial public version 9 năm trước cách đây
queue.c a59897d656 Merge branch 'master' into feature/freertos_untested_feature_assert 9 năm trước cách đây
readme_smp.txt 29c2e58c75 'Merge branch 'thread_local_storage_delete_callbacks' into 'master' 9 năm trước cách đây
readme_xtensa.txt bd6ea4393c Initial public version 9 năm trước cách đây
ringbuf.c 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. 9 năm trước cách đây
stdint.readme bd6ea4393c Initial public version 9 năm trước cách đây
tasks.c df31bb8dfc Rename include, use spaces instead of tabs 9 năm trước cách đây
timers.c 925fbb587e Add static initializers for muxes, add mutex init to vPortCPUAcquireMutex 9 năm trước cách đây
xtensa_context.S bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_init.c bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_intr.c bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_intr_asm.S bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_overlay_os_hook.c bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_vectors.S 4daa768e3c Define xcoreid offset, add warning in tcb struct wrt the need to also change that define when struct changes 9 năm trước cách đây
xtensa_vectors.S-new bd6ea4393c Initial public version 9 năm trước cách đây
xtensa_vectors.S-old bd6ea4393c Initial public version 9 năm trước cách đây

readme_smp.txt

This version of FreeRTOS has been modified by Espressif to be SMP-aware. The
API is similar to the original FreeRTOS API, with the following changes:

- The xTaskCreate() function now creates tasks that will run on the first
core only, for backwards compatibility. To schedule tasks on another core,
use xTaskCreatePinnedToCore(), which will accept a core ID as the last
argument. If this is the constant tskNO_AFFINITY, the task will be dynamically
scheduled on whichever core has time.

- vTaskSuspendAll/vTaskResumeAll in non-SMP FreeRTOS will suspend the scheduler
so no other tasks than the current one will run. In this SMP version, it will
only suspend the scheduler ON THE CURRENT CORE. That is, tasks scheduled to
run on the other core(s) or without a specific CPU affinity, will still be
able to run.

- Enabling and disabling interrupts will only affect the current core.
Disabling the interrupts will not disallow other tasks to run as
it would on a single-core system: the other core still will keep on
executing all it's own. Use a mux, queue or semaphore to protect your
structures instead.

- While each core has individual interrupts, the handlers are shared. This
means that when you set a handler for an interrupt, it will get triggered if
the interrupt is triggered on both CPU0 as well as on CPU1. This is something
we may change in future FreeRTOS-esp32 releases.

- This FreeRTOS version has the task local storage backported from the 8.2.x
versions. It, however, has an addition: you can also set a callback when you
set the pointer. This callback will be called by the idle task, with the
pointer as an argument, when the thread is destroyed. This depends on the idle
task getting CPU time; when a thread is hogging the CPU without yielding,
the idle thread won't be called and the delete callback won't be called either.