]> granicus.if.org Git - esp-idf/commit
Especially when internal memory fills up, some FreeRTOS structures (queues etc) get...
authorJeroen Domburg <jeroen@espressif.com>
Tue, 19 Dec 2017 07:47:00 +0000 (15:47 +0800)
committerJeroen Domburg <jeroen@espressif.com>
Fri, 2 Feb 2018 09:11:06 +0000 (17:11 +0800)
commit70ab924dbb9d61ee79c171c326c3f3547ca4dc8a
tree36de812d7716ad74c9bb3992c451ead077040fd2
parent8ef7434d5561867ddfedf79b205a75710df87bb9
Especially when internal memory fills up, some FreeRTOS structures (queues etc) get allocated in psram. These structures also contain a spinlock, which needs an atomic-compare-swap operation to work. The psram hardware, however, does not support this operation. As a workaround, this patch detects these spinlocks and will, instead of S32C1I, use equivalent C-code to simulate the behaviour, with an (internal) mux for atomicity.
components/freertos/include/freertos/portable.h
components/freertos/port.c
components/freertos/portmux_impl.h
components/freertos/portmux_impl.inc.h [new file with mode: 0644]
components/freertos/test/test_spinlocks.c
components/idf_test/include/idf_performance.h
components/soc/esp32/include/soc/soc.h
components/soc/include/soc/soc_memory_layout.h