aws / amazon-freertos

DEPRECATED - See README.md
https://aws.amazon.com/freertos/
MIT License
2.54k stars 1.1k forks source link

[General] Demo defaults to single core mode #3464

Closed genie-ltran closed 2 years ago

genie-ltran commented 2 years ago

I'm using the MQTT demo which works as expected. First, I'm using the amazon-freertos repo as a submodule as outlined in "https://github.com/aws/amazon-freertos/issues/2978". This works. I added threads to do a low latency decoding of proprietary signals on pins. My problem is that I'm attempting to pin this thread to the app_cpu for this thread instead of the core_cpu. Except, that when I use the xTaskCreatePinnedToCore(), the thread itself is reporting that it's still running in the pro_cpu. I figured out through a lot of searching online that I had to override the directive "CONFIG_FREERTOS_UNICORE" which I've tried with:

cmake -S . -B build-directory -DIDF_SDKCONFIG_DEFAULTS= -DCMAKE_TOOLCHAIN_FILE=freertos/tools/cmake/toolchains/xtensa-esp32.cmake -GNinja

I did this no result. It keeps reverting the code that forces the directive in the sdkconfig.h file to "#define CONFIG_FREERTOS_UNICORE 1".

I tried "idf.py menuconfig", but I couldn't find the option to select multicore under the freertos component list.

No IDE. Windows command line. IDF version: v3.3 - "git checkout -f tags/202012.01" project: mqtt_demo_mutual_auth

Can someone explain to me how to force dual core mode and where the setting for this feature is?

Thank you.

aggarg commented 2 years ago

When you use amazon-freertos, the FreeRTOS-Kernel used is the official version which does not have SMP support in main yet. Can you write your application such that it consumes esp-idf and our libraries? This way you will be able to use SMP features available in esp-idf kernel and will able to independently update idf and libraries. You can take a look at this repo for an example - https://github.com/FreeRTOS/Labs-Project-Espressif-Demos.

genie-ltran commented 2 years ago

What I want to do is rather urgent. When can we expect the SMP feature to be implemented? From what I can see you're still on v3.3.6 of Espressif's libraries which they've since stop supporting as of 2 weeks ago according to the documentation page of their website.

aggarg commented 2 years ago

Did you take a look at the repo I mentioned above? What else would you need for your application?

genie-ltran commented 2 years ago

Sorry, I didn't fully grasp what you were trying to convey before. I understand now. Let me see how much effort this will take. I'm trying to stick with amazon-freertos, because it's requires much less work on my part to get it running. I didn't realize how out of sync it was with Espressif's source.