This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The lack of support for nested interrupts in FreeRTOS (according to mcu_plus_sdk_am243x_08_03_00_18/docs/api_guide_am243x/KERNEL_FREERTOS_PAGE.html#autotoc_md356) is quite a restriction for us.
It would be helpful to know when TI plans to support nested interrupts in FreeRTOS.
Is there any recommended reading for us if we wanted try to make it work ourselves? I expect it to be more difficult than #defining HWIP_NESTED_INTERRUPTS_IRQ_ENABLE in ./source/kernel/freertos/dpl/r5/HwiP_armv7r_handlers_freertos.c...
Best regards,
Johannes
Hi Johannes,
Yes, nested interrupt was disabled in SDK8.3 due to open debug (LwIP tests failure when nested interrupts are enabled).
We are planning to fix this for SDK8.4 release (Aug end 2022).
Meanwhile, I will check internally if can get patch for you to enable support. I will come back by tomorrow. Please feel free to ping if you don't hear from me.
Regards,
Prasad
Hi Johannes,
I checked internally. As you are not using industrial protocols, and current open issue with interrupt nesting is with it, you can go ahead and use interrupt nesting.
To enable it, define flag HWIP_NESTED_INTERRUPTS_IRQ_ENABLE in ./source/kernel/freertos/dpl/r5/HwiP_armv7r_handlers_freertos.c.
Regards,
Prasad
Hi Prasad,
I suppose, I need to rebuild freertos.am243x.r5f.ti-arm-clang.debug.lib after #defining HWIP_NESTED_INTERRUPTS_IRQ_ENABLE ?
If yes, how do I do that?
Best regards,
Johannes
Hi Johannes,
Yes, you would need to rebuild the libraries. Kindly refer to below for same
AM243x MCU+ SDK: Build a Hello World example (ti.com)
Regards,
Prasad
I'm getting:
C:\ti\mcu_plus_sdk_am243x_08_03_00_18>gmake -s libs PROFILE=debug
process_begin: CreateProcess(NULL, C:/ti/ccs1120/ccs/utils/cygwin/mkdir -p obj/am243x/ti-arm-clang/debug/r5f/board/, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
makefile.am243x.r5f.ti-arm-clang:136: recipe for target 'obj/am243x/ti-arm-clang/debug/r5f/board/' failed
gmake[2]: *** [obj/am243x/ti-arm-clang/debug/r5f/board/] Error 2
makefile.am243x:408: recipe for target 'board_r5f.ti-arm-clang' failed
gmake[1]: *** [board_r5f.ti-arm-clang] Error 2
makefile:59: recipe for target 'libs' failed
gmake: *** [libs] Error 2
Where do I set the path to CCS? I'm still using version 11.1.0.
Hi Johannes,
You can set path in "mcu_plus_sdk_am243x_08_03_00_18\imports.mak"
My recommendation is downloading the CCS11.2 as SDK is validated with it and we can't guarantee it will work with 11.1
Regards,
Prasad
Hi Prasad,
after changing the toolchain path in imports.mak to 1.3.0.LTS I could compile the libraries and it seems that interrupt nesting now works as expected. I will have to make some more tests...
BTW, when I tried to rebuild the libraries with toolchain version 2.1.0.LTS I got the following error:
Compiling: freertos_fat.am243x.r5f.ti-arm-clang.debug.lib: C:/ti/mcu_plus_sdk_am243x_08_03_00_18/source/fs/freertos_fat/FreeRTOS-FAT/ff_ioman.c
C:/ti/mcu_plus_sdk_am243x_08_03_00_18/source/fs/freertos_fat/FreeRTOS-FAT/ff_ioman.c:706:14: error: variable
'ulFirstWord' set but not used [-Werror,-Wunused-but-set-variable]
uint32_t ulFirstWord = 0ul;
This looks a bit like a compiler error. At least I don't find a reason for that warning in ff_ioman.c (ulFirstWord is used!).
Thank you for your support, Prasad!
Best regards,
Johannes
Hi Johannes,
Glad that you are able to proceed and nesting working for you.
Regarding compiler issue, I have moved thread to compiler experts. Please feel free to ping if you don't hear from them.
Regards,
Prasad
This looks a bit like a compiler error.
I need a test case that allows me to reproduce the same diagnostic. I think I can develop that test case without directly involving you. If not, I may come back here and ask you for help.
Thanks and regards,
-George